ACTOR FlameSword : Weapon
{
SCALE 0.75
+WEAPON.NOALERT
Weapon.SelectionOrder 200
Weapon.SlotNumber 1
Weapon.AmmoUse1 10
Weapon.AmmoGive1 50
Weapon.AmmoType1 "DemonAmmo"
Inventory.PickupMessage "You got the flame sword of Undead Knight!"
Obituary "%o was burned to a crisp by %k."
Tag "Flame Sword"
States
	{
	Spawn:
		FSWS AABBCC 2 Bright
		Loop
	Ready:
		TNT1 A 0 A_JumpIfInventory("DemonAmmo",1,"Ready2")
		TNT1 AAA 0 A_StopSound(CHAN_6)
		FSPU A 2 Bright A_Weaponready
		TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
		TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
		Loop
	Ready2:
		TNT1 A 0 A_PlaySound("FSWLOOP",CHAN_6,0.3,true)
		FSWD AABBCC 2 Bright A_Weaponready
		TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
		TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
		TNT1 A 0 A_JumpIfHealthLower(200,2)
		TNT1 A 0 A_Jump(256,4)
		TNT1 A 0 Healthing(2,200)
		TNT1 A 0 A_TakeInventory("DemonAmmo",1)
		TNT1 A 0 A_JumpIfNoAmmo("Ready")
		FSWD AABBCC 2 Bright A_Weaponready
		TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
		TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
		TNT1 A 0 A_JumpIfHealthLower(200,2)
		TNT1 A 0 A_Jump(256,4)
		TNT1 A 0 Healthing(2,200)
		TNT1 A 0 A_TakeInventory("DemonAmmo",1)
		TNT1 A 0 A_JumpIfNoAmmo("Ready")
		FSWD AABBCC 2 Bright A_Weaponready
		TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
		TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
		TNT1 A 0 A_JumpIfHealthLower(200,2)
		TNT1 A 0 A_Jump(256,4)
		TNT1 A 0 Healthing(2,200)
		TNT1 A 0 A_TakeInventory("DemonAmmo",1)
		TNT1 A 0 A_JumpIfNoAmmo("Ready")
		FSWD AABBCC 2 Bright A_Weaponready
		TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
		TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
		TNT1 A 0 A_JumpIfHealthLower(200,2)
		TNT1 A 0 A_Jump(256,4)
		TNT1 A 0 Healthing(2,200)
		TNT1 A 0 A_TakeInventory("DemonAmmo",1)
		TNT1 A 0 A_JumpIfNoAmmo("Ready")
		TNT1 A 0
		Loop
	Deselect:
		TNT1 A 0 A_Lower
		TNT1 A 0 A_StopSound(CHAN_6)
		FSPU A 1 A_Lower
		Loop
	Select:
		TNT1 A 0 A_Raise
		FSPU A 1 A_Raise
		Loop
	Fire:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_PlaySound("FSWRD1",CHAN_WEAPON)
		FSWD D 1 Bright
		FSWD F 1 bright
		TNT1 A 0 Bright A_FireCustomMissile("FlameSwordProjectile",0,1,24,12,0)
		FSWD H 1 Bright
		TNT1 A 0 Bright A_FireCustomMissile("FlameSwordProjectile",0,1,12,6,0)
		FSWD J 1 Bright
		TNT1 A 0 Bright A_FireCustomMissile("FlameSwordProjectile",0,1,0,0,0)
		FSWD H 1 Bright
		FSWD L 1 Bright
		TNT1 A 0 Bright A_FireCustomMissile("FlameSwordProjectile",0,1,-12,-6,0)
		FSWD M 1 Bright
		FSWD N 1 Bright
		TNT1 A 0 Bright A_FireCustomMissile("FlameSwordProjectile",0,1,-24,-12,0)
		FSWD O 2 Bright
		FSWD P 2 Bright
		FSWD QRS 1 Bright
		TNT1 A 18
		TNT1 A 1
		Goto Ready
	AltFire:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_PlaySound("FSWRD1",CHAN_WEAPON)
		FSWD D 1 Bright
		FSWD FGHIJ 1 Bright
		TNT1 A 0 Bright A_FireCustomMissile("FlameSwordProjectile2",0,1,0,0,0)
		FSWD K 1 Bright
		TNT1 A 0 Bright A_FireCustomMissile("FlameSwordProjectile2",0,1,0,0,0)
		FSWD L 1 Bright
		TNT1 A 0 Bright A_FireCustomMissile("FlameSwordProjectile2",0,1,0,0,0)
		FSWD M 1 Bright
		TNT1 A 0 Bright A_FireCustomMissile("FlameSwordProjectile2",0,1,0,0,0)
		FSWD L 1 Bright
		TNT1 A 0 Bright A_FireCustomMissile("FlameSwordProjectile2",0,1,0,0,0)
		FSWD K 1 Bright
		TNT1 A 0 Bright A_FireCustomMissile("FlameSwordProjectile2",0,1,0,0,0)
		FSWD LM 1 Bright
		TNT1 A 0 Bright A_FireCustomMissile("FlameSwordProjectile2",0,1,0,0,0)
		FSWD N 2 Bright
		FSWD O 2 Bright
		FSWD PQRS 1 Bright
		TNT1 A 10
		TNT1 A 1
		Goto Ready
	GrenadeCheck:
		TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss")
		TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
		Goto Ready
	GrenadeToss:
		TNT1 A 0 A_GiveInventory("Hand Grenade")
		TNT1 A 0 A_SelectWeapon("Hand Grenade")
		Goto Deselect
	MineCheck:
		TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineToss")
		TNT1 A 0 A_TakeInventory("MineAction",1)
		Goto Ready
	MineToss:
		TNT1 A 0 A_GiveInventory("Land Mine")
		TNT1 A 0 A_SelectWeapon("Land Mine")
		Goto Deselect
	}
}

ACTOR FlameSwordProjectile
{
Projectile
Height 12
Radius 3
Speed 30
Decal "Scorch"
RenderStyle Add
ExplosionDamage 34
ExplosionRadius 64
Damage 15
Damagetype "PlayerFireSword"
Seesound "monster/dkndrt"
DeathSound "weapons/firex2"
Obituary "%o was burned to a crisp by %k."
States
	{
	Spawn:
		DKAT ABC 3 Bright
		Loop
	XDeath:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_GiveToTarget("DemonAmmo",10)
	Death:
		TNT1 A 0 Bright
		DKAT D 4 Bright A_SetTranslucent(0.85,1)
		DKAT E 3 Bright A_Spawnitem("FlameSwordProjectileEffect")
		DKAT F 4 Bright A_Explode(80,80,0,1)
		DKAT G 3 Bright
		DKAT H 4 Bright
		DKAT I 3 Bright
		DKAT J 4 Bright
		DKAT KLM 3 Bright
		Stop
	}
}

ACTOR FlameSwordProjectileEffect
{
+NOGRAVITY
+NOBLOCKMAP
RenderStyle Translucent
Alpha 0.6
States
	{
	Spawn:
		TNT1 A 0 Bright
		DKAT NOPQRSTUVW 3 Bright
		Stop
	}
}

Actor FlameSwordProjectile2 : FlameSwordProjectile
{
Speed 60
Damage 10
}