// Sprites by Eriance
Actor ResMelee1 : Weapon {
	Scale 0.8
	Weapon.SlotNumber 1
	Weapon.SelectionOrder 1600
	Weapon.AmmoType1 "SwordHitCharge"
	Weapon.AmmoType2 "Souls"
	Weapon.AmmoUse2 0
	Inventory.PickupMessage "You got the blade!!!11"
	Obituary "%o was removed by %k's Dusk Blade."
	Tag "Dusk Blade"
    +INVENTORY.UNDROPPABLE
	+WEAPON.NOAUTOFIRE
	+WEAPON.NOALERT
    Weapon.BobStyle InverseSmooth
    Weapon.BobSpeed 2.1
    Weapon.BobRangeY 0.4
    Weapon.BobRangeX 0.7
	States {
		Spawn:
			VORP X -1 
		Stop
		Ready:
			TNT1 A 0 A_GiveInventory("TaltosChecker", 1)
			TNT1 A 0 A_JumpIfInventory("DuskMode", 1, "DuskReady")
			VORP A 1 A_WeaponReady
		Loop
		DuskReady:
			VORP JKLM 4 Bright A_WeaponReady(WRF_NOSWITCH)
		Goto Ready
		Deselect:
			TNT1 A 0 A_TakeInventory("H_WeaponSlot9", 1)
			TNT1 A 0 A_GiveInventory("TaltosTaker", 1)
		DeselectLoop:
			VORP A 1 A_Lower
			TNT1 A 0 A_Lower
		Loop
		Select:
			TNT1 A 0 A_GiveInventory("H_WeaponSlot9", 1)
			TNT1 A 0 A_GiveInventory("TaltosChecker", 1)
			TNT1 A 0 A_TakeInventory("DnD_WeaponID", 0x7FFFFFFF)
			TNT1 A 0 A_GiveInventory("DnD_WeaponID", DND_WEAPON_DUSKBLADE)
			TNT1 A 0 ACS_NamedExecuteAlways("DND Weapon Damage Cache", 0, DND_DMGID_0, 25)
			TNT1 A 0 ACS_NamedExecuteAlways("DND Weapon Damage Cache", 0, DND_DMGID_1, 24)
		SelectLoop:
			VORP A 1 A_Raise
			TNT1 A 0 A_Raise
		loop
		Fire:
			TNT1 A 0 A_JumpIfInventory("DuskMode", 1, "FireDusk")
			VORP B 3
			TNT1 A 0 A_GiveInventory("SwordHitCharge", 5)
			TNT1 A 0 A_Refire
			VORP B 1
			VORP C 1 A_AlertMonsters
			TNT1 A 0 A_PlaySound("Sword/Swing")
			VORP D 1
			VORP EFGH 1 A_GiveInventory("DuskBladeShooter1", 1)
			TNT1 A 0 A_TakeInventory("SwordHitCharge", 100)
			VORP I 1
			TNT1 A 6
		Goto PreReady
		FireDusk:
			VORP B 1 A_AlertMonsters
			VORP N 1 Bright
			TNT1 A 0 A_PlaySound("Sword/Swing")
			VORP O 1 Bright
			VORP PQRS 1 Bright A_GiveInventory("DuskBladeShooter2", 1)
			VORP T 1 Bright
			TNT1 A 6
		Goto PreReady
		Altfire:
			TNT1 A 0 A_JumpIfInventory("Ability_Kick", 1, "CheckAltAmmo")
		Goto DoNothing
		CheckAltAmmo:
			TNT1 A 0 A_JumpIfInventory("ArtemisCheck", 1, "ContinueAltFire")
			TNT1 A 0 A_JumpIfInventory("Souls", 15, "ContinueAltFire")
		DoNothing:
			TNT1 A 0 A_JumpIfInventory("DuskMode", 1, "DuskDoNothing")
			VORP A 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
		Goto Ready
		DuskDoNothing:
			VORP J 1 Bright A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
		Goto Ready
		ContinueAltFire:
			TNT1 A 0 A_JumpIfInventory("DuskMode", 1, "DoNothing")
			VORP A 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
			TNT1 A 0 A_SetBlend("60 00 60", 0.85, 9)
			TNT1 A 0 A_GiveInventory("DuskMode", 1)
			TNT1 A 0 A_JumpIfInventory("ArtemisCheck", 1, "FinishAlt")
			VORP M 1
			TNT1 A 0 A_TakeInventory("Souls", 15)
		FinishAlt:
			VORP M 1
			TNT1 A 0 A_PlaySound("DuskMode/Activate")
			VORP M 3
		Goto Ready
		PreReady:
			TNT1 A 0 A_JumpIfInventory("DuskMode", 1, "DuskPreReady")
			VORS EDCBA 1
			TNT1 A 0 A_Refire
		Goto Ready
		DuskPreReady:
			VORS FGHI 1 Bright
			VORP J 1 Bright
			TNT1 A 0 A_Refire
		Goto Ready
	}
}

Actor DuskBladeShooter1 : DnD_Activator {
	States {
		Pickup:
			TNT1 A 0 A_JumpIfInventory("DnD_QuestReward_DreamingGodBonus", 1, "Full")
			TNT1 A 0 A_JumpIfInventory("NetherCheck", 1, "Full")
			TNT1 A 0 A_CustomPunch(ACS_NamedExecuteWithResult("DND Weapon Damage Retrieve", DND_DMGID_0, TALENT_MELEE, DND_ISOCCULT), 1, 0, "SwordPuff", 96)
		Stop
		Full:
			TNT1 A 0 A_CustomPunch(ACS_NamedExecuteWithResult("DND Weapon Damage Retrieve", DND_DMGID_0, TALENT_MELEE, DND_ISOCCULT), 1, 0, "SwordPuff_FullDMG", 96)
		Stop
	}
}

Actor DuskBladeShooter2 : DnD_Activator {
	States {
		Pickup:
			TNT1 A 0 A_JumpIfInventory("DnD_QuestReward_DreamingGodBonus", 1, "Full")
			TNT1 A 0 A_JumpIfInventory("NetherCheck", 1, "Full")
			TNT1 A 0 A_CustomPunch(4 * ACS_NamedExecuteWithResult("DND Weapon Damage Retrieve", DND_DMGID_0, TALENT_MELEE, DND_ISOCCULT), 1, 0, "SwordPuff", 96, 0.25)
			TNT1 A 0 A_FireCustomMissile("DuskSlash")
		Stop
		Full:
			TNT1 A 0 A_CustomPunch(4 * ACS_NamedExecuteWithResult("DND Weapon Damage Retrieve", DND_DMGID_0, TALENT_MELEE, DND_ISOCCULT), 1, 0, "SwordPuff_FullDMG", 96, 0.25)
			TNT1 A 0 A_FireCustomMissile("DuskSlash_FullDMG")
		Stop	
	}
}

Actor DuskMode : PowerSpeed {
	Speed 1.15
	powerup.color "60 00 60"
	powerup.duration -8
}

Actor SwordHitCharge : Ammo {
	inventory.amount 1
	inventory.maxamount 100
	ammo.backpackamount 0
	ammo.backpackmaxamount 100
	Inventory.Icon "STTPRCNT"
	+IGNORESKILL
}

Actor DuskArmorBonus : ArmorBonus {
	Armor.Saveamount 3
	Armor.MaxSaveAmount 450
}

Actor SwordPuff {
	Damagetype "Melee"
	Radius 1
	Height 1
	PROJECTILE
	RENDERSTYLE Translucent
	ALPHA 0.66
	+PUFFONACTORS
	+PUFFGETSOWNER
	+MTHRUSPECIES
	+LOOKALLAROUND
	+FORCEXYBILLBOARD
	States {
		Spawn:
			VFX2 A 0
			TNT1 A 0 A_GiveToTarget("DuskHealFX", 1)
			TNT1 A 0 A_GiveToTarget("DuskArmorBonus", 1)
			TNT1 A 0 A_SpawnItem("SwordDuskPuff")
			TNT1 A 1 A_PlaySound("Sword/Hit")
		Stop
		Crash:
			VFX2 A 0
			TNT1 AAAAAA 0 A_CustomMissile ("MeleeSmoke", 0, 0, random (0, 360), 2, random (0, 360))
			VFX2 A 3 A_PlaySound("Sword/HitWall")
			VFX2 BCDE 3
		Stop
	}
}

Actor SwordPuff_FullDMG : SwordPuff {
	DamageType "MeleeFull"
}

Actor SwordDuskPuff {
	Renderstyle Add
	Alpha 0.85
	Translation "0:255=%[0.00,0.00,0.00]:[1.52,0.43,1.88]"
	+CLIENTSIDEONLY
	+NOINTERACTION
	States {
		Spawn:
			VFX4 BCDEFGH 3 Bright
		Stop
	}
}

Actor DuskHealFXSpawner : SoulEffectSpawner {
	Translation "0:255=%[0.00,0.00,0.00]:[1.46,0.52,1.96]"
}

Actor DuskHealFX : DnD_Activator {
	States {
		Pickup:
			TNT1 A 0 A_SpawnItem("DuskHealFXSpawner")
		Stop
	}
}

Actor DuskExplosion : BaseExplosionDamage {
	DamageType "Magic"
	+NODAMAGETHRUST
	States {
		Spawn:
			TNT1 A 1 NoDelay A_Explode(ACS_NamedExecuteWithResult("DND Weapon Damage Retrieve", DND_DMGID_1, TALENT_OCCULT, DND_USETARGET), 64, 0, 0, 64)
		Stop
	}
}

Actor DuskExplosion_FullDMG : DuskExplosion {
	DamageType "Magic_Full"
	+FORCERADIUSDMG
}

Actor DuskSlash {
	Radius 8
	Height 16
	Speed 28
	Damage 0
	DamageType "Magic"
	PROJECTILE
	Renderstyle Add
	Alpha 0.9
	Scale 0.55
	ReactionTime 11
	+THRUACTORS
	+EXTREMEDEATH
	+NODAMAGETHRUST
	States {
		Spawn:
			TNT1 AA 0 A_PlaySound("Sword/SWave")
		SpawnLoop:
			VFX4 I 1 Bright A_SpawnItem("DuskSlashTrail",0,0)
			TNT1 A 0 A_CustomMissile("DuskExplosion", -18, -56, 0, CMF_TRACKOWNER)
			TNT1 A 0 A_CustomMissile("DuskExplosion", 0, 0, 0, CMF_TRACKOWNER)
			TNT1 A 0 A_CustomMissile("DuskExplosion", 18, 56, 0, CMF_TRACKOWNER)
			TNT1 A 0 A_FadeOut(0.05)
			TNT1 A 0 A_CountDown
		Loop
	}
}

Actor DuskSlash_FullDMG : DuskSlash {
	DamageType "Magic_Full"
	States {
		Spawn:
			TNT1 AA 0 A_PlaySound("Sword/SWave")
		SpawnLoop:
			VFX4 I 1 Bright A_SpawnItem("DuskSlashTrail",0,0)
			TNT1 A 0 A_CustomMissile("DuskExplosion_FullDMG", -18, -56, 0, CMF_TRACKOWNER)
			TNT1 A 0 A_CustomMissile("DuskExplosion_FullDMG", 0, 0, 0, CMF_TRACKOWNER)
			TNT1 A 0 A_CustomMissile("DuskExplosion_FullDMG", 18, 56, 0, CMF_TRACKOWNER)
			TNT1 A 0 A_FadeOut(0.05)
			TNT1 A 0 A_CountDown
		Loop
	}
}

Actor DuskSlashTrail {
	+CLIENTSIDEONLY
	+NOINTERACTION
	Renderstyle Add
	Scale 0.55
	Alpha 0.9
	States {
		Spawn:
			TNT1 A 1
		SpawnLoop:
			VFX4 I 2 Bright A_FadeOut(0.10)
		Loop
	}
}

// Sprites by Eriance
Actor ResMelee2 : Weapon {
	Scale 0.8
	Weapon.SlotNumber 1
	Weapon.SelectionOrder 1600
	Weapon.AmmoType "Souls"
	Weapon.AmmoUse 0
	Inventory.PickupMessage "You got the blade!!!11"
	Obituary "%o was removed by %k's Inferno Sword."
	Tag "Inferno Sword"
    +INVENTORY.UNDROPPABLE
	+WEAPON.NOALERT
	+WEAPON.NOAUTOAIM
    Weapon.BobStyle InverseSmooth
    Weapon.BobSpeed 2.1
    Weapon.BobRangeY 0.4
    Weapon.BobRangeX 0.7
	States {
		Spawn:
			FBM1 X -1 
		Stop
		Ready:
			TNT1 A 0 A_GiveInventory("TaltosChecker", 1)
			FBM1 ABC 4 Bright A_WeaponReady
		Loop
		Deselect:
			TNT1 A 0 A_TakeInventory("H_WeaponSlot9", 1)
			TNT1 A 0 A_GiveInventory("TaltosTaker", 1)
		DeselectLoop:
			FBM1 C 1 Bright A_Lower
			TNT1 A 0 A_Lower
		Loop
		Select:
			TNT1 A 0 A_GiveInventory("H_WeaponSlot9", 1)
			TNT1 A 0 A_GiveInventory("TaltosChecker", 1)
			TNT1 A 0 A_TakeInventory("DnD_WeaponID", 0x7FFFFFFF)
			TNT1 A 0 A_GiveInventory("DnD_WeaponID", DND_WEAPON_INFERNOSWORD)
			TNT1 A 0 ACS_NamedExecuteAlways("DND Weapon Damage Cache", 0, DND_DMGID_0, 60)
			TNT1 A 0 ACS_NamedExecuteAlways("DND Weapon Damage Cache", 0, DND_DMGID_1, 48)
			TNT1 A 0 ACS_NamedExecuteAlways("DND Weapon Damage Cache", 0, DND_DMGID_2, 20, 2 | (4 << 16))
			TNT1 A 0 ACS_NamedExecuteAlways("DND Weapon Damage Cache", 0, DND_DMGID_3, 8, 8 | (10 << 16))
		SelectLoop:
			FBM1 C 1 Bright A_Raise
			TNT1 A 0 A_Raise
		loop
		Fire:
			FBM1 D 2 Bright Offset(0, 32)
			FBM1 E 2 Bright Offset(0, 32) A_AlertMonsters
			TNT1 A 0 A_PlaySound("Vorpal/Swing")
			FBM1 F 1 Bright Offset(0, 32) A_GiveInventory("InfernoSwordShooter1", 1)
			FBM1 G 1 Bright Offset(0, 32) A_GiveInventory("InfernoSwordShooter2", 1)
			FBM1 H 1 Bright Offset(0, 32) A_GiveInventory("InfernoSwordShooter3", 1)
			FBM1 I 1 Bright Offset(0, 32) A_GiveInventory("InfernoSwordShooter4", 1)
			FBM1 JK 1 Bright Offset(0, 32)
			FBM1 L 2 Bright Offset(0, 32)
			TNT1 A 10 Offset(0, 32)
		Goto PreReady
		Altfire:
			TNT1 A 0 A_JumpIfInventory("Ability_Kick", 1, "CheckAltAmmo")
		Goto DoNothing
		CheckAltAmmo:
			TNT1 A 0 A_JumpIfInventory("ArtemisCheck", 1, "ContinueAltFire")
			TNT1 A 0 A_JumpIfInventory("Souls", 5, "ContinueAltFire")
		DoNothing:
			FBM1 A 1 Bright A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
		Goto Ready
		ContinueAltFire:
			FBM1 D 2 Bright Offset(0, 32)
			FBM1 E 2 Bright Offset(0, 32) A_AlertMonsters
			TNT1 A 0 A_PlayWeaponSound("Vorpal/Swing")
			TNT1 AA 0 A_PlaySoundEx("Vorpal/Fire", 7)
			FBM1 F 1 Bright Offset(0, 32) A_GiveInventory("InfernoSwordShooter5", 1)
			FBM1 G 1 Bright Offset(0, 32)
			FBM1 H 1 Bright Offset(0, 32)
			FBM1 I 1 Bright Offset(0, 32)
			FBM1 J 1 Bright Offset(0, 32)
			FBM1 K 1 Bright Offset(0, 32)
			FBM1 L 2 Bright Offset(0, 32)
			TNT1 A 10 Offset(0, 32)
		Goto PreReady
		PreReady:
			FBM1 C 1 Bright Offset(75, 157)
			FBM1 C 1 Bright Offset(56, 129)
			FBM1 C 1 Bright Offset(32, 94)
			FBM1 C 1 Bright Offset(14, 62)
			FBM1 A 1 Bright Offset(-3, 32)
			TNT1 A 0 A_Refire
		Goto Ready
	}
}

Actor InfernoSwordShooter1 : DnD_Activator {
	States {
		Pickup:
			TNT1 A 0 A_JumpIfInventory("NetherCheck", 1, "Full")
			TNT1 A 0 A_FireBullets(-24.0, 0, -1, ACS_NamedExecuteWithResult("DND Weapon Damage Retrieve", DND_DMGID_0, TALENT_MELEE), "InfernoSwordPuff", FBF_EXPLICITANGLE | FBF_NOFLASH | FBF_NORANDOM, 88)
		Stop
		Full:
			TNT1 A 0 A_FireBullets(-24.0, 0, -1, ACS_NamedExecuteWithResult("DND Weapon Damage Retrieve", DND_DMGID_0, TALENT_MELEE), "InfernoSwordPuff_FullDMG", FBF_EXPLICITANGLE | FBF_NOFLASH | FBF_NORANDOM, 88)
		Stop
	}
}

Actor InfernoSwordShooter2 : DnD_Activator {
	States {
		Pickup:
			TNT1 A 0 A_JumpIfInventory("NetherCheck", 1, "Full")
			TNT1 A 0 A_FireBullets(-12.0, 0, -1, ACS_NamedExecuteWithResult("DND Weapon Damage Retrieve", DND_DMGID_0, TALENT_MELEE), "InfernoSwordPuff", FBF_EXPLICITANGLE | FBF_NOFLASH | FBF_NORANDOM, 88)
		Stop
		Full:
			TNT1 A 0 A_FireBullets(-12.0, 0, -1, ACS_NamedExecuteWithResult("DND Weapon Damage Retrieve", DND_DMGID_0, TALENT_MELEE), "InfernoSwordPuff_FullDMG", FBF_EXPLICITANGLE | FBF_NOFLASH | FBF_NORANDOM, 88)
		Stop
	}
}

Actor InfernoSwordShooter3 : DnD_Activator {
	States {
		Pickup:
			TNT1 A 0 A_JumpIfInventory("NetherCheck", 1, "Full")
			TNT1 A 0 A_FireBullets(0.0, 0, -1, ACS_NamedExecuteWithResult("DND Weapon Damage Retrieve", DND_DMGID_0, TALENT_MELEE), "InfernoSwordPuff", FBF_EXPLICITANGLE | FBF_NOFLASH | FBF_NORANDOM, 88)
		Stop
		Full:
			TNT1 A 0 A_FireBullets(0.0, 0, -1, ACS_NamedExecuteWithResult("DND Weapon Damage Retrieve", DND_DMGID_0, TALENT_MELEE), "InfernoSwordPuff_FullDMG", FBF_EXPLICITANGLE | FBF_NOFLASH | FBF_NORANDOM, 88)
		Stop
	}
}

Actor InfernoSwordShooter4 : DnD_Activator {
	States {
		Pickup:
			TNT1 A 0 A_JumpIfInventory("NetherCheck", 1, "Full")
			TNT1 A 0 A_FireBullets(12.0, 0, -1, ACS_NamedExecuteWithResult("DND Weapon Damage Retrieve", DND_DMGID_0, TALENT_MELEE), "InfernoSwordPuff", FBF_EXPLICITANGLE | FBF_NOFLASH | FBF_NORANDOM, 88)
		Stop
		Full:
			TNT1 A 0 A_FireBullets(12.0, 0, -1, ACS_NamedExecuteWithResult("DND Weapon Damage Retrieve", DND_DMGID_0, TALENT_MELEE), "InfernoSwordPuff_FullDMG", FBF_EXPLICITANGLE | FBF_NOFLASH | FBF_NORANDOM, 88)
		Stop
	}
}

Actor InfernoSwordShooter5 : DnD_Activator {
	States {
		Pickup:
			TNT1 A 0 A_JumpIfInventory("ArtemisCheck", 1, "NoAmmo")
			TNT1 A 0 A_TakeInventory("Souls", 5)
		NoAmmo:
			TNT1 A 0 A_JumpIfInventory("NetherCheck", 1, "Full")
			TNT1 A 0 A_FireCustomMissile("InfernoSwordMissile_1", -11.5, 0, -10, 0, 1)
			TNT1 A 0 A_FireCustomMissile("InfernoSwordMissile_2", -5.625, 0, -5, 0, 1)
			TNT1 A 0 A_FireCustomMissile("InfernoSwordMissile_3", 0, 0, 0, 0, 1)
			TNT1 A 0 A_FireCustomMissile("InfernoSwordMissile_4", 5.625, 0, 5, 0, 1)
			TNT1 A 0 A_FireCustomMissile("InfernoSwordMissile_5", 11.5, 0, 10, 0, 1)
		Stop
		Full:
			TNT1 A 0 A_FireCustomMissile("InfernoSwordMissile_1_FullDMG", -11.5, 0, -10, 0, 1)
			TNT1 A 0 A_FireCustomMissile("InfernoSwordMissile_2_FullDMG", -5.625, 0, -5, 0, 1)
			TNT1 A 0 A_FireCustomMissile("InfernoSwordMissile_3_FullDMG", 0, 0, 0, 0, 1)
			TNT1 A 0 A_FireCustomMissile("InfernoSwordMissile_4_FullDMG", 5.625, 0, 5, 0, 1)
			TNT1 A 0 A_FireCustomMissile("InfernoSwordMissile_5_FullDMG", 11.5, 0, 10, 0, 1)
		Stop
	}
}

Actor InfernoExplosion : BaseExplosionDamage {
	DamageType "Fire"
	States {
		Spawn:
			TNT1 A 1 NoDelay A_Explode(ACS_NamedExecuteWithResult("DND Weapon Damage Retrieve", DND_DMGID_0, TALENT_ELEMENTAL, DND_USETARGET), 96, 0)
		Stop
	}
}

Actor InfernoExplosion_FullDMG : InfernoExplosion {
	DamageType "FireFull"
	+FORCERADIUSDMG
}

Actor InfernoSwordPuff {
	Damagetype "Melee_Fire"
	Radius 1
	Height 1
	PROJECTILE
	RENDERSTYLE Add
	ALPHA 0.66
	+PUFFONACTORS
	+PUFFGETSOWNER
	+MTHRUSPECIES
	+LOOKALLAROUND
	+FORCEXYBILLBOARD
	+THRUGHOST
	Translation "0:255=%[0.00,0.00,0.00]:[1.94,0.71,0.05]"
	States {
		Spawn:
			TNT1 A 0
			TNT1 A 1 A_PlaySound("Sword/Hit")
		Goto Anim
		Crash:
			TNT1 A 0
			TNT1 A 0 A_PlaySound("Sword/HitWall")
			TNT1 AAAAAA 0 A_CustomMissile ("MeleeSmoke", 0, 0, random (0, 360), 2, random (0, 360))
		Anim:
			TNT1 A 0 A_SpawnItem("InfernoExplosion")
			DKAT DEFG 3 Bright
			DKAT HIJKLM 2 Bright
		Stop
	}
}

Actor InfernoSwordPuff_FullDMG : InfernoSwordPuff {
	DamageType "Melee_FireFull"
	-THRUGHOST
	States {
		Anim:
			TNT1 A 0 A_SpawnItem("InfernoExplosion_FullDMG")
			DKAT DEFG 3 Bright
			DKAT HIJKLM 2 Bright
		Stop
	}
}

Actor InfernoProjExplosion1 : BaseExplosionDamage {
	DamageType "Fire"
	States {
		Spawn:
			TNT1 A 1 NoDelay A_Explode(ACS_NamedExecuteWithResult("DND Weapon Damage Retrieve", DND_DMGID_3, TALENT_ELEMENTAL, DND_USETARGET), 128, 0, 0, 64)
		Stop
	}
}

Actor InfernoProjExplosion1_FullDMG : InfernoExplosion {
	DamageType "FireFull"
	+FORCERADIUSDMG
}

Actor InfernoProjExplosion2 : BaseExplosionDamage {
	DamageType "Fire"
	States {
		Spawn:
			TNT1 A 0 NoDelay A_JumpIfInTargetInventory("Ability_ExplosionMastery", 1, "Less")
			TNT1 A 1 A_Explode(2 * ACS_NamedExecuteWithResult("DND Weapon Damage Retrieve", DND_DMGID_3, TALENT_ELEMENTAL, DND_USETARGET), 160, 1, 0, 80)
		Stop
		Less:
			TNT1 A 0 A_Explode(ACS_NamedExecuteWithResult("DND Weapon Damage Retrieve", DND_DMGID_3, TALENT_ELEMENTAL, DND_USETARGET), 160, 0, 0, 80)
			TNT1 A 1 A_Explode(ACS_NamedExecuteWithResult("DND Weapon Damage Retrieve", DND_DMGID_3, TALENT_ELEMENTAL, DND_USETARGET), 160, 1, 0, 80)
		Stop
	}
}

Actor InfernoProjExplosion2_FullDMG : InfernoExplosion {
	DamageType "FireFull"
	+FORCERADIUSDMG
}

Actor InfernoSwordMissile_1 {
	PROJECTILE
	Damage (ACS_NamedExecuteWithResult("DND Weapon Damage Retrieve", DND_DMGID_2, TALENT_ELEMENTAL, DND_USETARGET))
	DamageType "Fire"
	Speed 28
	Height 16
	Radius 8
	Translation "0:255=%[0.00,0.00,0.00]:[2.0,0.80,0.275]"
	SeeSound "Vorpal/FireSee"
	DeathSound "Vorpal/FireHit"
	Renderstyle Add
	Alpha 1.0
	const int pvel = 28;
	+THRUGHOST
	States {
		Spawn:
			DKAT ABC 3 Bright
		Loop
		Death:
			DKAT D 4 Bright
			TNT1 AAAA 0 A_SpawnItemEx("InfernoSwordMissileFX", frandom(-8, 8), frandom(-8, 8), 0, frandom(-3, 3), frandom(-3, 3))
			DKAT E 3 Bright
			DKAT F 4 Bright A_SpawnItem("InfernoProjExplosion1")
			DKAT G 3 Bright
			DKAT HIJK 2 Bright
			TNT1 A 0 A_PlaySound("Weapons/glahit")
			TNT1 A 0 A_SpawnItem("InfernoProjExplosion2")
			TNT1 A 0 A_SpawnItemEx("OrangeParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
			TNT1 AAAA 0 A_SpawnItemEx("ExplosionFXMagicOrange", frandom(-16, 16), frandom(-16, 16), 0, frandom(-2, 2), frandom(-2, 2), frandom(-2, 2), 0, SXF_NOCHECKPOSITION)
			DKAT LM 2 Bright
			TNT1 A 8 Light("InfernoPuffLight1")
		Stop
	}
}

Actor InfernoSwordMissile_2 : InfernoSwordMissile_1 {
	Speed 1
	States {
		Spawn:
			TNT1 A 1
			TNT1 A 0 A_ScaleVelocity(pvel)
		Goto Super::Spawn
	}
}

Actor InfernoSwordMissile_3 : InfernoSwordMissile_1 {
	Speed 1
	States {
		Spawn:
			TNT1 A 2
			TNT1 A 0 A_ScaleVelocity(pvel)
		Goto Super::Spawn
	}
}

Actor InfernoSwordMissile_4 : InfernoSwordMissile_1 {
	Speed 1
	States {
		Spawn:
			TNT1 A 3
			TNT1 A 0 A_ScaleVelocity(pvel)
		Goto Super::Spawn
	}
}

Actor InfernoSwordMissile_5 : InfernoSwordMissile_1 {
	Speed 1
	States {
		Spawn:
			TNT1 A 4
			TNT1 A 0 A_ScaleVelocity(pvel)
		Goto Super::Spawn
	}
}

Actor InfernoSwordMissile_1_FullDMG : InfernoSwordMissile_1 {
	DamageType "FireFull"
	-THRUGHOST
	States {
		Death:
			DKAT D 4 Bright
			TNT1 AAAA 0 A_SpawnItemEx("InfernoSwordMissileFX", frandom(-8, 8), frandom(-8, 8), 0, frandom(-3, 3), frandom(-3, 3))
			DKAT E 3 Bright
			DKAT F 4 Bright A_SpawnItem("InfernoProjExplosion1_FullDMG")
			DKAT G 3 Bright
			DKAT HIJK 2 Bright
			TNT1 A 0 A_PlaySound("Weapons/glahit")
			TNT1 A 0 A_SpawnItem("InfernoProjExplosion2_FullDMG")
			TNT1 A 0 A_SpawnItemEx("OrangeParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
			TNT1 AAAA 0 A_SpawnItemEx("ExplosionFXMagicOrange", frandom(-16, 16), frandom(-16, 16), 0, frandom(-2, 2), frandom(-2, 2), frandom(-2, 2), 0, SXF_NOCHECKPOSITION)
			DKAT LM 2 Bright
			TNT1 A 8 Light("InfernoPuffLight1")
		Stop
	}
}

Actor InfernoSwordMissile_2_FullDMG : InfernoSwordMissile_1_FullDMG {
	Speed 1
	States {
		Spawn:
			TNT1 A 1
			TNT1 A 0 A_ScaleVelocity(pvel)
		Goto Super::Spawn
	}
}

Actor InfernoSwordMissile_3_FullDMG : InfernoSwordMissile_1_FullDMG {
	Speed 1
	States {
		Spawn:
			TNT1 A 2
			TNT1 A 0 A_ScaleVelocity(pvel)
		Goto Super::Spawn
	}
}

Actor InfernoSwordMissile_4_FullDMG : InfernoSwordMissile_1_FullDMG {
	Speed 1
	States {
		Spawn:
			TNT1 A 3
			TNT1 A 0 A_ScaleVelocity(pvel)
		Goto Super::Spawn
	}
}

Actor InfernoSwordMissile_5_FullDMG : InfernoSwordMissile_1_FullDMG {
	Speed 1
	States {
		Spawn:
			TNT1 A 4
			TNT1 A 0 A_ScaleVelocity(pvel)
		Goto Super::Spawn
	}
}

Actor InfernoSwordMissileFX {
	RenderStyle Add
	Alpha 0.666
	Height 12
	Radius 6
	Translation "0:255=%[0.00,0.00,0.00]:[2.0,0.80,0.275]"
	+NOINTERACTION
	+CLIENTSIDEONLY
	States {
		Spawn:
			DKAT NOPQRST 4 Bright
			DKAT UVW 3 Bright
		Stop
	}
}