//>>>>>>>>>> Old <<<<<<<<<<

ACTOR FEttin : Ettin replaces Ettin
{
    Tag "Ettin"
    Radius 30
    Height 96
    Speed 17
    +DONTSQUASH
    +NEVERFAST
    +NODAMAGETHRUST
    +NOINFIGHTSPECIES
    Health 750
    Mass 500
    DropItem ManaSpawner 96
    DropItem Bracers 30
    DropItem FoetidFlask 12
    PainChance 30
    PainChance "LifeDrain", 224
    PainChance "PGauntlets", 224
    PainChance "GManaDrain", 224
    PainChance "ManaDrain", 224
    PainChance "HellRain", 192
    PainChance "Charm", 256
    PainChance "CE", 256
    DamageFactor "Dragon", 0.75
    Obituary "%o was clobbered by an ettin"
    HitObituary "%o was mashed by an ettin"
    MeleeRange 105
    Scale 1.4
    States
    {
    Pain.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	ETTN H 7 A_Pain
	Goto See
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	ETTN H 7 A_Pain
	Goto See
    Pain.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	ETTN H 7 A_Pain
	Goto See
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.HoldSpell:
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Pain.Slow:
	TNT1 A 0 A_PlaySound("dsparil/slow/hit")
	TNT1 A 0 A_GiveInventory("SlowedMonster",1)
	Goto See
    Pain.CE:
	TNT1 A 0 A_JumpIfInventory("DeadThing",1,1)
	Goto Pain
	TNT1 A 0 A_TakeFromTarget("RedeemedSoul",1)
	TNT1 A 0 A_PlaySound("weapons/redeemer/corpseexplode")
	TNT1 A 0 A_SpawnItemEx("CEGibSpawner",0,0,12,0,0,0,0,32,0)
	TNT1 A 0 A_Explode(random(650,700),128,0,0,128,0,0,"NoPuff","Player")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	Stop
    Pain.OKnight:
    Pain.NecroShot:
	TNT1 A 0 A_GiveToTarget("Health",random(40,60))
	Goto Pain
    Spawn:
	ETTN AA 10 A_Look
	Loop
    See:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"SeeSlow")
	ETTN ABCD 5 A_Chase
	Loop
    SeeSlow:
	ETTN ABCD 10 A_Chase
	Loop
    Missile:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MissileSlow")
	ETTN EF 4 A_FaceTarget
	ETTN G 0 A_PlaySound("FighterHammerMiss")
	ETTN G 8 A_CustomMissile("ThrownMace",52,0,0)
	ETTN G 0 A_Jump(85,1)
	Goto See
	ETTN EF 4 A_FaceTarget
	ETTN G 0 A_PlaySound("FighterHammerMiss")
	ETTN G 8 A_CustomMissile("ThrownMace",52,0,0)
	Goto See
    MissileSlow:
	ETTN EF 8 A_FaceTarget
	ETTN G 0 A_PlaySound("FighterHammerMiss")
	ETTN G 16 A_CustomMissile("ThrownMaceSlow",52,0,0)
	ETTN G 0 A_Jump(85,1)
	Goto SeeSlow
	ETTN EF 8 A_FaceTarget
	ETTN G 0 A_PlaySound("FighterHammerMiss")
	ETTN G 16 A_CustomMissile("ThrownMaceSlow",52,0,0)
	Goto SeeSlow
    Melee:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MeleeSlow")
	ETTN EF 4 A_FaceTarget
	ETTN G 8 A_CustomMeleeAttack(random[EttinAttack](1,8)*6)
	Goto See
    MeleeSlow:
	ETTN EF 8 A_FaceTarget
	ETTN G 16 A_CustomMeleeAttack(random[EttinAttack](1,8)*6)
	Goto SeeSlow
    Pain:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"PainSlow")
	ETTN H 7 A_Pain
	Goto See
    PainSlow:
	ETTN H 14 A_Pain
	Goto SeeSlow
    Death:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	ETTN IJ 4
	ETTN K 4 A_Scream
	ETTN L 4 A_NoBlocking
	ETTN M 4
	ETTN NOP 4
	ETTN Q -1
	Stop
    XDeath:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	ETTB A 4
	ETTB B 4 A_NoBlocking
	ETTB C 4 A_SpawnItemEx("EttinMace", 0,0,8.5, random[DropMace](-128,127) * 0.03125, random[DropMace](-128,127) * 0.03125,
				10 + random[DropMace](0,255) * 0.015625, 0, SXF_ABSOLUTEMOMENTUM)
	ETTB D 4 A_Scream
	ETTB E 4
	ETTB FGHIJK 4
	ETTB L -1
	Stop
    Death.Redeemer:
	ETTN I 0 A_PlaySound("weapons/redeemer/soulredeemed")
	ETTN I 0 A_GiveToTarget("RedeemedSoul",1)
	ETTN I 0 A_GiveToTarget("RestoreHealth",random(7,11))
	ETTN IIIIIIIIIIIIIIII 0 A_SpawnItemEx("SoulFragment",frandom(-4,4),frandom(-4,4),frandom(8,32),frandom(0.6,1.4),frandom(0.6,1.4),frandom(0.8,2.0),random(0,360),128)
	Goto Death
    Death.Mojo:
	TNT1 A 0 A_GiveToTarget("Mojo",random(6,10))
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.MojoActive:
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.Defile:
	TNT1 A 0 A_SpawnItemEx("DefileSpawner",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.Frost:
	"####" "#" 2
	ETTN R 1 A_IceGuyDie
	Stop
    Ice:
	"####" "#" 2
	ETTN R 1 A_IceGuyDie
	Stop
    Raise:
	ETTN PONMLKJI 4
	TNT1 A 0 A_TakeInventory("DeadThing",1)
	Goto See
    }
}

ACTOR FEttinNin : FEttin
{
    Tag "Ettin"
    Health 920
    States
    {
    Pain.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	ETTN H 7 A_Pain
	Goto See
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	ETTN H 7 A_Pain
	Goto See
    Pain.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	ETTN H 7 A_Pain
	Goto See
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.HoldSpell:
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Pain.Slow:
	TNT1 A 0 A_PlaySound("dsparil/slow/hit")
	TNT1 A 0 A_GiveInventory("SlowedMonster",1)
	Goto See
    Pain.CE:
	TNT1 A 0 A_JumpIfInventory("DeadThing",1,1)
	Goto Pain
	TNT1 A 0 A_TakeFromTarget("RedeemedSoul",1)
	TNT1 A 0 A_PlaySound("weapons/redeemer/corpseexplode")
	TNT1 A 0 A_SpawnItemEx("CEGibSpawner",0,0,12,0,0,0,0,32,0)
	TNT1 A 0 A_Explode(random(650,700),128,0,0,128,0,0,"NoPuff","Player")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	Stop
    Pain.OKnight:
    Pain.NecroShot:
	TNT1 A 0 A_GiveToTarget("Health",random(40,60))
	Goto Pain
    Spawn:
	ETTN AA 10 A_Look
	Loop
    See:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"SeeSlow")
	ETTN ABCD 3 A_Chase
	Loop
    SeeSlow:
	ETTN ABCD 6 A_Chase
	Loop
    Missile:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MissileSlow")
	ETTN EF 4 A_FaceTarget
	ETTN G 0 A_PlaySound("FighterHammerMiss")
	ETTN G 8 A_CustomMissile("ThrownMaceFast",52,0,0)
	ETTN G 0 A_Jump(100,1)
	Goto See
	ETTN EF 4 A_FaceTarget
	ETTN G 0 A_PlaySound("FighterHammerMiss")
	ETTN G 8 A_CustomMissile("ThrownMaceFast",52,0,0)
	Goto See
    MissileSlow:
	ETTN EF 8 A_FaceTarget
	ETTN G 0 A_PlaySound("FighterHammerMiss")
	ETTN G 16 A_CustomMissile("ThrownMaceSlow",52,0,0)
	ETTN G 0 A_Jump(85,1)
	Goto SeeSlow
	ETTN EF 8 A_FaceTarget
	ETTN G 0 A_PlaySound("FighterHammerMiss")
	ETTN G 16 A_CustomMissile("ThrownMaceSlow",52,0,0)
	Goto SeeSlow
    Melee:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MeleeSlow")
	ETTN EF 4 A_FaceTarget
	ETTN G 8 A_CustomMeleeAttack(random[EttinAttack](1,8)*6)
	Goto See
    MeleeSlow:
	ETTN EF 8 A_FaceTarget
	ETTN G 16 A_CustomMeleeAttack(random[EttinAttack](1,8)*6)
	Goto SeeSlow
    Pain:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"PainSlow")
	ETTN H 7 A_Pain
	Goto See
    PainSlow:
	ETTN H 14 A_Pain
	Goto SeeSlow
    Death:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	ETTN IJ 4
	ETTN K 4 A_Scream
	ETTN L 4 A_NoBlocking
	ETTN M 4
	ETTN NOP 4
	ETTN Q -1
	Stop
    XDeath:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)	
	ETTB A 4
	ETTB B 4 A_NoBlocking
	ETTB C 4 A_SpawnItemEx("EttinMace", 0,0,8.5, random[DropMace](-128,127) * 0.03125, random[DropMace](-128,127) * 0.03125,
				10 + random[DropMace](0,255) * 0.015625, 0, SXF_ABSOLUTEMOMENTUM)
	ETTB D 4 A_Scream
	ETTB E 4
	ETTB FGHIJK 4
	ETTB L -1
	Stop
    Death.Redeemer:
	ETTN I 0 A_PlaySound("weapons/redeemer/soulredeemed")
	ETTN I 0 A_GiveToTarget("RedeemedSoul",1)
	ETTN I 0 A_GiveToTarget("RestoreHealth",random(7,11))
	ETTN IIIIIIIIIIIIIIII 0 A_SpawnItemEx("SoulFragment",frandom(-4,4),frandom(-4,4),frandom(8,32),frandom(0.6,1.4),frandom(0.6,1.4),frandom(0.8,2.0),random(0,360),128)
	Goto Death
    Death.Mojo:
	TNT1 A 0 A_GiveToTarget("Mojo",random(6,10))
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.MojoActive:
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.Defile:
	TNT1 A 0 A_SpawnItemEx("DefileSpawner",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.Frost:
	"####" "#" 2
	ETTN R 1 A_IceGuyDie
	Stop
    Ice:
	"####" "#" 2
	ETTN R 1 A_IceGuyDie
	Stop
    Raise:
	ETTN PONMLKJI 4
	TNT1 A 0 A_TakeInventory("DeadThing",1)
	Goto See
    }
}

ACTOR ThrownMace
{
    Speed 20
    Radius 6
    Height 8
    PROJECTILE
    -ACTIVATEPCROSS
    +NOEXTREMEDEATH
    +NOTELEPORT
    Damage 6
    Scale 1.2
    DeathSound "Fireball"
    States
    {
    Spawn:
	AEMC AA 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC A 1 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC AA 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC A 1 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC AA 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC A 1 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC BB 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC B 1 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC BB 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC B 1 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC BB 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC B 1 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC CC 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC C 1 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC CC 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC C 1 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC CC 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC C 1 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC D 0 Bright A_PlaySound("FighterHammerContinuous")
	AEMC DD 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC D 1 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC DD 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC D 1 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC DD 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC D 1 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC EE 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC E 1 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC EE 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC E 1 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC EE 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC E 1 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC FF 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC F 1 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC FF 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC F 1 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC FF 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC F 1 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC GG 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC G 1 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC GG 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC G 1 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC GG 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC G 1 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC H 0 Bright A_PlaySound("FighterHammerContinuous")
	AEMC HH 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC H 1 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC HH 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC H 1 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC HH 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC H 1 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	Loop
    Death:
	CFCF Q 0 A_SetTranslucent(1,1)
	CFCF Q 4 Bright
	CFCF R 3 Bright
	CFCF S 4 Bright
	CFCF T 3 Bright
	CFCF U 4 Bright
	CFCF V 3 Bright
	CFCF W 4 Bright
	CFCF X 3 Bright
	CFCF Y 4 Bright
	CFCF Z 3 Bright
	Stop
    }
}

ACTOR ThrownMaceSlow
{
    Speed 12
    Radius 6
    Height 8
    PROJECTILE
    -ACTIVATEPCROSS
    +NOEXTREMEDEATH
    +NOTELEPORT
    Damage 6
    DeathSound "Fireball"
    States
    {
    Spawn:
	AEMC AA 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC A 2 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC AA 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC A 2 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC AA 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC A 2 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC BB 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC B 2 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC BB 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC B 2 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC BB 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC B 2 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC CC 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC C 2 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC CC 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC C 2 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC CC 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC C 2 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC D 0 Bright A_PlaySound("FighterHammerContinuous")
	AEMC DD 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC D 2 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC DD 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC D 2 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC DD 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC D 2 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC EE 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC E 2 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC EE 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC E 2 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC EE 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC E 2 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC FF 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC F 2 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC FF 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC F 2 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC FF 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC F 2 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC GG 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC G 2 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC GG 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC G 2 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC GG 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC G 2 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC H 0 Bright A_PlaySound("FighterHammerContinuous")
	AEMC HH 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC H 2 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC HH 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC H 2 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC HH 0 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	AEMC H 2 Bright A_SpawnItemEx("ThrownMaceFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	Loop
    Death:
	CFCF Q 0 A_SetTranslucent(1,1)
	CFCF Q 4 Bright
	CFCF R 3 Bright
	CFCF S 4 Bright
	CFCF T 3 Bright
	CFCF U 4 Bright
	CFCF V 3 Bright
	CFCF W 4 Bright
	CFCF X 3 Bright
	CFCF Y 4 Bright
	CFCF Z 3 Bright
	Stop
    }
}

ACTOR ThrownMaceFast : ThrownMace
{
    Speed 28
}

ACTOR ThrownMaceFX
{
    Radius 1
    Height 1
    +NOINTERACTION
    RenderStyle Add
    Translation "0:255=%[0.0,0.0,0.2]:[0.6,0.0,0.8]","255:255=235:235"
    Alpha 0.7
    Scale 0.065
    States
    {
    Spawn:
	TNT1 A 0
	BNPT A 4 Bright A_FadeOut(0.09)
	Loop
    }
}

//----------------------------------------------------------

ACTOR FCentaur : Centaur replaces Centaur
{
    Tag "Centaur"
    Health 280
    +DONTSQUASH
    +NEVERFAST
    +NODAMAGETHRUST
    +NOINFIGHTSPECIES
    DropItem BlueManaSpawner 50
    DropItem IcePotion 8
    PainChance "HellRain", 224
    PainChance "LifeDrain", 224
    PainChance "PGauntlets", 224
    PainChance "GManaDrain", 224
    PainChance "ManaDrain", 224
    PainChance "Charm", 256
    PainChance "CE", 256
    MeleeRange 85
    MeleeDamage 4
    States
    {
    Pain.LifeDrain:
	CENT G 0
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Pain
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Pain
    Pain.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Pain
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.Cube:
    Pain.Crush:
    Pain.Vorpal:
    Pain.Quietus:
    Pain.QuietusTrail:
    Pain.Redeemer:
    Pain.HellRain:
    Pain.Meteor:
    Pain.Torment:
    Pain.Iron:
    Pain.Bloodscourge:
    Pain.DSparil:
    Pain.Pod:
    Pain.Mojo:
    Pain.MojoActive:
    Pain.Defile:
	CENT G 6 A_Pain
	Goto See
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.HoldSpell:
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Pain.Slow:
	TNT1 A 0 A_PlaySound("dsparil/slow/hit")
	TNT1 A 0 A_GiveInventory("SlowedMonster",1)
	Goto See
    Pain.CE:
	TNT1 A 0 A_JumpIfInventory("DeadThing",1,1)
	Goto Pain
	TNT1 A 0 A_TakeFromTarget("RedeemedSoul",1)
	TNT1 A 0 A_PlaySound("weapons/redeemer/corpseexplode")
	TNT1 A 0 A_SpawnItemEx("CEGibSpawner",0,0,12,0,0,0,0,32,0)
	TNT1 A 0 A_Explode(random(200,250),128,0,0,128,0,0,"NoPuff","Player")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	Stop
    Pain.OKnight:
    Pain.NecroShot:
	TNT1 A 0 A_GiveToTarget("Health",random(40,60))
	Goto Pain
    Spawn:
	CENT AB 10 A_Look
	Loop
    See:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"SeeSlow")
	CENT ABCD 4 A_Chase
	Loop
    SeeSlow:
	CENT ABCD 8 A_Chase
	Loop
    Melee:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MeleeSlow")
	CENT H 5 A_FaceTarget
	CENT I 4 A_FaceTarget
	CENT J 7 A_CustomMeleeAttack(random[CentaurAttack](3,9))
	Goto See
    MeleeSlow:
	CENT H 10 A_FaceTarget
	CENT I 8 A_FaceTarget
	CENT J 14 A_CustomMeleeAttack(random[CentaurAttack](3,9))
	Goto SeeSlow
    Pain:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"PainSlow")
	CENT G 6 A_Pain
	CENT G 6 A_SetReflectiveInvulnerable
	CENT EEE 15 A_CentaurDefend
	CENT E 1 A_UnsetReflectiveInvulnerable
	Goto See
    PainSlow:
	CENT G 18 A_Pain
	CENT G 6 A_SetReflectiveInvulnerable
	CENT EEE 15 A_CentaurDefend
	CENT E 1 A_UnsetReflectiveInvulnerable
	Goto SeeSlow
    Death:
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	CENT K 4
	CENT L 4 A_Scream
	CENT MN 4
	CENT O 4 A_NoBlocking
	CENT PQ 4
	CENT R 4
	CENT S 4 A_GiveInventory("DeadThing",1)
	CENT T -1
	Stop
    XDeath:
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	CTXD A 4
	CTXD B 4 A_NoBlocking
	CTXD C 0 A_SpawnItemEx("CentaurSword", 0, 0, 45, 1 + random[CentaurDrop](-128,127)*0.03125,
				1 + random[CentaurDrop](-128,127)*0.03125, 8 + random[CentaurDrop](0,255)*0.015625, 270)
	CTXD C 4 A_SpawnItemEx("CentaurShield", 0, 0, 45, 1 + random[CentaurDrop](-128,127)*0.03125, 
				1 + random[CentaurDrop](-128,127)*0.03125, 8 + random[CentaurDrop](0,255)*0.015625, 90)
	CTXD D 3 A_Scream
	CTXD E 4
	CTXD F 3
	CTXD G 4
	CTXD H 3
	CTXD I 4
	CTXD J 3 A_GiveInventory("DeadThing",1)
	CTXD K -1
	Stop
    Death.Redeemer:
	CENT K 0 A_PlaySound("weapons/redeemer/soulredeemed")
	CENT K 0 A_GiveToTarget("RedeemedSoul", 1)
	CENT K 0 A_GiveToTarget("RestoreHealth",random(7,11))
	CENT KKKKKKKKKKKKKKKK 0 A_SpawnItemEx("SoulFragment",frandom(-4,4),frandom(-4,4),frandom(8,32),frandom(0.6,1.4),frandom(0.6,1.4),frandom(0.8,2.0),random(0,360),128)
	Goto Death
    Death.Mojo:
	TNT1 A 0 A_GiveToTarget("Mojo",random(6,10))
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,48,0,0,0,0,32,0)
	Goto Death
    Death.MojoActive:
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.Defile:
	TNT1 A 0 A_SpawnItemEx("DefileSpawner",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.Frost:
	"####" "#" 2
	CENT U 0 A_UnSetReflectiveInvulnerable
	CENT U 1 A_IceGuyDie
	Stop
    Ice:
	"####" "#" 2
	CENT U 0 A_UnSetReflectiveInvulnerable
	CENT U 1 A_IceGuyDie
	Stop
    Raise:
	CENT SRQPONMLK 4
	TNT1 A 0 A_TakeInventory("DeadThing",1)
	Goto See
    }
}

//----------------------------------------------------------

ACTOR FCentaurLeader : CentaurLeader replaces CentaurLeader
{
    Tag "Slaughtaur"
    Health 400
    Scale 1.1
    Radius 20
    Height 68
    DropItem GreenManaSpawner 50
    DropItem IcePotion 12
    DamageFactor "Crush", 4.0
    PainChance "HellRain", 224
    PainChance "LifeDrain", 224
    PainChance "PGauntlets", 224
    PainChance "GManaDrain", 224
    PainChance "ManaDrain", 224
    PainChance "Charm", 256
    PainChance "CE", 256
    HitObituary "%o was sliced and diced by a slaughtaur"
    Translation "81:121=%[0.0,0.0,0.0]:[0.5,0.7,0.8]","145:145=80:80" // "81:121=%[0.0,0.0,0.0]:[1.6,0.4,0.3]","145:145=245:245"
    +DONTSQUASH
    +NEVERFAST
    +NODAMAGETHRUST
    +NOINFIGHTSPECIES
    MeleeRange 88
    MeleeDamage 4
    States
    {
    Pain.LifeDrain:
	CENT G 0
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Pain
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Pain
    Pain.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Pain
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.Cube:
    Pain.Crush:
    Pain.Vorpal:
    Pain.Quietus:
    Pain.QuietusTrail:
    Pain.Redeemer:
    Pain.HellRain:
    Pain.Meteor:
    Pain.Torment:
    Pain.Iron:
    Pain.Bloodscourge:
    Pain.DSparil:
    Pain.Pod:
    Pain.Mojo:
    Pain.MojoActive:
    Pain.Defile:
	CENT G 6 A_Pain
	Goto See
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.HoldSpell:
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Pain.Slow:
	TNT1 A 0 A_PlaySound("dsparil/slow/hit")
	TNT1 A 0 A_GiveInventory("SlowedMonster",1)
	Goto See
    Pain.CE:
	TNT1 A 0 A_JumpIfInventory("DeadThing",1,1)
	Goto Pain
	TNT1 A 0 A_TakeFromTarget("RedeemedSoul",1)
	TNT1 A 0 A_PlaySound("weapons/redeemer/corpseexplode")
	TNT1 A 0 A_SpawnItemEx("CEGibSpawner",0,0,12,0,0,0,0,32,0)
	TNT1 A 0 A_Explode(random(330,390),128,0,0,128,0,0,"NoPuff","Player")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	Stop
    Pain.OKnight:
    Pain.NecroShot:
	TNT1 A 0 A_GiveToTarget("Health",random(40,60))
	Goto Pain
    Spawn:
	CENT AB 10 A_Look
	Loop
    See:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"SeeSlow")
	CENT ABCD 4 A_Chase
	Loop
    SeeSlow:
	CENT ABCD 8 A_Chase
	Loop
    Melee:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MeleeSlow")
	CENT H 5 A_FaceTarget
	CENT I 4 A_FaceTarget
	CENT J 7 A_CustomMeleeAttack(random[CentaurAttack](3,9))
	Goto See
    MeleeSlow:
	CENT H 10 A_FaceTarget
	CENT I 8 A_FaceTarget
	CENT J 14 A_CustomMeleeAttack(random[CentaurAttack](3,9))
	Goto SeeSlow
    Missile:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MissileSlow")
	CENT E 10 A_FaceTarget
	CENT F 8 Bright A_CustomMissile("CentaurMissile",50,-4,0,0)
	CENT E 10 A_FaceTarget
	CENT F 8 Bright A_CustomMissile("CentaurMissile",50,-4,0,0)
	Goto See
    MissileSlow:
	CENT E 20 A_FaceTarget
	CENT F 16 Bright A_CustomMissile("CentaurMissileSlow",50,-4,0,0)
	CENT E 20 A_FaceTarget
	CENT F 16 Bright A_CustomMissile("CentaurMissileSlow",50,-4,0,0)
	Goto SeeSlow
    Pain:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"PainSlow")
	CENT G 6 A_Pain
	CENT G 6 A_SetReflectiveInvulnerable
	CENT G 0 A_JumpIf(3 > (ACS_ExecuteWithResult(803,0,0,0,0)),6)
	CENT G 0 A_Jump(128,5)
	CENT E 10 A_FaceTarget
	CENT F 8 Bright A_CustomMissile("CentaurMissile",50,-4,0,0)
	CENT E 6 A_FaceTarget
	CENT E 0 A_Jump(256,4)
	CENT EEE 15 A_CentaurDefend
	CENT E 1 A_UnsetReflectiveInvulnerable
	Goto See
    PainSlow:
	CENT G 18 A_Pain
	CENT G 6 A_SetReflectiveInvulnerable
	CENT EEE 15 A_CentaurDefend
	CENT E 1 A_UnsetReflectiveInvulnerable
	Goto SeeSlow
    Death:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	CENT K 4
	CENT L 4 A_Scream
	CENT MN 4
	CENT O 4 A_NoBlocking
	CENT PQ 4
	CENT R 4
	CENT S 4
	CENT T -1
	Stop
    XDeath:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	CTXD A 4
	CTXD B 4 A_NoBlocking
	CTXD C 0 A_SpawnItemEx("CentaurSword", 0, 0, 45, 1 + random[CentaurDrop](-128,127)*0.03125,
				1 + random[CentaurDrop](-128,127)*0.03125, 8 + random[CentaurDrop](0,255)*0.015625, 270)
	CTXD C 4 A_SpawnItemEx("CentaurShield", 0, 0, 45, 1 + random[CentaurDrop](-128,127)*0.03125, 
				1 + random[CentaurDrop](-128,127)*0.03125, 8 + random[CentaurDrop](0,255)*0.015625, 90)
	CTXD D 3 A_Scream
	CTXD E 4
	CTXD F 3
	CTXD G 4
	CTXD H 3
	CTXD I 4
	CTXD J 3
	CTXD K -1
	Stop
    Death.Redeemer:
	CENT K 0 A_PlaySound("weapons/redeemer/soulredeemed")
	CENT K 0 A_GiveToTarget("RedeemedSoul", 1)
	CENT K 0 A_GiveToTarget("RestoreHealth",random(7,11))
	CENT KKKKKKKKKKKKKKKK 0 A_SpawnItemEx("SoulFragment",frandom(-4,4),frandom(-4,4),frandom(8,32),frandom(0.6,1.4),frandom(0.6,1.4),frandom(0.8,2.0),random(0,360),128)
	Goto Death
    Death.Mojo:
	TNT1 A 0 A_GiveToTarget("Mojo",random(6,10))
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,48,0,0,0,0,32,0)
	Goto Death
    Death.MojoActive:
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.Defile:
	TNT1 A 0 A_SpawnItemEx("DefileSpawner",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.Frost:
	"####" "#" 2
	CENT U 0 A_UnSetReflectiveInvulnerable
	CENT U 1 A_IceGuyDie
	Stop
    Ice:
	"####" "#" 2
	CENT U 0 A_UnSetReflectiveInvulnerable
	CENT U 1 A_IceGuyDie
	Stop
    Raise:
	CENT SRQPONMLK 4
	TNT1 A 0 A_TakeInventory("DeadThing",1)
	Goto See
    }
}

ACTOR FCentaurNin : FCentaur
{
    Tag "Centaur"
    Health 320
    Speed 16
    States
    {
    Pain.LifeDrain:
	CENT G 0
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Pain
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Pain
    Pain.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Pain
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.HoldSpell:
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Pain.Slow:
	TNT1 A 0 A_PlaySound("dsparil/slow/hit")
	TNT1 A 0 A_GiveInventory("SlowedMonster",1)
	Goto See
    Pain.CE:
	TNT1 A 0 A_JumpIfInventory("DeadThing",1,1)
	Goto Pain
	TNT1 A 0 A_TakeFromTarget("RedeemedSoul",1)
	TNT1 A 0 A_PlaySound("weapons/redeemer/corpseexplode")
	TNT1 A 0 A_SpawnItemEx("CEGibSpawner",0,0,12,0,0,0,0,32,0)
	TNT1 A 0 A_Explode(random(250,300),128,0,0,128,0,0,"NoPuff","Player")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	Stop
    Pain.OKnight:
    Pain.NecroShot:
	TNT1 A 0 A_GiveToTarget("Health",random(40,60))
	Goto Pain
    Spawn:
	CENT AB 10 A_Look
	Loop
    See:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"SeeSlow")
	CENT ABCD 3 A_Chase
	Loop
    SeeSlow:
	CENT ABCD 6 A_Chase
	Loop
    Melee:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MeleeSlow")
	CENT H 5 A_FaceTarget
	CENT I 4 A_FaceTarget
	CENT J 7 A_CustomMeleeAttack(random[CentaurAttack](3,9))
	Goto See
    MeleeSlow:
	CENT H 10 A_FaceTarget
	CENT I 8 A_FaceTarget
	CENT J 14 A_CustomMeleeAttack(random[CentaurAttack](3,9))
	Goto SeeSlow
    Pain:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"PainSlow")
	CENT G 6 A_Pain
	CENT G 6 A_SetReflectiveInvulnerable
	CENT EEE 15 A_CentaurDefend
	CENT E 1 A_UnsetReflectiveInvulnerable
	Goto See
    PainSlow:
	CENT G 18 A_Pain
	CENT G 6 A_SetReflectiveInvulnerable
	CENT EEE 15 A_CentaurDefend
	CENT E 1 A_UnsetReflectiveInvulnerable
	Goto SeeSlow
    Death:
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	CENT K 4
	CENT L 4 A_Scream
	CENT MN 4
	CENT O 4 A_NoBlocking
	CENT PQ 4
	CENT R 4
	CENT S 4 A_GiveInventory("DeadThing",1)
	CENT T -1
	Stop
    XDeath:
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	CTXD A 4
	CTXD B 4 A_NoBlocking
	CTXD C 0 A_SpawnItemEx("CentaurSword", 0, 0, 45, 1 + random[CentaurDrop](-128,127)*0.03125,
				1 + random[CentaurDrop](-128,127)*0.03125, 8 + random[CentaurDrop](0,255)*0.015625, 270)
	CTXD C 4 A_SpawnItemEx("CentaurShield", 0, 0, 45, 1 + random[CentaurDrop](-128,127)*0.03125, 
				1 + random[CentaurDrop](-128,127)*0.03125, 8 + random[CentaurDrop](0,255)*0.015625, 90)
	CTXD D 3 A_Scream
	CTXD E 4
	CTXD F 3
	CTXD G 4
	CTXD H 3
	CTXD I 4
	CTXD J 3 A_GiveInventory("DeadThing",1)
	CTXD K -1
	Stop
    Death.Redeemer:
	CENT K 0 A_PlaySound("weapons/redeemer/soulredeemed")
	CENT K 0 A_GiveToTarget("RedeemedSoul", 1)
	CENT K 0 A_GiveToTarget("RestoreHealth",random(7,11))
	CENT KKKKKKKKKKKKKKKK 0 A_SpawnItemEx("SoulFragment",frandom(-4,4),frandom(-4,4),frandom(8,32),frandom(0.6,1.4),frandom(0.6,1.4),frandom(0.8,2.0),random(0,360),128)
	Goto Death
    Death.Mojo:
	TNT1 A 0 A_GiveToTarget("Mojo",random(6,10))
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,48,0,0,0,0,32,0)
	Goto Death
    Death.MojoActive:
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.Defile:
	TNT1 A 0 A_SpawnItemEx("DefileSpawner",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.Frost:
	"####" "#" 2
	CENT U 0 A_UnSetReflectiveInvulnerable
	CENT U 1 A_IceGuyDie
	Stop
    Ice:
	"####" "#" 2
	CENT U 0 A_UnSetReflectiveInvulnerable
	CENT U 1 A_IceGuyDie
	Stop
    Raise:
	CENT SRQPONMLK 4
	TNT1 A 0 A_TakeInventory("DeadThing",1)
	Goto See
    }
}

ACTOR FCentaurLeaderNin : FCentaurLeader
{
    Tag "Slaughtaur"
    Health 450
    Speed 16
    States
    {
    Pain.LifeDrain:
	CENT G 0
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Pain
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Pain
    Pain.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Pain
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.HoldSpell:
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Pain.Slow:
	TNT1 A 0 A_PlaySound("dsparil/slow/hit")
	TNT1 A 0 A_GiveInventory("SlowedMonster",1)
	Goto See
    Pain.CE:
	TNT1 A 0 A_JumpIfInventory("DeadThing",1,1)
	Goto Pain
	TNT1 A 0 A_TakeFromTarget("RedeemedSoul",1)
	TNT1 A 0 A_PlaySound("weapons/redeemer/corpseexplode")
	TNT1 A 0 A_SpawnItemEx("CEGibSpawner",0,0,12,0,0,0,0,32,0)
	TNT1 A 0 A_Explode(random(380,440),128,0,0,128,0,0,"NoPuff","Player")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	Stop
    Pain.OKnight:
    Pain.NecroShot:
	TNT1 A 0 A_GiveToTarget("Health",random(40,60))
	Goto Pain
    Spawn:
	CENT AB 10 A_Look
	Loop
    See:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"SeeSlow")
	CENT ABCD 3 A_Chase
	Loop
    SeeSlow:
	CENT ABCD 6 A_Chase
	Loop
    Melee:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MeleeSlow")
	CENT H 5 A_FaceTarget
	CENT I 4 A_FaceTarget
	CENT J 7 A_CustomMeleeAttack(random[CentaurAttack](3,9))
	Goto See
    MeleeSlow:
	CENT H 10 A_FaceTarget
	CENT I 8 A_FaceTarget
	CENT J 14 A_CustomMeleeAttack(random[CentaurAttack](3,9))
	Goto SeeSlow
    Missile:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MissileSlow")
	CENT E 10 A_FaceTarget
	CENT F 8 Bright A_CustomMissile("CentaurMissileFast",50,-4,0,0)
	CENT E 10 A_FaceTarget
	CENT F 8 Bright A_CustomMissile("CentaurMissileFast",50,-4,0,0)
	Goto See
    MissileSlow:
	CENT E 20 A_FaceTarget
	CENT F 16 Bright A_CustomMissile("CentaurMissileSlow",50,-4,0,0)
	CENT E 20 A_FaceTarget
	CENT F 16 Bright A_CustomMissile("CentaurMissileSlow",50,-4,0,0)
	Goto SeeSlow
    Pain:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"PainSlow")
	CENT G 6 A_Pain
	CENT G 6 A_SetReflectiveInvulnerable
	CENT G 0 A_JumpIf(3 > (ACS_ExecuteWithResult(803,0,0,0,0)),6)
	CENT G 0 A_Jump(128,5)
	CENT E 10 A_FaceTarget
	CENT F 8 Bright A_CustomMissile("CentaurMissile",50,-4,0,0)
	CENT E 6 A_FaceTarget
	CENT E 0 A_Jump(256,4)
	CENT EEE 15 A_CentaurDefend
	CENT E 1 A_UnsetReflectiveInvulnerable
	Goto See
    PainSlow:
	CENT G 18 A_Pain
	CENT G 6 A_SetReflectiveInvulnerable
	CENT EEE 15 A_CentaurDefend
	CENT E 1 A_UnsetReflectiveInvulnerable
	Goto SeeSlow
    Death:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	CENT K 4
	CENT L 4 A_Scream
	CENT MN 4
	CENT O 4 A_NoBlocking
	CENT PQ 4
	CENT R 4
	CENT S 4
	CENT T -1
	Stop
    XDeath:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	CTXD A 4
	CTXD B 4 A_NoBlocking
	CTXD C 0 A_SpawnItemEx("CentaurSword", 0, 0, 45, 1 + random[CentaurDrop](-128,127)*0.03125,
				1 + random[CentaurDrop](-128,127)*0.03125, 8 + random[CentaurDrop](0,255)*0.015625, 270)
	CTXD C 4 A_SpawnItemEx("CentaurShield", 0, 0, 45, 1 + random[CentaurDrop](-128,127)*0.03125, 
				1 + random[CentaurDrop](-128,127)*0.03125, 8 + random[CentaurDrop](0,255)*0.015625, 90)
	CTXD D 3 A_Scream
	CTXD E 4
	CTXD F 3
	CTXD G 4
	CTXD H 3
	CTXD I 4
	CTXD J 3
	CTXD K -1
	Stop
    Death.Redeemer:
	CENT K 0 A_PlaySound("weapons/redeemer/soulredeemed")
	CENT K 0 A_GiveToTarget("RedeemedSoul", 1)
	CENT K 0 A_GiveToTarget("RestoreHealth",random(7,11))
	CENT KKKKKKKKKKKKKKKK 0 A_SpawnItemEx("SoulFragment",frandom(-4,4),frandom(-4,4),frandom(8,32),frandom(0.6,1.4),frandom(0.6,1.4),frandom(0.8,2.0),random(0,360),128)
	Goto Death
    Death.Mojo:
	TNT1 A 0 A_GiveToTarget("Mojo",random(6,10))
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,48,0,0,0,0,32,0)
	Goto Death
    Death.MojoActive:
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.Defile:
	TNT1 A 0 A_SpawnItemEx("DefileSpawner",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.Frost:
	"####" "#" 2
	CENT U 0 A_UnSetReflectiveInvulnerable
	CENT U 1 A_IceGuyDie
	Stop
    Ice:
	"####" "#" 2
	CENT U 0 A_UnSetReflectiveInvulnerable
	CENT U 1 A_IceGuyDie
	Stop
    Raise:
	CENT SRQPONMLK 4
	TNT1 A 0 A_TakeInventory("DeadThing",1)
	Goto See
    }
}

ACTOR CentaurMissile : CentaurFX replaces CentaurFX
{
    Speed 24
    Damage 5
    Radius 8
    Height 6
    RenderStyle Add
    PROJECTILE
    -ACTIVATEPCROSS
    States
    {
    Spawn:
	CTFX AA 0 Bright A_SpawnItemEx("CentaurMissileFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	CTFX A 1 Bright A_SpawnItemEx("CentaurMissileFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	CTFX AA 0 Bright A_SpawnItemEx("CentaurMissileFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	CTFX A 1 Bright A_SpawnItemEx("CentaurMissileFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	CTFX AA 0 Bright A_SpawnItemEx("CentaurMissileFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	CTFX A 1 Bright A_SpawnItemEx("CentaurMissileFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	Loop
    }
}

ACTOR CentaurMissileSlow : CentaurMissile
{
    Speed 12
    PROJECTILE
    -ACTIVATEPCROSS
    States
    {
    Spawn:
	CTFX AA 0 Bright A_SpawnItemEx("CentaurMissileFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	CTFX A 2 Bright A_SpawnItemEx("CentaurMissileFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	CTFX AA 0 Bright A_SpawnItemEx("CentaurMissileFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	CTFX A 2 Bright A_SpawnItemEx("CentaurMissileFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	CTFX AA 0 Bright A_SpawnItemEx("CentaurMissileFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	CTFX A 2 Bright A_SpawnItemEx("CentaurMissileFX",frandom(-6,6),frandom(-6,6),frandom(-4,4),frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	Loop
    }
}

ACTOR CentaurMissileFast : CentaurMissile
{
    Speed 36
}

ACTOR CentaurMissileFX
{
    Radius 1
    Height 1
    +NOINTERACTION
    RenderStyle Add
    Translation "0:255=%[0.0,0.0,0.2]:[0.0,0.0,1.2]","255:255=223:223"
    Alpha 0.7
    Scale 0.065
    States
    {
    Spawn:
	TNT1 A 0
	BNPT A 4 Bright A_FadeOut(0.09)
	Loop
    }
}

//----------------------------------------------------------

ACTOR FDemon1 : Demon1 replaces Demon1
{
    Tag "Chaos Serpent"
    Height 96
    Health 600
    Translation "186:202=%[0.0,0.0,0.0]:[1.15,1.1,1.05]","51:66=%[0.0,0.0,0.0]:[1.15,1.1,1.05]" // [1.25,1.2,1.05]
    +DONTSQUASH
    +NEVERFAST
    +NODAMAGETHRUST
    +NOINFIGHTSPECIES
//    +DONTHARMSPECIES
    DropItem MalisonScroll 10
    DropItem BlueManaSpawner 50
    DropItem BronzeCoin 2
    Species "CSerpent"
    DamageFactor "Serpent", 0.8
    PainChance "LifeDrain", 224
    PainChance "PGauntlets", 224
    PainChance "GManaDrain", 224
    PainChance "ManaDrain", 224
    PainChance "HellRain", 192
    PainChance "Charm", 256
    PainChance "CE", 256
    States
    {
    Pain.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	DEMN E 8 A_Pain
	Goto See
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	DEMN E 8 A_Pain
	Goto See
    Pain.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	DEMN E 8 A_Pain
	Goto See
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.HoldSpell:
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Pain.Slow:
	TNT1 A 0 A_PlaySound("dsparil/slow/hit")
	TNT1 A 0 A_GiveInventory("SlowedMonster",1)
	Goto See
    Pain.CE:
	TNT1 A 0 A_JumpIfInventory("DeadThing",1,1)
	Goto Pain
	TNT1 A 0 A_TakeFromTarget("RedeemedSoul",1)
	TNT1 A 0 A_PlaySound("weapons/redeemer/corpseexplode")
	TNT1 A 0 A_SpawnItemEx("CEGibSpawner",0,0,12,0,0,0,0,32,0)
	TNT1 A 0 A_Explode(random(520,560),128,0,0,128,0,0,"NoPuff","Player")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	Stop
    Pain.OKnight:
    Pain.NecroShot:
	TNT1 A 0 A_GiveToTarget("Health",random(40,60))
	Goto Pain
    Spawn:
	DEMN AA 10 A_Look
	Loop
    See:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"SeeSlow")
	DEMN ABCD 4 A_Chase
	Loop
    SeeSlow:
	DEMN ABCD 8 A_Chase
	Loop
    Melee:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MeleeSlow")
	DEMN E 6 A_FaceTarget
	DEMN F 8 A_FaceTarget
	DEMN G 6 A_CustomMeleeAttack(random[DemonAttack1](1,8)*2)
	Goto See
    MeleeSlow:
	DEMN E 12 A_FaceTarget
	DEMN F 16 A_FaceTarget
	DEMN G 12 A_CustomMeleeAttack(random[DemonAttack1](1,8)*2)
	Goto SeeSlow
    Missile:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MissileSlow")
	DEMN E 5 A_FaceTarget
	DEMN F 6 A_FaceTarget
	DEMN G 5 A_CustomMissile("Demon1Fireball", 62, 0)
	Goto See
    MissileSlow:
	DEMN E 10 A_FaceTarget
	DEMN F 12 A_FaceTarget
	DEMN G 10 A_CustomMissile("Demon1FireballSlow", 62, 0)
	Goto SeeSlow
    Pain:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"PainSlow")
	DEMN E 4
	DEMN E 4 A_Pain
	Goto See
    PainSlow:
	DEMN E 8
	DEMN E 8 A_Pain
	Goto SeeSlow
    Death:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	DEMN HI 6
	DEMN J 6 A_Scream
	DEMN K 6 A_NoBlocking
	DEMN L 6
	DEMN MNO 6
	DEMN P -1
	Stop
    XDeath:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	DEMN H 6
	DEMN I 0 A_SpawnItemEx("Demon1Chunk1", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
				1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 90)
	DEMN I 0 A_SpawnItemEx("Demon1Chunk2", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
				1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
	DEMN I 0 A_SpawnItemEx("Demon1Chunk3", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
				1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
	DEMN I 0 A_SpawnItemEx("Demon1Chunk4", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
 				1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
	DEMN I 6 A_SpawnItemEx("Demon1Chunk5", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
				1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
	Goto Death+4
    Death.Redeemer:
	DEMN H 0 A_PlaySound("weapons/redeemer/soulredeemed")
	DEMN H 0 A_GiveToTarget("RedeemedSoul", 1)
	DEMN H 0 A_GiveToTarget("RestoreHealth",random(7,11))
	DEMN HHHHHHHHHHHHHHHH 0 A_SpawnItemEx("SoulFragment",frandom(-4,4),frandom(-4,4),frandom(8,32),frandom(0.6,1.4),frandom(0.6,1.4),frandom(0.8,2.0),random(0,360),128)
	Goto Death
    Death.Mojo:
	TNT1 A 0 A_GiveToTarget("Mojo",random(6,10))
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.MojoActive:
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.Defile:
	TNT1 A 0 A_SpawnItemEx("DefileSpawner",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.Frost:
	"####" "#" 2
	DEMN Q 1 A_IceGuyDie
	Stop
    Ice:
	"####" "#" 2
	DEMN Q 1 A_IceGuyDie
	Stop
    Raise:
	DEMN ONMLKJIH 6
	TNT1 A 0 A_TakeInventory("DeadThing",1)
	Goto See
    }
}

ACTOR FDemon1Nin : FDemon1
{
    Tag "Chaos Serpent"
    Health 680
    Speed 16
    States
    {
    Pain.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	DEMN E 8 A_Pain
	Goto See
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	DEMN E 8 A_Pain
	Goto See
    Pain.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	DEMN E 8 A_Pain
	Goto See
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.HoldSpell:
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Pain.Slow:
	TNT1 A 0 A_PlaySound("dsparil/slow/hit")
	TNT1 A 0 A_GiveInventory("SlowedMonster",1)
	Goto See
    Pain.CE:
	TNT1 A 0 A_JumpIfInventory("DeadThing",1,1)
	Goto Pain
	TNT1 A 0 A_TakeFromTarget("RedeemedSoul",1)
	TNT1 A 0 A_PlaySound("weapons/redeemer/corpseexplode")
	TNT1 A 0 A_SpawnItemEx("CEGibSpawner",0,0,12,0,0,0,0,32,0)
	TNT1 A 0 A_Explode(random(520,560),128,0,0,128,0,0,"NoPuff","Player")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	Stop
    Pain.OKnight:
    Pain.NecroShot:
	TNT1 A 0 A_GiveToTarget("Health",random(40,60))
	Goto Pain
    Spawn:
	DEMN AA 10 A_Look
	Loop
    See:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"SeeSlow")
	DEMN ABCD 3 A_Chase
	Loop
    SeeSlow:
	DEMN ABCD 6 A_Chase
	Loop
    Melee:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MeleeSlow")
	DEMN E 6 A_FaceTarget
	DEMN F 8 A_FaceTarget
	DEMN G 6 A_CustomMeleeAttack(random[DemonAttack1](1,8)*2)
	Goto See
    MeleeSlow:
	DEMN E 12 A_FaceTarget
	DEMN F 16 A_FaceTarget
	DEMN G 12 A_CustomMeleeAttack(random[DemonAttack1](1,8)*2)
	Goto SeeSlow
    Missile:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MissileSlow")
	DEMN E 5 A_FaceTarget
	DEMN F 6 A_FaceTarget
	DEMN G 5 A_CustomMissile("Demon1FireballFast", 62, 0)
	Goto See
    MissileSlow:
	DEMN E 10 A_FaceTarget
	DEMN F 12 A_FaceTarget
	DEMN G 10 A_CustomMissile("Demon1FireballSlow", 62, 0)
	Goto SeeSlow
    Pain:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"PainSlow")
	DEMN E 4
	DEMN E 4 A_Pain
	Goto See
    PainSlow:
	DEMN E 8
	DEMN E 8 A_Pain
	Goto SeeSlow
    Death:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	DEMN HI 6
	DEMN J 6 A_Scream
	DEMN K 6 A_NoBlocking
	DEMN L 6
	DEMN MNO 6
	DEMN P -1
	Stop
    XDeath:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	DEMN H 6
	DEMN I 0 A_SpawnItemEx("Demon1Chunk1", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
				1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 90)
	DEMN I 0 A_SpawnItemEx("Demon1Chunk2", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
				1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
	DEMN I 0 A_SpawnItemEx("Demon1Chunk3", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
				1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
	DEMN I 0 A_SpawnItemEx("Demon1Chunk4", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
 				1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
	DEMN I 6 A_SpawnItemEx("Demon1Chunk5", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
				1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
	Goto Death+4
    Death.Redeemer:
	DEMN H 0 A_PlaySound("weapons/redeemer/soulredeemed")
	DEMN H 0 A_GiveToTarget("RedeemedSoul", 1)
	DEMN H 0 A_GiveToTarget("RestoreHealth",random(7,11))
	DEMN HHHHHHHHHHHHHHHH 0 A_SpawnItemEx("SoulFragment",frandom(-4,4),frandom(-4,4),frandom(8,32),frandom(0.6,1.4),frandom(0.6,1.4),frandom(0.8,2.0),random(0,360),128)
	Goto Death
    Death.Mojo:
	TNT1 A 0 A_GiveToTarget("Mojo",random(6,10))
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.MojoActive:
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.Defile:
	TNT1 A 0 A_SpawnItemEx("DefileSpawner",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.Frost:
	"####" "#" 2
	DEMN Q 1 A_IceGuyDie
	Stop
    Ice:
	"####" "#" 2
	DEMN Q 1 A_IceGuyDie
	Stop
    Raise:
	DEMN ONMLKJIH 6
	TNT1 A 0 A_TakeInventory("DeadThing",1)
	Goto See
    }
}

ACTOR Demon1Fireball : Demon1FX1 replaces Demon1FX1
{
    -ACTIVATEPCROSS
    Speed 18
    Damage 8
}

ACTOR Demon1FireballSlow : Demon1Fireball
{
    Speed 9
}

ACTOR Demon1FireballFast : Demon1Fireball
{
    Speed 27
}

//----------------------------------------------------------

ACTOR FSerpent : Serpent replaces Serpent
{
    Tag "Stalker"
    -NOBLOOD
    +DONTSQUASH
    +NEVERFAST
    +NOINFIGHTSPECIES
    PainChance "LifeDrain", 224
    PainChance "PGauntlets", 224
    PainChance "GManaDrain", 224
    PainChance "ManaDrain", 224
    PainChance "HellRain", 192
    PainChance "Charm", 256
    MeleeRange 72
    States
    {
    Pain.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Pain
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Pain
    Pain.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Pain
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.HoldSpell:
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Death.Redeemer:
	SSPT O 0 A_PlaySound("weapons/redeemer/soulredeemed")
	SSPT O 0 A_GiveToTarget("RedeemedSoul", 1)
	SSPT O 0 A_GiveToTarget("RestoreHealth",random(7,11))
	SSPT OOOOOOOOOOOOOOOO 0 A_SpawnItemEx("SoulFragment",frandom(-4,4),frandom(-4,4),frandom(8,32),frandom(0.6,1.4),frandom(0.6,1.4),frandom(0.8,2.0),random(0,360),128)
	Goto Death
    Death.Mojo:
	TNT1 A 0 A_GiveToTarget("Mojo",random(6,10))
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,32,0,0,0,0,32,0)
	Goto Death
    Death.MojoActive:
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.Defile:
	TNT1 A 0 A_SpawnItemEx("DefileSpawner",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.Frost:
	"####" "#" 2
	SSPT "[" 1 A_IceGuyDie
	Stop
    Ice:
	"####" "#" 2
	SSPT "[" 1 A_IceGuyDie
	Stop
    }
}

//----------------------------------------------------------

ACTOR FSerpentLeader : SerpentLeader replaces SerpentLeader
{
    Tag "Stalker"
    -NOBLOOD
    +DONTSQUASH
    +MISSILEMORE
    +NEVERFAST
    PainChance "LifeDrain", 224
    PainChance "PGauntlets", 224
    PainChance "GManaDrain", 224
    PainChance "ManaDrain", 224
    PainChance "HellRain", 192
    PainChance "Charm", 256
    States
    {
    Pain.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Pain
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Pain
    Pain.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Pain
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.HoldSpell:
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Pain.Slow:
	TNT1 A 0 A_PlaySound("dsparil/slow/hit")
	TNT1 A 0 A_GiveInventory("SlowedMonster",1)
	Goto See
    Melee:
	SSPT A 0 A_JumpIfTargetInLOS(1,360,0,1024,0)
	Goto See
	SSPT A 1 A_UnHideThing
	SSPT A 1 A_PlaySoundEx("SerpentBirth", "Voice")
	SSPT B 3 A_SetShootable
	SSPT C 3
	SSPT D 4 A_SerpentCheckForAttack
	Goto Dive
    Death.Redeemer:
	SSPT O 0 A_PlaySound("weapons/redeemer/soulredeemed")
	SSPT O 0 A_GiveToTarget("RedeemedSoul", 1)
	SSPT O 0 A_GiveToTarget("RestoreHealth",random(7,11))
	SSPT OOOOOOOOOOOOOOOO 0 A_SpawnItemEx("SoulFragment",frandom(-4,4),frandom(-4,4),frandom(8,32),frandom(0.6,1.4),frandom(0.6,1.4),frandom(0.8,2.0),random(0,360),128)
	Goto Death
    Death.Mojo:
	TNT1 A 0 A_GiveToTarget("Mojo",random(6,10))
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,32,0,0,0,0,32,0)
	Goto Death
    Death.MojoActive:
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.Defile:
	TNT1 A 0 A_SpawnItemEx("DefileSpawner",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.Frost:
	"####" "#" 2
	SSPT "[" 1 A_IceGuyDie
	Stop
    Ice:
	"####" "#" 2
	SSPT "[" 1 A_IceGuyDie
	Stop
    }
}

ACTOR SerpentShot : SerpentFX replaces SerpentFX
{
    -ACTIVATEPCROSS
}

ACTOR SerpentFXFast : SerpentFX
{
    Speed 24
}

//----------------------------------------------------------

ACTOR Disciple : Bishop replaces Bishop
{
    Tag "Disciple"
    Health 350
    +DONTSQUASH
    +NEVERFAST
    +NODAMAGETHRUST
    -NOBLOOD
    DropItem ManaSpawner 64
    DropItem TomeOfPower 2
    PainChance "LifeDrain", 224
    PainChance "PGauntlets", 224
    PainChance "GManaDrain", 224
    PainChance "ManaDrain", 224
    PainChance "HellRain", 192
    PainChance "Charm", 256
    PainChance "CE", 256
    DamageFactor "Sacred", 1.5
    DamageFactor "Holy", 1.3
    DamageFactor "Consecrate", 1.2
    DamageFactor "Hellrain", 1.2
    DamageFactor "Electric", 1.5
    Species "DSparil"
    Obituary "%o was cursed by a disciple"
    States
    {
    Pain.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	BISH C 6 A_Pain
	Goto See
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	BISH C 6 A_Pain
	Goto See
    Pain.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	BISH C 6 A_Pain
	Goto See
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.HoldSpell:
	"####" "#" 0 A_SetTranslucent(1,0)
	"####" "#" 0 A_ChangeFlag("GHOST",0)
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_ChangeFlag("FLOAT",0)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("FLOAT",1)
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Pain.CE:
	TNT1 A 0 A_JumpIfInventory("DeadThing",1,1)
	Goto Pain
	TNT1 A 0 A_TakeFromTarget("RedeemedSoul",1)
	TNT1 A 0 A_PlaySound("weapons/redeemer/corpseexplode")
	TNT1 A 0 A_SpawnItemEx("CEGibSpawner",0,0,12,0,0,0,0,32,0)
	TNT1 A 0 A_Explode(random(290,320),128,0,0,128,0,0,"NoPuff","Player")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	Stop
    Pain.OKnight:
    Pain.NecroShot:
	TNT1 A 0 A_GiveToTarget("Health",random(40,60))
	Goto Pain
    Spawn:
	BISH A 10 A_Look
	Loop
    See:
	BISH A 2 A_Chase
	BISH A 2 A_BishopChase
	BISH A 2 A_Chase
	BISH B 2 A_BishopChase
	BISH B 2 A_Chase
	BISH B 2 A_BishopChase
	BISH A 1 A_BishopDecide
	Loop
    Missile:
	TNT1 A 0 A_JumpIfTargetInLOS(1)
	Goto See
	TNT1 A 0 A_Jump(256,"Spiral","Spread")
    Spiral:
	BISH A 3 A_FaceTarget
	BISH DE 3 A_FaceTarget
	BISH F 3 A_BishopAttack
	BISH F 5 A_BishopAttack2
	Wait
    Spread:
	BISH A 0 A_ChangeFlag("GHOST",1)
	BISH A 0 A_SetTranslucent(0.9,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.8,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.7,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.6,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.5,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.4,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_ChangeFlag("SPECTRAL",1)
	BISH A 0 A_SetTranslucent(0.3,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.2,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.1,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.2,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.3,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_ChangeFlag("SPECTRAL",0)
	BISH A 0 A_SetTranslucent(0.4,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.5,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.6,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.7,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.8,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.9,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.8,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.7,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.6,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.5,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.4,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_ChangeFlag("SPECTRAL",1)
	BISH A 0 A_SetTranslucent(0.3,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.2,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.1,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.2,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.3,0)
	BISH A 0 A_ChangeFlag("SPECTRAL",0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.4,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.5,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.6,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.7,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.8,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.9,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.8,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.7,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.6,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.5,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.4,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_ChangeFlag("SPECTRAL",1)
	BISH A 0 A_SetTranslucent(0.3,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.2,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.1,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.2,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.3,0)
	BISH A 0 A_ChangeFlag("SPECTRAL",0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.4,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.5,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.6,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.7,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.8,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.9,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(1,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_ChangeFlag("GHOST",0)
	BISH D 3 A_FaceTarget
	BISH E 0 A_PlaySound("disciple/attack2")
	BISH EF 3 A_FaceTarget
	BISH F 0 A_CustomMissile("DiscipleFX2",32,0,5.625,1)
	BISH F 0 A_CustomMissile("DiscipleFX2",32,0,-5.625,1)
	BISH F 12 A_CustomMissile("DiscipleFX2",32,0,0,1)
	Goto See
    Pain:
	BISH C 0 A_ChangeFlag("GHOST",0)
	BISH C 0 A_SetTranslucent(1,0)
	BISH C 6 A_Pain
	BISH CCC 6 A_BishopPainBlur
	BISH C 0
	Goto See
    Death:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	BISH G 0 A_ChangeFlag("GHOST",0)
	BISH G 0 A_ChangeFlag("SPECTRAL",0)
	BISH G 0 A_SetTranslucent(1,0)
	BISH G 6
	BISH H 6 Bright A_Scream
	BISH I 5 Bright A_NoBlocking
	BISH J 5 BRIGHT A_Explode(random[BishopBoom](25,40))
	BISH K 5 Bright
	BISH LM 4 Bright
	BISH N 4 A_SpawnItemEx("BishopPuff",0,0,40,0,0,0.5)
	BISH O 4
	BISH P -1
	Stop
    Death.Redeemer:
	BISH G 0 A_PlaySound("weapons/redeemer/soulredeemed")
	BISH G 0 A_GiveToTarget("RedeemedSoul", 1)
	BISH G 0 A_GiveToTarget("RestoreHealth",random(7,11))
	BISH GGGGGGGGGGGGGG 0 A_SpawnItemEx("SoulFragment",frandom(-4,4),frandom(-4,4),frandom(8,32),frandom(0.6,1.4),frandom(0.6,1.4),frandom(0.8,2.0),random(0,360),128)
	Goto Death
    Death.Mojo:
	TNT1 A 0 A_GiveToTarget("Mojo",random(4,8))
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(4,8))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,48,0,0,0,0,32,0)
	Goto Death
    Death.MojoActive:
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.Defile:
	TNT1 A 0 A_SpawnItemEx("DefileSpawner",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.Frost:
	"####" "#" 2
	BISH X 1 A_IceGuyDie
	Stop
    Ice:
	"####" "#" 2
	BISH X 1 A_IceGuyDie
	Stop
    Raise:
	BISH ONML 4
	BISH KJI 5
	BISH HG 6
	TNT1 A 0 A_TakeInventory("DeadThing",1)
	Goto See
    }
}

ACTOR DiscipleNin : Disciple
{
    Tag "Disciple"
    Health 450
    States
    {
    Pain.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	BISH C 6 A_Pain
	Goto See
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	BISH C 6 A_Pain
	Goto See
    Pain.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	BISH C 6 A_Pain
	Goto See
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.HoldSpell:
	"####" "#" 0 A_SetTranslucent(1,0)
	"####" "#" 0 A_ChangeFlag("GHOST",0)
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_ChangeFlag("FLOAT",0)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("FLOAT",1)
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Pain.CE:
	TNT1 A 0 A_JumpIfInventory("DeadThing",1,1)
	Goto Pain
	TNT1 A 0 A_TakeFromTarget("RedeemedSoul",1)
	TNT1 A 0 A_PlaySound("weapons/redeemer/corpseexplode")
	TNT1 A 0 A_SpawnItemEx("CEGibSpawner",0,0,12,0,0,0,0,32,0)
	TNT1 A 0 A_Explode(random(290,320),128,0,0,128,0,0,"NoPuff","Player")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	Stop
    Pain.OKnight:
    Pain.NecroShot:
	TNT1 A 0 A_GiveToTarget("Health",random(40,60))
	Goto Pain
    Spawn:
	BISH A 10 A_Look
	Loop
    See:
	BISH A 1 A_Chase
	BISH A 2 A_BishopChase
	BISH A 1 A_Chase
	BISH B 2 A_BishopChase
	BISH B 1 A_Chase
	BISH B 2 A_BishopChase
	BISH A 1 A_BishopDecide
	Loop
    Missile:
	TNT1 A 0 A_JumpIfTargetInLOS(1)
	Goto See
	TNT1 A 0 A_Jump(256,"Spiral","Spread")
    Spiral:
	BISH A 3 A_FaceTarget
	BISH DE 3 A_FaceTarget
	BISH F 3 A_BishopAttack
	BISH F 5 A_BishopAttack2
	Wait
    Spread:
	BISH A 0 A_ChangeFlag("GHOST",1)
	BISH A 0 A_SetTranslucent(0.9,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.8,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.7,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.6,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.5,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.4,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_ChangeFlag("SPECTRAL",1)
	BISH A 0 A_SetTranslucent(0.3,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.2,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.1,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.2,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.3,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_ChangeFlag("SPECTRAL",0)
	BISH A 0 A_SetTranslucent(0.4,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.5,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.6,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.7,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.8,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.9,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.8,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.7,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.6,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.5,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.4,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_ChangeFlag("SPECTRAL",1)
	BISH A 0 A_SetTranslucent(0.3,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.2,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.1,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.2,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.3,0)
	BISH A 0 A_ChangeFlag("SPECTRAL",0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.4,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.5,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.6,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.7,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.8,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.9,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.8,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.7,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.6,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.5,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.4,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_ChangeFlag("SPECTRAL",1)
	BISH A 0 A_SetTranslucent(0.3,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.2,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.1,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.2,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.3,0)
	BISH A 0 A_ChangeFlag("SPECTRAL",0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.4,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.5,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.6,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.7,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.8,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(0.9,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_SetTranslucent(1,0)
	BISH A 1 A_FaceTarget
	BISH A 0 A_ChangeFlag("GHOST",0)
	BISH D 3 A_FaceTarget
	BISH E 0 A_PlaySound("disciple/attack2")
	BISH EF 3 A_FaceTarget
	BISH F 0 A_CustomMissile("DiscipleFX2Fast",32,0,5.625,1)
	BISH F 0 A_CustomMissile("DiscipleFX2Fast",32,0,-5.625,1)
	BISH F 12 A_CustomMissile("DiscipleFX2Fast",32,0,0,1)
	Goto See
    Pain:
	BISH C 0 A_ChangeFlag("GHOST",0)
	BISH C 0 A_SetTranslucent(1,0)
	BISH C 6 A_Pain
	BISH CCC 6 A_BishopPainBlur
	BISH C 0
	Goto See
    Death:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	BISH G 0 A_ChangeFlag("GHOST",0)
	BISH G 0 A_ChangeFlag("SPECTRAL",0)
	BISH G 0 A_SetTranslucent(1,0)
	BISH G 6
	BISH H 6 Bright A_Scream
	BISH I 5 Bright A_NoBlocking
	BISH J 5 BRIGHT A_Explode(random[BishopBoom](25,40))
	BISH K 5 Bright
	BISH LM 4 Bright
	BISH N 4 A_SpawnItemEx("BishopPuff",0,0,40,0,0,0.5)
	BISH O 4
	BISH P -1
	Stop
    Death.Redeemer:
	BISH G 0 A_PlaySound("weapons/redeemer/soulredeemed")
	BISH G 0 A_GiveToTarget("RedeemedSoul", 1)
	BISH G 0 A_GiveToTarget("RestoreHealth",random(7,11))
	BISH GGGGGGGGGGGGGG 0 A_SpawnItemEx("SoulFragment",frandom(-4,4),frandom(-4,4),frandom(8,32),frandom(0.6,1.4),frandom(0.6,1.4),frandom(0.8,2.0),random(0,360),128)
	Goto Death
    Death.Mojo:
	TNT1 A 0 A_GiveToTarget("Mojo",random(4,8))
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(4,8))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,48,0,0,0,0,32,0)
	Goto Death
    Death.MojoActive:
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.Defile:
	TNT1 A 0 A_SpawnItemEx("DefileSpawner",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.Frost:
	"####" "#" 2
	BISH X 1 A_IceGuyDie
	Stop
    Ice:
	"####" "#" 2
	BISH X 1 A_IceGuyDie
	Stop
    Raise:
	BISH ONML 4
	BISH KJI 5
	BISH HG 6
	TNT1 A 0 A_TakeInventory("DeadThing",1)
	Goto See
    }
}

ACTOR DiscipleFX1 : BishopFX replaces BishopFX
{
    -ACTIVATEPCROSS
    -STRIFEDAMAGE
}

ACTOR DiscipleFX2 : WizardFX1 replaces WizardFX1
{
    Speed 22
    Damage 4
    States
    {
    Spawn:
	FX11 AAABBB 2 Bright A_SpawnItemEx("DiscipleFXTrail",0,0,0,0,0,0,0,32,0)
	Loop
    }
}

ACTOR DiscipleFXTrail
{
    RenderStyle Add
    Alpha 0.75
    +NOINTERACTION
    States
    {
    Spawn:
	FX11 AAABBBB 2 A_FadeOut
	Loop
    }
}

ACTOR DiscipleFX1Fast : DiscipleFX1
{
    Speed 15
}

ACTOR DiscipleFX2Fast : DiscipleFX2
{
    Speed 33
}

ACTOR DiscipleF1 : Disciple
{
    Tag "Disciple"
    +NOTIMEFREEZE
    +FRIENDLY
    +NOICEDEATH
    +DONTDRAIN
    -NOBLOOD
    DropItem "None"
    DamageFactor "Redeemer", 0
    States
    {
    Spawn:
	BISH A 0
	BISH A 0 ACS_Execute(809,0,0,0,0)
	BISH A 2 A_Look
	BISH A 0 A_GiveInventory("DiscipleSummonCheck",1)
	BISH A 0 A_JumpIfInventory("DiscipleSummonCheck",350,"Death")
	Goto Spawn+2
    See:
	BISH A 2 A_Chase
	BISH A 0 A_GiveInventory("DiscipleSummonCheck",1)
	BISH A 0 A_JumpIfInventory("DiscipleSummonCheck",350,"Death")
	BISH A 2 A_BishopChase
	BISH A 0 A_GiveInventory("DiscipleSummonCheck",1)
	BISH A 0 A_JumpIfInventory("DiscipleSummonCheck",350,"Death")
	BISH A 2 A_Chase
	BISH A 0 A_GiveInventory("DiscipleSummonCheck",1)
	BISH A 0 A_JumpIfInventory("DiscipleSummonCheck",350,"Death")
	BISH B 2 A_BishopChase
	BISH A 0 A_GiveInventory("DiscipleSummonCheck",1)
	BISH A 0 A_JumpIfInventory("DiscipleSummonCheck",350,"Death")
	BISH B 2 A_Chase
	BISH A 0 A_GiveInventory("DiscipleSummonCheck",1)
	BISH A 0 A_JumpIfInventory("DiscipleSummonCheck",350,"Death")
	BISH B 2 A_BishopChase
	BISH A 0 A_GiveInventory("DiscipleSummonCheck",1)
	BISH A 0 A_JumpIfInventory("DiscipleSummonCheck",350,"Death")
	BISH A 1 A_BishopDecide
	Loop
    Missile:
	TNT1 A 0 A_JumpIfTargetInLOS(1)
	Goto See
	BISH A 0 A_GiveInventory("DiscipleSummonCheck",4)
	BISH A 0 A_JumpIfInventory("DiscipleSummonCheck",350,"Death")
	TNT1 A 0 A_Jump(256,"Spiral","Spread")
    Pain.LifeDrain:
    Pain.GManaDrain:
    Pain.ManaDrain:
    Pain:
	BISH C 0 A_GiveInventory("DiscipleSummonCheck",2)
	BISH C 0 A_JumpIfInventory("DiscipleSummonCheck",350,"Death")
	BISH C 0 A_ChangeFlag("GHOST",0)
	BISH C 0 A_SetTranslucent(1,0)
	BISH C 6 A_Pain
	BISH CCC 6 A_BishopPainBlur
	BISH C 0
	Goto See
    Pain.Madness:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",0)
	TNT1 A 0 A_ClearTarget
	Goto Spawn
    Death.LifeDrain:
    Death.GManaDrain:
    Death.ManaDrain:
    Death:
	BISH G 0 A_Die
	BISH G 0 ACS_Execute(811,0,0,0,0)
	BISH G 0 A_ChangeFlag("GHOST",0)
	BISH G 0 A_SetTranslucent(1,0)
	BISH G 6
	BISH H 6 Bright A_Scream
	BISH I 5 Bright A_NoBlocking
	BISH J 5 BRIGHT A_Explode(random[BishopBoom](25,40))
	BISH K 5 Bright
	BISH LM 4 Bright
	BISH N 4 A_SpawnItemEx("BishopPuff",0,0,40,0,0,0.5)
	BISH O 4
	BISH P 105
	BISH P 1 A_FadeOut(0.025)
	Wait
    Death.Frost:
	"####" "#" 2
	BISH G 0
	Goto Death
    Ice:
	"####" "#" 2
	BISH G 0
	Goto Death
    Raise:
	Stop
    }
}

ACTOR DiscipleF2 : DiscipleF1
{
    Tag "Disciple"
    States
    {
    Spawn:
	BISH A 0
	BISH A 0 ACS_Execute(810,0,0,0,0)
	BISH A 2 A_Look
	BISH A 0 A_GiveInventory("DiscipleSummonCheck",1)
	BISH A 0 A_JumpIfInventory("DiscipleSummonCheck",350,"Death")
	Goto Spawn+2
    }
}

ACTOR DiscipleSummonCheck : Inventory
{
    Inventory.Amount 1
    Inventory.MaxAmount 1000
}

//----------------------------------------------------------

ACTOR FWraith : Wraith replaces Wraith
{
    Tag "Reiver"
    Health 200
    +DONTSQUASH
    +NEVERFAST
    +NOINFIGHTSPECIES
    PainChance "LifeDrain", 224
    PainChance "PGauntlets", 224
    PainChance "GManaDrain", 224
    PainChance "ManaDrain", 224
    PainChance "HellRain", 192
    PainChance "Charm", 256
    DamageFactor "Sacred", 1.75
    DamageFactor "Holy", 1.5
    DamageFactor "Consecrate", 1.3
    DamageFactor "Hellrain", 1.3
    DamageFactor "Electric", 1.5
    DamageFactor "Iron", 1.1
    States
    {
    Pain.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	WRTH A 2
	WRTH H 6 A_Pain
	Goto See
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	WRTH A 2
	WRTH H 6 A_Pain
	Goto See
    Pain.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	WRTH A 2
	WRTH H 6 A_Pain
	Goto See
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.HoldSpell:
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_ChangeFlag("FLOAT",0)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("FLOAT",1)
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Pain.Slow:
	TNT1 A 0 A_PlaySound("dsparil/slow/hit")
	TNT1 A 0 A_GiveInventory("SlowedMonster",1)
	Goto See
    See:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"SeeSlow")
	WRTH ABCD 4 A_WraithChase
	Loop
    SeeSlow:
	WRTH ABCD 8 A_WraithChase
	Loop
    Melee:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MeleeSlow")
	WRTH E 6 A_FaceTarget
	WRTH F 6 A_WraithFX3
	WRTH G 6 A_WraithMelee
	Goto See
    MeleeSlow:
	WRTH E 12 A_FaceTarget
	WRTH F 12 A_WraithFX3
	WRTH G 12 A_WraithMelee
	Goto SeeSlow
    Missile:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MissileSlow")
	WRTH E 6 A_FaceTarget
	WRTH F 6
	WRTH G 6 A_CustomMissile("WraithMissile", 32, 0)
	Goto See
    MissileSlow:
	WRTH E 12 A_FaceTarget
	WRTH F 12
	WRTH G 12 A_CustomMissile("WraithMissileSlow", 32, 0)
	Goto SeeSlow
    Pain:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"PainSlow")
	WRTH A 2
	WRTH H 6 A_Pain
	Goto See
    PainSlow:
	WRTH A 4
	WRTH H 12 A_Pain
	Goto SeeSlow
    Death.Redeemer:
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	WRTH J 0 A_PlaySound("weapons/redeemer/soulredeemed")
	WRTH J 0 A_GiveToTarget("RedeemedSoul", 1)
	WRTH J 0 A_GiveToTarget("RestoreHealth",random(7,11))
	WRTH JJJJJJJJJJJJJJJJ 0 A_SpawnItemEx("SoulFragment",frandom(-4,4),frandom(-4,4),frandom(8,32),frandom(0.6,1.4),frandom(0.6,1.4),frandom(0.8,2.0),random(0,360),128)
	WRTH I 4
	WRTH J 4 A_Scream
	WRTH KL 4
	WRTH M 4 A_NoBlocking
	WRTH N 4
	WRTH O 4
	WRTH PQ 5
	WRTH R -1
	Stop
    Death.Mojo:
	TNT1 A 0 A_GiveToTarget("Mojo",random(6,10))
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,32,0,0,0,0,32,0)
	Goto Death
    Death.MojoActive:
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.Defile:
	TNT1 A 0 A_SpawnItemEx("DefileSpawner",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death:
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	TNT1 A 0 A_JumpIf(3 == ACS_ExecuteWithResult(803,0,0,0,0),13)
	TNT1 A 0 A_JumpIf(4 == ACS_ExecuteWithResult(803,0,0,0,0),13)
	TNT1 A 0 A_JumpIf(5 == ACS_ExecuteWithResult(803,0,0,0,0),13)
	WRTH I 4
	WRTH J 4 A_Scream
	WRTH KL 4
	WRTH M 4 A_NoBlocking
	WRTH N 4
	WRTH O 4
	WRTH PQ 5
	WRTH R -1
	Stop
    Revive:
	TNT1 A 0 A_Jump(64,3)
	Goto Death+4
	TNT1 A 0 A_Jump(102,2)
	Goto Death+4
	TNT1 A 0 A_Jump(170,1)
	Goto Death+4
	WRTH I 4
	WRTH J 4 A_Scream
	WRTH KL 4
	WRTH M 4 A_NoBlocking
	WRTH N 4
	WRTH O 4
	WRTH PQ 5
	WRTH R 105
	WRTH R 0 A_PlaySound("wraith/revive")
	WRTH R 0 A_SpawnItemEx("WraithRevive",0,0,0,0,0,0,0,0,0)
	WRTH R -1
	Stop
    XDeath:
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	TNT1 A 0 A_JumpIf(3 == ACS_ExecuteWithResult(803,0,0,0,0),11)
	TNT1 A 0 A_JumpIf(4 == ACS_ExecuteWithResult(803,0,0,0,0),11)
	TNT1 A 0 A_JumpIf(5 == ACS_ExecuteWithResult(803,0,0,0,0),11)
	WRT2 A 5
	WRT2 B 5 A_Scream
	WRT2 CD 5
	WRT2 E 5 A_NoBlocking
	WRT2 F 5
	WRT2 G 5
	WRT2 H -1
	Stop
    XRevive:
	TNT1 A 0 A_Jump(64,3)
	Goto XDeath+4
	TNT1 A 0 A_Jump(102,2)
	Goto XDeath+4
	TNT1 A 0 A_Jump(170,1)
	Goto XDeath+4
	WRT2 A 5
	WRT2 B 5 A_Scream
	WRT2 CD 5
	WRT2 E 5 A_NoBlocking
	WRT2 F 5
	WRT2 G 5
	WRT2 H 105
	WRT2 H 0 A_PlaySound("wraith/revive")
	WRT2 H 0 A_SpawnItemEx("WraithReviveX",0,0,0,0,0,0,0,0,0)
	WRT2 H -1
	Stop
    Death.Frost:
	"####" "#" 2
	WRT2 I 0 A_JumpIf(4 <= (ACS_ExecuteWithResult(803,0,0,0,0)),"Death")
	WRT2 I 1 A_IceGuyDie
	Stop
    Ice:
	"####" "#" 2
	WRT2 I 0 A_JumpIf(4 <= (ACS_ExecuteWithResult(803,0,0,0,0)),"Death")
	WRT2 I 1 A_IceGuyDie
	Stop
    }
}

//----------------------------------------------------------

ACTOR FWraithBuried : WraithBuried replaces WraithBuried
{
    Tag "Reiver"
    +DONTSQUASH
    +NEVERFAST
    +NOINFIGHTSPECIES
    PainChance "LifeDrain", 224
    PainChance "PGauntlets", 224
    PainChance "GManaDrain", 224
    PainChance "ManaDrain", 224
    PainChance "HellRain", 192
    PainChance "Charm", 256
    DamageFactor "Sacred", 1.75
    DamageFactor "Holy", 1.5
    DamageFactor "Consecrate", 1.3
    DamageFactor "Hellrain", 1.3
    DamageFactor "Electric", 1.5
    DamageFactor "Iron", 1.1
    States
    {
    Look:
	WRTH AB 15 A_Look
	Loop
    See2:
	WRTH A 0 A_JumpIfInventory("PowerHalfProtection",1,2)
	WRTH A 0 A_Jump(256,2)
	WRTH A 0 A_GiveInventory("MalisonGiver1",1)
	WRTH ABCD 4 A_WraithChase
	Goto See2+3
    Chase:
	Goto See2+3
    Melee:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MeleeSlow")
	WRTH E 6 A_FaceTarget
	WRTH F 6 A_WraithFX3
	WRTH G 6 A_WraithMelee
	Goto See+3
    Missile:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MissileSlow")
	WRTH E 6 A_FaceTarget
	WRTH F 6
	WRTH G 6 A_CustomMissile("WraithMissile", 32, 0)
	Goto See+3
    Pain:
	WRTH A 2
	WRTH H 6 A_Pain
	Goto See2+3
    Pain.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Pain
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Pain
    Pain.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Pain
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See2+3
    Pain.HoldSpell:
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_ChangeFlag("FLOAT",0)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("FLOAT",1)
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See2+3
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See2+3
    Pain.Slow:
	TNT1 A 0 A_PlaySound("dsparil/slow/hit")
	TNT1 A 0 A_GiveInventory("SlowedMonster",1)
	Goto See2+3
    Death:
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	TNT1 A 0 A_JumpIf(3 == ACS_ExecuteWithResult(803,0,0,0,0),13)
	TNT1 A 0 A_JumpIf(4 == ACS_ExecuteWithResult(803,0,0,0,0),13)
	TNT1 A 0 A_JumpIf(5 == ACS_ExecuteWithResult(803,0,0,0,0),13)
	WRTH I 4
	WRTH J 4 A_Scream
	WRTH KL 4
	WRTH M 4 A_NoBlocking
	WRTH N 4
	WRTH O 4
	WRTH PQ 5
	WRTH R -1
	Stop
    Revive:
	TNT1 A 0 A_Jump(64,3)
	Goto Death+4
	TNT1 A 0 A_Jump(102,2)
	Goto Death+4
	TNT1 A 0 A_Jump(170,1)
	Goto Death+4
	WRTH I 4
	WRTH J 4 A_Scream
	WRTH KL 4
	WRTH M 4 A_NoBlocking
	WRTH N 4
	WRTH O 4
	WRTH PQ 5
	WRTH R 105
	WRTH R 0 A_PlaySound("wraith/revive")
	WRTH R 0 A_SpawnItemEx("WraithRevive",0,0,0,0,0,0,0,0,0)
	WRTH R -1
	Stop
    XDeath:
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	TNT1 A 0 A_JumpIf(3 == ACS_ExecuteWithResult(803,0,0,0,0),11)
	TNT1 A 0 A_JumpIf(4 == ACS_ExecuteWithResult(803,0,0,0,0),11)
	TNT1 A 0 A_JumpIf(5 == ACS_ExecuteWithResult(803,0,0,0,0),11)
	WRT2 A 5
	WRT2 B 5 A_Scream
	WRT2 CD 5
	WRT2 E 5 A_NoBlocking
	WRT2 F 5
	WRT2 G 5
	WRT2 H -1
	Stop
    XRevive:
	TNT1 A 0 A_Jump(64,2)
	Goto XDeath+4
	TNT1 A 0 A_Jump(102,2)
	Goto XDeath+4
	TNT1 A 0 A_Jump(170,1)
	Goto XDeath+4
	WRT2 A 5
	WRT2 B 5 A_Scream
	WRT2 CD 5
	WRT2 E 5 A_NoBlocking
	WRT2 F 5
	WRT2 G 5
	WRT2 H 105
	WRT2 H 0 A_PlaySound("wraith/revive")
	WRT2 H 0 A_SpawnItemEx("WraithReviveX",0,0,32,0,0,0,0,0,0)
	WRT2 H -1
	Stop
    Death.Redeemer:
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	WRTH J 0 A_PlaySound("weapons/redeemer/soulredeemed")
	WRTH J 0 A_GiveToTarget("RedeemedSoul", 1)
	WRTH J 0 A_GiveToTarget("RestoreHealth",random(7,11))
	WRTH JJJJJJJJJJJJJJJJ 0 A_SpawnItemEx("SoulFragment",frandom(-4,4),frandom(-4,4),frandom(8,32),frandom(0.6,1.4),frandom(0.6,1.4),frandom(0.8,2.0),random(0,360),128)
	WRTH I 4
	WRTH J 4 A_Scream
	WRTH KL 4
	WRTH M 4 A_NoBlocking
	WRTH N 4
	WRTH O 4
	WRTH PQ 5
	WRTH R -1
	Stop
    Death.Mojo:
	TNT1 A 0 A_GiveToTarget("Mojo",random(6,10))
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,32,0,0,0,0,32,0)
	Goto Death
    Death.MojoActive:
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.Defile:
	TNT1 A 0 A_SpawnItemEx("DefileSpawner",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.Frost:
	"####" "#" 2
	WRT2 I 0 A_JumpIf(4 <= (ACS_ExecuteWithResult(803,0,0,0,0)),"Death")
	WRT2 I 1 A_IceGuyDie
	Stop
    Ice:
	"####" "#" 2
	WRT2 I 0 A_JumpIf(4 <= (ACS_ExecuteWithResult(803,0,0,0,0)),"Death")
	WRT2 I 1 A_IceGuyDie
	Stop
    }
}

ACTOR WraithMissile : WraithFX1 replaces WraithFX1
{
    -ACTIVATEPCROSS
    Speed 18
}

ACTOR WraithMissileSlow : WraithMissile
{
    Speed 9
    States
    {
    Spawn:
	WRBL A 6 Bright
	WRBL B 6 Bright A_WraithFX2
	WRBL C 6 Bright
	Loop
    }
}

ACTOR WraithMissileFast : WraithMissile
{
    Speed 27
}

ACTOR WraithRisen : Inventory
{
    Inventory.Amount 1
    Inventory.MaxAmount 1
}

ACTOR WraithRevive
{
    +NOGRAVITY
    Height 55
    Radius 20
    Alpha 0.75
    RenderStyle Add
    States
    {
    Spawn:
	WRTH RQPONMLKJI 5
//	WRTH A 0
//	WRTH A 3 A_SetTranslucent(0.19,1)
//	WRTH A 3 A_SetTranslucent(0.33,1)
//	WRTH A 3 A_SetTranslucent(0.47,1)
//	WRTH A 3 A_SetTranslucent(0.61,1)
//	WRTH A 3 A_SetTranslucent(0.75,1)
	WRTH A 0 A_SpawnItemEx("WraithGhost",0,0,0,0,0,0,0,32,0)
	Stop
    }
}

ACTOR WraithReviveX
{
    +NOGRAVITY
    Height 55
    Radius 20
    Alpha 0.75
    RenderStyle Add
    States
    {
    Spawn:
	WRT2 HGFEDCBA 5
	WRTH HA 5
//	WRTH A 0
//	WRTH A 3 A_SetTranslucent(0.19,1)
//	WRTH A 3 A_SetTranslucent(0.33,1)
//	WRTH A 3 A_SetTranslucent(0.47,1)
//	WRTH A 3 A_SetTranslucent(0.61,1)
//	WRTH A 3 A_SetTranslucent(0.75,1)
	WRTH A 0 A_SpawnItemEx("WraithGhost",0,0,0,0,0,0,0,32,0)
	Stop
    }
}

ACTOR WraithNin : FWraith
{
    Tag "Reiver"
    Health 240
    +NOICEDEATH
    States
    {
    Pain.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	WRTH A 2
	WRTH H 6 A_Pain
	Goto See
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	WRTH A 2
	WRTH H 6 A_Pain
	Goto See
    Pain.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	WRTH A 2
	WRTH H 6 A_Pain
	Goto See
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.HoldSpell:
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_ChangeFlag("FLOAT",0)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("FLOAT",1)
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Pain.Slow:
	TNT1 A 0 A_PlaySound("dsparil/slow/hit")
	TNT1 A 0 A_GiveInventory("SlowedMonster",1)
	Goto See
    See:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"SeeSlow")
	WRTH ABCD 3 A_WraithChase
	Loop
    SeeSlow:
	WRTH ABCD 6 A_WraithChase
	Loop
    Melee:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MeleeSlow")
	WRTH E 6 A_FaceTarget
	WRTH F 6 A_WraithFX3
	WRTH G 6 A_WraithMelee
	Goto See
    MeleeSlow:
	WRTH E 12 A_FaceTarget
	WRTH F 12 A_WraithFX3
	WRTH G 12 A_WraithMelee
	Goto SeeSlow
    Missile:
	WRTH E 6 A_FaceTarget
	WRTH F 6
	WRTH G 6 A_CustomMissile("WraithMissileFast", 32, 0)
	Goto See
    MissileSlow:
	WRTH E 12 A_FaceTarget
	WRTH F 12
	WRTH G 12 A_CustomMissile("WraithMissileSlow", 32, 0)
	Goto SeeSlow
    Pain:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"PainSlow")
	WRTH A 2
	WRTH H 6 A_Pain
	Goto See
    PainSlow:
	WRTH A 4
	WRTH H 12 A_Pain
	Goto SeeSlow
    Death.Redeemer:
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	WRTH J 0 A_PlaySound("weapons/redeemer/soulredeemed")
	WRTH J 0 A_GiveToTarget("RedeemedSoul", 1)
	WRTH J 0 A_GiveToTarget("RestoreHealth",random(7,11))
	WRTH JJJJJJJJJJJJJJJJ 0 A_SpawnItemEx("SoulFragment",frandom(-4,4),frandom(-4,4),frandom(8,32),frandom(0.6,1.4),frandom(0.6,1.4),frandom(0.8,2.0),random(0,360),128)
	WRTH I 4
	WRTH J 4 A_Scream
	WRTH KL 4
	WRTH M 4 A_NoBlocking
	WRTH N 4
	WRTH O 4
	WRTH PQ 5
	WRTH R -1
	Stop
    Death.Mojo:
	TNT1 A 0 A_GiveToTarget("Mojo",random(6,10))
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,32,0,0,0,0,32,0)
	Goto Death
    Death.MojoActive:
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.Defile:
	TNT1 A 0 A_SpawnItemEx("DefileSpawner",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death:
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	TNT1 A 0 A_JumpIf(3 == ACS_ExecuteWithResult(803,0,0,0,0),13)
	TNT1 A 0 A_JumpIf(4 == ACS_ExecuteWithResult(803,0,0,0,0),13)
	TNT1 A 0 A_JumpIf(5 == ACS_ExecuteWithResult(803,0,0,0,0),13)
	WRTH I 4
	WRTH J 4 A_Scream
	WRTH KL 4
	WRTH M 4 A_NoBlocking
	WRTH N 4
	WRTH O 4
	WRTH PQ 5
	WRTH R -1
	Stop
    Revive:
	TNT1 A 0 A_Jump(64,3)
	Goto Death+4
	TNT1 A 0 A_Jump(102,2)
	Goto Death+4
	TNT1 A 0 A_Jump(170,1)
	Goto Death+4
	WRTH I 4
	WRTH J 4 A_Scream
	WRTH KL 4
	WRTH M 4 A_NoBlocking
	WRTH N 4
	WRTH O 4
	WRTH PQ 5
	WRTH R 105
	WRTH R 0 A_PlaySound("wraith/revive")
	WRTH R 0 A_SpawnItemEx("WraithRevive",0,0,0,0,0,0,0,0,0)
	WRTH R -1
	Stop
    XDeath:
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	TNT1 A 0 A_JumpIf(3 == ACS_ExecuteWithResult(803,0,0,0,0),11)
	TNT1 A 0 A_JumpIf(4 == ACS_ExecuteWithResult(803,0,0,0,0),11)
	TNT1 A 0 A_JumpIf(5 == ACS_ExecuteWithResult(803,0,0,0,0),11)
	WRT2 A 5
	WRT2 B 5 A_Scream
	WRT2 CD 5
	WRT2 E 5 A_NoBlocking
	WRT2 F 5
	WRT2 G 5
	WRT2 H -1
	Stop
    XRevive:
	TNT1 A 0 A_Jump(64,3)
	Goto XDeath+4
	TNT1 A 0 A_Jump(102,2)
	Goto XDeath+4
	TNT1 A 0 A_Jump(170,1)
	Goto XDeath+4
	WRT2 A 5
	WRT2 B 5 A_Scream
	WRT2 CD 5
	WRT2 E 5 A_NoBlocking
	WRT2 F 5
	WRT2 G 5
	WRT2 H 105
	WRT2 H 0 A_PlaySound("wraith/revive")
	WRT2 H 0 A_SpawnItemEx("WraithReviveX",0,0,0,0,0,0,0,0,0)
	WRT2 H -1
	Stop
    Death.Frost:
	TNT1 A 0
	Goto Death
    Ice:
	TNT1 A 0
	Goto Death
    }
}

ACTOR WraithBuriedNin : FWraithBuried
{
    Tag "Reiver"
    Health 240
    +NOICEDEATH
    States
    {
    Look:
	WRTH AB 15 A_Look
	Loop
    See2:
	WRTH A 0 A_JumpIfInventory("PowerHalfProtection",1,2)
	WRTH A 0 A_Jump(256,2)
	WRTH A 0 A_GiveInventory("MalisonGiver1",1)
	WRTH ABCD 4 A_WraithChase
	Goto See2+3
    Chase:
	Goto See2+3
    Melee:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MeleeSlow")
	WRTH E 6 A_FaceTarget
	WRTH F 6 A_WraithFX3
	WRTH G 6 A_WraithMelee
	Goto See+3
    Missile:
	WRTH E 6 A_FaceTarget
	WRTH F 6
	WRTH G 6 A_CustomMissile("WraithMissileFast", 32, 0)
	Goto See2+3
    Pain:
	WRTH A 2
	WRTH H 6 A_Pain
	Goto See2+3
    Pain.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Pain
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Pain
    Pain.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Pain
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See2+3
    Pain.HoldSpell:
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_ChangeFlag("FLOAT",0)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("FLOAT",1)
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See2+3
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See2+3
    Pain.Slow:
	TNT1 A 0 A_PlaySound("dsparil/slow/hit")
	TNT1 A 0 A_GiveInventory("SlowedMonster",1)
	Goto See2+3
    Death:
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	TNT1 A 0 A_JumpIf(3 == ACS_ExecuteWithResult(803,0,0,0,0),13)
	TNT1 A 0 A_JumpIf(4 == ACS_ExecuteWithResult(803,0,0,0,0),13)
	TNT1 A 0 A_JumpIf(5 == ACS_ExecuteWithResult(803,0,0,0,0),13)
	WRTH I 4
	WRTH J 4 A_Scream
	WRTH KL 4
	WRTH M 4 A_NoBlocking
	WRTH N 4
	WRTH O 4
	WRTH PQ 5
	WRTH R -1
	Stop
    Revive:
	TNT1 A 0 A_Jump(64,3)
	Goto Death+4
	TNT1 A 0 A_Jump(102,2)
	Goto Death+4
	TNT1 A 0 A_Jump(170,1)
	Goto Death+4
	WRTH I 4
	WRTH J 4 A_Scream
	WRTH KL 4
	WRTH M 4 A_NoBlocking
	WRTH N 4
	WRTH O 4
	WRTH PQ 5
	WRTH R 105
	WRTH R 0 A_PlaySound("wraith/revive")
	WRTH R 0 A_SpawnItemEx("WraithRevive",0,0,0,0,0,0,0,0,0)
	WRTH R -1
	Stop
    XDeath:
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	TNT1 A 0 A_JumpIf(3 == ACS_ExecuteWithResult(803,0,0,0,0),11)
	TNT1 A 0 A_JumpIf(4 == ACS_ExecuteWithResult(803,0,0,0,0),11)
	TNT1 A 0 A_JumpIf(5 == ACS_ExecuteWithResult(803,0,0,0,0),11)
	WRT2 A 5
	WRT2 B 5 A_Scream
	WRT2 CD 5
	WRT2 E 5 A_NoBlocking
	WRT2 F 5
	WRT2 G 5
	WRT2 H -1
	Stop
    XRevive:
	TNT1 A 0 A_Jump(64,2)
	Goto XDeath+4
	TNT1 A 0 A_Jump(102,2)
	Goto XDeath+4
	TNT1 A 0 A_Jump(170,1)
	Goto XDeath+4
	WRT2 A 5
	WRT2 B 5 A_Scream
	WRT2 CD 5
	WRT2 E 5 A_NoBlocking
	WRT2 F 5
	WRT2 G 5
	WRT2 H 105
	WRT2 H 0 A_PlaySound("wraith/revive")
	WRT2 H 0 A_SpawnItemEx("WraithReviveX",0,0,32,0,0,0,0,0,0)
	WRT2 H -1
	Stop
    Death.Redeemer:
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	WRTH J 0 A_PlaySound("weapons/redeemer/soulredeemed")
	WRTH J 0 A_GiveToTarget("RedeemedSoul", 1)
	WRTH J 0 A_GiveToTarget("RestoreHealth",random(7,11))
	WRTH JJJJJJJJJJJJJJJJ 0 A_SpawnItemEx("SoulFragment",frandom(-4,4),frandom(-4,4),frandom(8,32),frandom(0.6,1.4),frandom(0.6,1.4),frandom(0.8,2.0),random(0,360),128)
	WRTH I 4
	WRTH J 4 A_Scream
	WRTH KL 4
	WRTH M 4 A_NoBlocking
	WRTH N 4
	WRTH O 4
	WRTH PQ 5
	WRTH R -1
	Stop
    Death.Mojo:
	TNT1 A 0 A_GiveToTarget("Mojo",random(6,10))
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,32,0,0,0,0,32,0)
	Goto Death
    Death.MojoActive:
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.Defile:
	TNT1 A 0 A_SpawnItemEx("DefileSpawner",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.Frost:
	TNT1 A 0
	Goto Death
    Ice:
	TNT1 A 0
	Goto Death
    }
}

//----------------------------------------------------------

ACTOR Wendigo : IceGuy replaces IceGuy
{
    Tag "Wendigo"
    Radius 26
    Height 88
    Health 480
    Scale 1.25
    +DONTSQUASH
    +MISSILEMORE
    +NEVERFAST
    DropItem IcePotion 16
    PainChance "LifeDrain", 224
    PainChance "PGauntlets", 224
    PainChance "GManaDrain", 224
    PainChance "ManaDrain", 224
    PainChance "HellRain", 128
    PainChance "Charm", 256
    DamageFactor "Ice", 0
    DamageFactor "Frost", 0
    DamageFactor "Fire", 1.2
    States
    {
    Pain:
	ICEY A 4 A_Pain
	Goto See
    Pain.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	ICEY A 4 A_Pain
	Goto See
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	ICEY A 4 A_Pain
	Goto See
    Pain.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	ICEY A 4 A_Pain
	Goto See
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.HoldSpell:
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Pain.Slow:
	TNT1 A 0 A_PlaySound("dsparil/slow/hit")
	TNT1 A 0 A_GiveInventory("SlowedMonster",1)
	Goto See
    Spawn:
	ICEY A 10 A_IceGuyLook
	Loop
    See:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"SeeSlow")
	ICEY A 4 A_Chase
	ICEY B 4 A_IceGuyChase
	ICEY CD 4 A_Chase
	Loop
    SeeSlow:
	ICEY A 8 A_Chase
	ICEY B 8 A_IceGuyChase
	ICEY CD 8 A_Chase
	Loop
    Missile:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MissileSlow")
	ICEY EF 3 A_FaceTarget
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MissileSlow")
	ICEY I 0 Bright A_PlaySound("IceGuyAttack")
	ICEY I 5 Bright A_CustomMissile("WendigoMissile",62,20,0,1)
	ICEY I 3 Bright A_FaceTarget
	ICEY J 0 Bright A_PlaySound("IceGuyAttack")
	ICEY J 5 Bright A_CustomMissile("WendigoMissile",62,-20,0,1)
	ICEY J 3 Bright A_FaceTarget
        ICEY J 0 Bright A_CPosReFire
	Goto Missile+3
	ICEY I 0 Bright A_PlaySound("IceGuyAttack")
	ICEY I 5 Bright A_CustomMissile("WendigoMissile",62,20,0,1)
	ICEY I 3 Bright A_FaceTarget
	ICEY J 0 Bright A_PlaySound("IceGuyAttack")
	ICEY J 5 Bright A_CustomMissile("WendigoMissile",62,-20,0,1)
	ICEY J 3 Bright A_FaceTarget
	ICEY I 0 Bright A_PlaySound("IceGuyAttack")
	ICEY I 5 Bright A_CustomMissile("WendigoMissile",62,20,0,1)
	ICEY I 3 Bright A_FaceTarget
	ICEY J 0 Bright A_PlaySound("IceGuyAttack")
	ICEY J 5 Bright A_CustomMissile("WendigoMissile",62,-20,0,1)
	ICEY J 3 Bright A_FaceTarget
	ICEY I 0 Bright A_PlaySound("IceGuyAttack")
	ICEY I 5 Bright A_CustomMissile("WendigoMissile",62,20,0,1)
	ICEY I 3 Bright A_FaceTarget
	ICEY J 0 Bright A_PlaySound("IceGuyAttack")
	ICEY J 5 Bright A_CustomMissile("WendigoMissile",62,-20,0,1)
	ICEY J 4 A_FaceTarget
	Goto See
    MissileSlow:
	ICEY EF 6 A_FaceTarget
	ICEY G 0 Bright A_PlaySound("IceGuyAttack")
	ICEY G 0 Bright A_CustomMissile("WendigoMissileSlow",62,-20,0,1)
	ICEY G 16 Bright A_CustomMissile("WendigoMissileSlow",62,20,0,1)
	ICEY F 6 A_FaceTarget
	ICEY G 0 Bright A_PlaySound("IceGuyAttack")
	ICEY G 0 Bright A_CustomMissile("WendigoMissileSlow",62,-20,0,1)
	ICEY G 16 Bright A_CustomMissile("WendigoMissileSlow",62,20,0,1)
	ICEY F 6 A_FaceTarget
	ICEY G 0 Bright A_PlaySound("IceGuyAttack")
	ICEY G 0 Bright A_CustomMissile("WendigoMissileSlow",62,-20,0,1)
	ICEY G 16 Bright A_CustomMissile("WendigoMissileSlow",62,20,0,1)
	ICEY F 4 A_FaceTarget
        ICEY J 0 Bright A_CPosReFire
	Goto SeeSlow
    Pain:
	ICEY H 4 A_Pain
	Goto See
    Death.Redeemer:
	ICEY A 0 A_PlaySound("weapons/redeemer/soulredeemed")
	ICEY A 0 A_GiveToTarget("RedeemedSoul", 1)
	ICEY A 0 A_GiveToTarget("RestoreHealth",random(7,11))
	ICEY AAAAAAAAAAAAAAAA 0 A_SpawnItemEx("SoulFragment",frandom(-4,4),frandom(-4,4),frandom(8,32),frandom(0.6,1.4),frandom(0.6,1.4),frandom(0.8,2.0),random(0,360),128)
	Goto Death
    Death.Mojo:
	TNT1 A 0 A_GiveToTarget("Mojo",random(6,10))
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.MojoActive:
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.Defile:
	TNT1 A 0 A_SpawnItemEx("DefileSpawner",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death:
	"####" "#" 2
	ICEY A 1 A_IceGuyDie
	Stop
    }
}

ACTOR WendigoNin : Wendigo
{
    Tag "Wendigo"
    Health 600
    States
    {
    Pain:
	ICEY A 4 A_Pain
	Goto See
    Pain.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	ICEY A 4 A_Pain
	Goto See
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	ICEY A 4 A_Pain
	Goto See
    Pain.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	ICEY A 4 A_Pain
	Goto See
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.HoldSpell:
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Pain.Slow:
	TNT1 A 0 A_PlaySound("dsparil/slow/hit")
	TNT1 A 0 A_GiveInventory("SlowedMonster",1)
	Goto See
    Spawn:
	ICEY A 10 A_IceGuyLook
	Loop
    See:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"SeeSlow")
	ICEY A 3 A_Chase
	ICEY B 3 A_IceGuyChase
	ICEY CD 3 A_Chase
	Loop
    SeeSlow:
	ICEY A 6 A_Chase
	ICEY B 6 A_IceGuyChase
	ICEY CD 6 A_Chase
	Loop
    Missile:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MissileSlow")
	ICEY EF 3 A_FaceTarget
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MissileSlow")
	ICEY I 0 Bright A_PlaySound("IceGuyAttack")
	ICEY I 3 Bright A_CustomMissile("WendigoMissileFast",62,20,0,1)
	ICEY I 2 Bright A_FaceTarget
	ICEY J 0 Bright A_PlaySound("IceGuyAttack")
	ICEY J 3 Bright A_CustomMissile("WendigoMissileFast",62,-20,0,1)
	ICEY J 2 Bright A_FaceTarget
        ICEY J 0 Bright A_CPosReFire
	Goto Missile+3
	ICEY I 0 Bright A_PlaySound("IceGuyAttack")
	ICEY I 3 Bright A_CustomMissile("WendigoMissileFast",62,20,0,1)
	ICEY I 2 Bright A_FaceTarget
	ICEY J 0 Bright A_PlaySound("IceGuyAttack")
	ICEY J 3 Bright A_CustomMissile("WendigoMissileFast",62,-20,0,1)
	ICEY J 2 Bright A_FaceTarget
	ICEY I 0 Bright A_PlaySound("IceGuyAttack")
	ICEY I 3 Bright A_CustomMissile("WendigoMissileFast",62,20,0,1)
	ICEY I 2 Bright A_FaceTarget
	ICEY J 0 Bright A_PlaySound("IceGuyAttack")
	ICEY J 3 Bright A_CustomMissile("WendigoMissileFast",62,-20,0,1)
	ICEY J 2 Bright A_FaceTarget
	ICEY I 0 Bright A_PlaySound("IceGuyAttack")
	ICEY I 3 Bright A_CustomMissile("WendigoMissileFast",62,20,0,1)
	ICEY I 2 Bright A_FaceTarget
	ICEY J 0 Bright A_PlaySound("IceGuyAttack")
	ICEY J 3 Bright A_CustomMissile("WendigoMissileFast",62,-20,0,1)
	ICEY J 3 A_FaceTarget
	Goto See
    MissileSlow:
	ICEY EF 6 A_FaceTarget
	ICEY G 0 Bright A_PlaySound("IceGuyAttack")
	ICEY G 0 Bright A_CustomMissile("WendigoMissileSlow",62,-20,0,1)
	ICEY G 10 Bright A_CustomMissile("WendigoMissileSlow",62,20,0,1)
	ICEY F 6 A_FaceTarget
	ICEY G 0 Bright A_PlaySound("IceGuyAttack")
	ICEY G 0 Bright A_CustomMissile("WendigoMissileSlow",62,-20,0,1)
	ICEY G 10 Bright A_CustomMissile("WendigoMissileSlow",62,20,0,1)
	ICEY F 6 A_FaceTarget
	ICEY G 0 Bright A_PlaySound("IceGuyAttack")
	ICEY G 0 Bright A_CustomMissile("WendigoMissileSlow",62,-20,0,1)
	ICEY G 10 Bright A_CustomMissile("WendigoMissileSlow",62,20,0,1)
	ICEY F 4 A_FaceTarget
        ICEY J 0 Bright A_CPosReFire
	Goto SeeSlow
    Pain:
	ICEY H 4 A_Pain
	Goto See
    Death.Redeemer:
	ICEY A 0 A_PlaySound("weapons/redeemer/soulredeemed")
	ICEY A 0 A_GiveToTarget("RedeemedSoul", 1)
	ICEY A 0 A_GiveToTarget("RestoreHealth",random(7,11))
	ICEY AAAAAAAAAAAAAAAA 0 A_SpawnItemEx("SoulFragment",frandom(-4,4),frandom(-4,4),frandom(8,32),frandom(0.6,1.4),frandom(0.6,1.4),frandom(0.8,2.0),random(0,360),128)
	Goto Death
    Death.Mojo:
	TNT1 A 0 A_GiveToTarget("Mojo",random(6,10))
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.MojoActive:
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.Defile:
	TNT1 A 0 A_SpawnItemEx("DefileSpawner",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death:
	"####" "#" 2
	ICEY A 1 A_IceGuyDie
	Stop
    }
}

ACTOR WendigoMissile : IceGuyFX replaces IceGuyFX
{
    -ACTIVATEPCROSS
    Scale 1.25
    Speed 20
    Damage 3
    States
    {
    Spawn:
	ICPR AABBCC 2 Bright A_SpawnItemEx("WendigoMissilePuff",0,0,2)
	Loop
    }
}

ACTOR WendigoFX2 : IceGuyFX2 replaces IceGuyFX2
{
    -ACTIVATEPCROSS
    +NOGRAVITY
    States
    {
    Spawn:
	ICPR NNNOOOPPP 1 A_FadeOut(0.05)
	Loop
    }
}

ACTOR WendigoMissileSlow : WendigoMissile
{
    Speed 10
    States
    {
    Spawn:
	ICPR AABBCC 4 Bright A_SpawnItemEx("WendigoMissilePuffSlow",0,0,2)
	Loop
    }
}

ACTOR WendigoMissileFast : WendigoMissile
{
    Speed 30
}

ACTOR WendigoMissilePuff : IceFXPuff
{
    Scale 1.25
    States
    {
    Spawn:
	ICPR IJK 3
	ICPR LM 2
	Stop
    }
}

ACTOR WendigoMissilePuffSlow : WendigoMissilePuff
{
    States
    {
    Spawn:
	ICPR IJK 6
	ICPR LM 4
	Stop
    }
}

//----------------------------------------------------------

ACTOR DeathWyvern : Dragon replaces Dragon
{
    Tag "Death Wyvern"
    +NOTARGET
//    +NORADIUSDMG
    +NOPAIN
    +NEVERFAST
    +THRUSPECIES
    Health 1800
    SpawnID 159
    Scale 1.5
    Speed 12
    PainChance 0
    Radius 32
    Height 72
    States
    {
    Missile:
	DRAG E 8 A_CustomMissile("WyvernFireball",48,0,frandom(-3,3))
	Goto See+3
    }
}

ACTOR DeathWyvernNin : DeathWyvern
{
    Tag "Death Wyvern"
    Health 2400
    Speed 15
}

ACTOR WyvernFireball : DragonFireball replaces DragonFireball
{
    -ACTIVATEPCROSS
    Scale 1.5
    Damage 10
    Speed 24
    States
    {
    Spawn:
	TNT1 A 0
	TNT1 A 0 A_Jump(127,3)
	TNT1 A 0 ThrustThingZ(0,frandom(0,3),0,1)
	TNT1 A 0 A_Jump(256,2)
	TNT1 A 0 ThrustThingZ(0,frandom(0,3),1,1)
	DRFX ABCDEF 4 Bright
	Goto Spawn+5
    Death:
	DRFX G 4 Bright
	DRFX HIJKL 4 Bright
	TNT1 A 5 Bright A_SpawnItemEx("WyvernFireballExplosion",random(-20,20),random(-20,20),random(-20,20),0,0,0,0,40,0)
	TNT1 A 5 Bright A_SpawnItemEx("WyvernFireballExplosion",random(-20,20),random(-20,20),random(-20,20),0,0,0,0,40,0)
	TNT1 A 0 Bright A_Jump(127,6)
	TNT1 A 5 Bright A_SpawnItemEx("WyvernFireballExplosion",random(-20,20),random(-20,20),random(-20,20),0,0,0,0,40,0)
	TNT1 A 0 Bright A_Jump(127,4)
	TNT1 A 5 Bright A_SpawnItemEx("WyvernFireballExplosion",random(-20,20),random(-20,20),random(-20,20),0,0,0,0,40,0)
	TNT1 A 0 Bright A_Jump(127,2)
	TNT1 A 5 Bright A_SpawnItemEx("WyvernFireballExplosion",random(-20,20),random(-20,20),random(-20,20),0,0,0,0,40,0)
	TNT1 A 0
	Stop
    }
}

ACTOR WyvernFireballFast : WyvernFireball
{
    Speed 36
}

ACTOR WyvernFireballExplosion
{
    PROJECTILE
    -ACTIVATEPCROSS
    +NOGRAVITY
    +FORCERADIUSDMG
    +NODAMAGETHRUST
    DamageType "Fire"
    Scale 1.5
    Speed 0
    Radius 8
    Height 8
    DeathSound "DragonFireballExplode"
    RenderStyle Add
    States
    {
    Spawn:
	CFCF Q 4 Bright
	CFCF R 3 Bright
	CFCF S 4 Bright A_Scream
	CFCF T 3 Bright A_Explode(128,160,0)
	CFCF U 4 Bright
	CFCF V 3 Bright
	CFCF W 4 Bright
	CFCF X 3 Bright
	CFCF Y 4 Bright
	CFCF Z 3 Bright
	Stop
    }
}


//----------------------------------------------------------

ACTOR EnemyFighter : FighterBoss replaces FighterBoss
{
    Tag "Fighter"
    Health 666
    SpawnID 165
//    +DONTHARMSPECIES
    +NODROPOFF
    +NOINFIGHTING
    +NEVERFAST
    +NODAMAGETHRUST
    Obituary "%o was put down by a fighter"
    DropItem ArmorSpawner 20
    DropItem ManaSpawner 64
    DropItem GoldCoin 2
    PainChance "LifeDrain", 224
    PainChance "PGauntlets", 224
    PainChance "GManaDrain", 224
    PainChance "ManaDrain", 224
    PainChance "HellRain", 192
    PainChance "Charm", 256
    PainChance "CE", 256
    DamageFactor "EFighter", 0
    Species "Enemy"
    States
    {
    Melee:
    Missile:
	PLAY E 8 A_FaceTarget
	PLAY E 0 A_FaceTarget
	PLAY F 0 Bright A_PlaySound("weapons/blastershoot")
	PLAY F 2 Bright A_CustomBulletAttack(5.625, 1.5, 1, 2*random(6,10), "EFBlasterPuff", 0, CBAF_NORANDOM)
	PLAY F 4
	PLAY F 0 Bright A_PlaySound("weapons/blastershoot")
	PLAY F 2 Bright A_CustomBulletAttack(5.625, 1.5, 1, 2*random(6,10), "EFBlasterPuff", 0, CBAF_NORANDOM)
	PLAY F 4
	PLAY F 0 A_CPosReFire
	Goto Missile+1
    Pain.LifeDrain:
	PLAY G 4 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	PLAY G 4 A_Pain
	Goto See
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	PLAY G 4 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	PLAY G 4 A_Pain
	Goto See
    Pain.ManaDrain:
	PLAY G 4 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	PLAY G 4 A_Pain
	Goto See
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.HoldSpell:
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.CE:
	TNT1 A 0 A_JumpIfInventory("DeadThing",1,1)
	Goto Pain
	TNT1 A 0 A_TakeFromTarget("RedeemedSoul",1)
	TNT1 A 0 A_PlaySound("weapons/redeemer/corpseexplode")
	TNT1 A 0 A_SpawnItemEx("CEGibSpawner",0,0,12,0,0,0,0,32,0)
	TNT1 A 0 A_Explode(random(600,640),128,0,0,128,0,0,"NoPuff","Player")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	Stop
    Pain.OKnight:
    Pain.NecroShot:
	TNT1 A 0 A_GiveToTarget("Health",random(40,60))
	Goto Pain
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Death:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	PLAY H 6
	PLAY I 6 A_Scream
	PLAY JK 6
	PLAY L 6 A_NoBlocking
	PLAY M 6
	PLAY N -1
	Stop
    XDeath:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	PLAY O 5 A_Scream
	PLAY P 0 A_NoBlocking
	PLAY P 5 A_SpawnItemEx("BloodyEFighterSkull",0,0,48,frandom(0.4,1.2),frandom(0.4,1.2),frandom(1.2,2.0),random(0,360),32,0)
	PLAY R 5
	PLAY STUV 5
	PLAY W -1
	Stop
    Death.Redeemer:
	PLAY H 0 A_PlaySound("weapons/redeemer/soulredeemed")
	PLAY H 0 A_GiveToTarget("RedeemedSoul", 1)
	PLAY H 0 A_GiveToTarget("RestoreHealth",random(7,11))
	PLAY HHHHHHHHHHHHHHHH 0 A_SpawnItemEx("SoulFragment",frandom(-4,4),frandom(-4,4),frandom(8,32),frandom(0.6,1.4),frandom(0.6,1.4),frandom(0.8,2.0),random(0,360),128)
	Goto Death
    Death.Mojo:
	TNT1 A 0 A_GiveToTarget("Mojo",random(6,10))
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,48,0,0,0,0,32,0)
	Goto Death
    Death.MojoActive:
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.Defile:
	TNT1 A 0 A_SpawnItemEx("DefileSpawner",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.Hammer:
    Death.Torment:
    Death.Bloodscourge:
	Goto Burn
    Death.Frost:
	"####" "#" 2
	PLAY X 1 A_IceGuyDie
	Stop
    Ice:
	"####" "#" 2
	PLAY X 1 A_IceGuyDie
	Stop
    Raise:
	PLAY MLKJIH 6
	TNT1 A 0 A_TakeInventory("DeadThing",1)
	Goto See
    }
}

ACTOR EnemyFighterNin : EnemyFighter
{
    Tag "Fighter"
    Health 780
    States
    {
    See:
	PLAY ABCD 3 A_FastChase
	Loop
    Melee:
    Missile:
	PLAY E 0 A_Jump(96,"Nin")
	PLAY E 8 A_FaceTarget
	PLAY E 0 A_FaceTarget
	PLAY F 0 Bright A_PlaySound("weapons/blastershoot")
	PLAY F 2 Bright A_CustomBulletAttack(5.625,1.5,1,2*random(8,12),"EFBlasterPuff",0,CBAF_NORANDOM)
	PLAY F 4
	PLAY F 0 Bright A_PlaySound("weapons/blastershoot")
	PLAY F 2 Bright A_CustomBulletAttack(5.625,1.5,1,2*random(8,12),"EFBlasterPuff",0,CBAF_NORANDOM)
	PLAY F 4
	PLAY F 1 A_CPosReFire
	Goto Missile+2
    Nin:
	PLAY E 8 A_FaceTarget
	PLAY F 0 Bright A_PlaySound("weapons/blastershoot")
	PLAY F 2 Bright A_CustomBulletAttack(6,6,10,2*(random(3,5)),"EFBlasterPuff",0,CBAF_NORANDOM)
	PLAY F 3
	Goto See
    Pain.LifeDrain:
	PLAY G 4 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	PLAY G 4 A_Pain
	Goto See
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	PLAY G 4 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	PLAY G 4 A_Pain
	Goto See
    Pain.ManaDrain:
	PLAY G 4 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	PLAY G 4 A_Pain
	Goto See
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.HoldSpell:
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.CE:
	TNT1 A 0 A_JumpIfInventory("DeadThing",1,1)
	Goto Pain
	TNT1 A 0 A_TakeFromTarget("RedeemedSoul",1)
	TNT1 A 0 A_PlaySound("weapons/redeemer/corpseexplode")
	TNT1 A 0 A_SpawnItemEx("CEGibSpawner",0,0,12,0,0,0,0,32,0)
	TNT1 A 0 A_Explode(random(600,640),128,0,0,128,0,0,"NoPuff","Player")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	Stop
    Pain.OKnight:
    Pain.NecroShot:
	TNT1 A 0 A_GiveToTarget("Health",random(40,60))
	Goto Pain
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Death:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	PLAY H 6
	PLAY I 6 A_Scream
	PLAY JK 6
	PLAY L 6 A_NoBlocking
	PLAY M 6
	PLAY N -1
	Stop
    XDeath:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	PLAY O 5 A_Scream
	PLAY P 0 A_NoBlocking
	PLAY P 5 A_SpawnItemEx("BloodyEFighterSkull",0,0,48,frandom(0.4,1.2),frandom(0.4,1.2),frandom(1.2,2.0),random(0,360),32,0)
	PLAY R 5
	PLAY STUV 5
	PLAY W -1
	Stop
    Death.Redeemer:
	PLAY H 0 A_PlaySound("weapons/redeemer/soulredeemed")
	PLAY H 0 A_GiveToTarget("RedeemedSoul", 1)
	PLAY H 0 A_GiveToTarget("RestoreHealth",random(7,11))
	PLAY HHHHHHHHHHHHHHHH 0 A_SpawnItemEx("SoulFragment",frandom(-4,4),frandom(-4,4),frandom(8,32),frandom(0.6,1.4),frandom(0.6,1.4),frandom(0.8,2.0),random(0,360),128)
	Goto Death
    Death.Mojo:
	TNT1 A 0 A_GiveToTarget("Mojo",random(6,10))
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,48,0,0,0,0,32,0)
	Goto Death
    Death.MojoActive:
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.Defile:
	TNT1 A 0 A_SpawnItemEx("DefileSpawner",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.Hammer:
	Goto Burn
    Death.Frost:
	"####" "#" 2
	PLAY X 1 A_IceGuyDie
	Stop
    Ice:
	"####" "#" 2
	PLAY X 1 A_IceGuyDie
	Stop
    Raise:
	PLAY MLKJIH 6
	TNT1 A 0 A_TakeInventory("DeadThing",1)
	Goto See
    }
}

ACTOR EFBlasterPuff
{
    +NOBLOCKMAP
    +NOGRAVITY
    +PUFFONACTORS
    +NOEXTREMEDEATH
    DamageType "EFighter"
    RenderStyle Add
    SeeSound "weapons/blasterhit"
    States
{
    Crash:
	FX17 ABCDE 4 Bright
	Stop
    Spawn:
	FX17 FG 3 Bright
	FX17 HIJKL 4 Bright
    Stop
    }
}

//----------------------------------------------------------

ACTOR EnemyCleric : ClericBoss replaces ClericBoss
{
    Tag "Cleric"
    Health 666
    SpawnID 166
//    +DONTHARMSPECIES
    +NODROPOFF
    +NOINFIGHTING
    +NEVERFAST
    +NODAMAGETHRUST
    PainChance "LifeDrain", 224
    PainChance "PGauntlets", 224
    PainChance "GManaDrain", 224
    PainChance "ManaDrain", 224
    PainChance "HellRain", 192
    PainChance "Charm", 256
    PainChance "CE", 256
    DamageFactor "Sacred", 0.25
    DamageFactor "Holy", 0.5
    DamageFactor "Consecrate", 0.7
    DamageFactor "ECleric", 0
    Species "Enemy"
    Obituary "%o was smitten by a cleric"
    DropItem ArmorSpawner 20
    DropItem ManaSpawner 64
    DropItem GoldCoin 2
    States
    {
    Melee:
    Missile:
	CLER EF 8 A_FaceTarget
	CLER F 0 A_FaceTarget
	CLER G 0 A_JumpIfCloser(500,41)
	CLER G 0 A_JumpIfCloser(1000,33)
	CLER G 0 A_JumpIfCloser(1500,25)
	CLER G 0 A_JumpIfCloser(2000,17)
	CLER G 0 A_JumpIfCloser(2500,9)
	CLER G 0 A_JumpIfCloser(3000,1)
        Goto See
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 3 Bright A_CustomMissile("ECIronBall",32,0,frandom(-1,1),32,11.5)
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 3 Bright A_CustomMissile("ECIronBall",32,0,frandom(-1,1),32,11.5)
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 3 Bright A_CustomMissile("ECIronBall",32,0,frandom(-1,1),32,11.5)
	CLER G 4 A_CPosReFire
	Goto Missile+2
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 3 Bright A_CustomMissile("ECIronBall",32,0,frandom(-1.8,1.8),32,10)
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 3 Bright A_CustomMissile("ECIronBall",32,0,frandom(-1.8,1.8),32,10)
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 3 Bright A_CustomMissile("ECIronBall",32,0,frandom(-1.8,1.8),32,10)
	CLER G 4 A_CPosReFire
	Goto Missile+2
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 3 Bright A_CustomMissile("ECIronBall",32,0,frandom(-2.6,2.6),32,8.5)
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 3 Bright A_CustomMissile("ECIronBall",32,0,frandom(-2.6,2.6),32,8.5)
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 3 Bright A_CustomMissile("ECIronBall",32,0,frandom(-2.6,2.6),32,8.5)
	CLER G 4 A_CPosReFire
	Goto Missile+2
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 3 Bright A_CustomMissile("ECIronBall",32,0,frandom(-3.4,3.4),32,7)
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 3 Bright A_CustomMissile("ECIronBall",32,0,frandom(-3.4,3.4),32,7)
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 3 Bright A_CustomMissile("ECIronBall",32,0,frandom(-3.4,3.4),32,7)
	CLER G 4 A_CPosReFire
	Goto Missile+2
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 3 Bright A_CustomMissile("ECIronBall",32,0,frandom(-4.2,4.2),32,5.5)
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 3 Bright A_CustomMissile("ECIronBall",32,0,frandom(-4.2,4.2),32,5.5)
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 3 Bright A_CustomMissile("ECIronBall",32,0,frandom(-4.2,4.2),32,5.5)
	CLER G 4 A_CPosReFire
	Goto Missile+2
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 3 Bright A_CustomMissile("ECIronBall",32,0,frandom(-5,5),32,4)
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 3 Bright A_CustomMissile("ECIronBall",32,0,frandom(-5,5),32,4)
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 3 Bright A_CustomMissile("ECIronBall",32,0,frandom(-5,5),32,4)
	CLER G 4 A_CPosReFire
	Goto Missile+2
    Pain.LifeDrain:
	CLER H 4 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	CLER H 4 A_Pain
	Goto See
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	CLER H 4 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	CLER H 4 A_Pain
	Goto See
    Pain.ManaDrain:
	CLER H 4 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	CLER H 4 A_Pain
	Goto See
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.HoldSpell:
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Pain.CE:
	TNT1 A 0 A_JumpIfInventory("DeadThing",1,1)
	Goto Pain
	TNT1 A 0 A_TakeFromTarget("RedeemedSoul",1)
	TNT1 A 0 A_PlaySound("weapons/redeemer/corpseexplode")
	TNT1 A 0 A_SpawnItemEx("CEGibSpawner",0,0,12,0,0,0,0,32,0)
	TNT1 A 0 A_Explode(random(600,640),128,0,0,128,0,0,"NoPuff","Player")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	Stop
    Pain.OKnight:
    Pain.NecroShot:
	TNT1 A 0 A_GiveToTarget("Health",random(40,60))
	Goto Pain
    Death:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	CLER I 6
	CLER K 6 A_Scream
	CLER LL 6
	CLER M 6 A_NoBlocking
	CLER NOP 6
	CLER Q -1
	Stop
    XDeath:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	CLER R 5 A_Scream
	CLER S 0 A_NoBlocking
	CLER S 5 A_SpawnItemEx("BloodyEClericSkull",0,0,48,frandom(0.4,1.2),frandom(0.4,1.2),frandom(1.2,2.0),random(0,360),32,0)
	CLER T 5
	CLER UVWXYZ 5
	CLER "[" -1
	Stop
    Death.Redeemer:
	CLER I 0 A_PlaySound("weapons/redeemer/soulredeemed")
	CLER I 0 A_GiveToTarget("RedeemedSoul", 1)
	CLER I 0 A_GiveToTarget("RestoreHealth",random(7,11))
	CLER IIIIIIIIIIIIIIII 0 A_SpawnItemEx("SoulFragment",frandom(-4,4),frandom(-4,4),frandom(8,32),frandom(0.6,1.4),frandom(0.6,1.4),frandom(0.8,2.0),random(0,360),128)
	Goto Death
    Death.Mojo:
	TNT1 A 0 A_GiveToTarget("Mojo",random(6,10))
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,48,0,0,0,0,32,0)
	Goto Death
    Death.MojoActive:
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.Defile:
	TNT1 A 0 A_SpawnItemEx("DefileSpawner",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.Hammer:
    Death.Torment:
    Death.Bloodscourge:
	Goto Burn
    Death.Frost:
	"####" "#" 2
	CLER "\" 1 A_IceGuyDie
	Stop
    Ice:
	"####" "#" 2
	CLER "\" 1 A_IceGuyDie
	Stop
    Raise:
	CLER PONMLKJI 6
	TNT1 A 0 A_TakeInventory("DeadThing",1)
	Goto See
    }
}

ACTOR EnemyClericNin : EnemyCleric
{
    Tag "Cleric"
    Health 780
    States
    {
    See:
	CLER ABCD 3 A_FastChase
	Loop
    Melee:
    Missile:
	CLER E 0 A_Jump(112,"Nin")
	CLER EF 8 A_FaceTarget
	CLER F 0 A_FaceTarget
	CLER G 0 A_JumpIfCloser(500,41)
	CLER G 0 A_JumpIfCloser(1000,33)
	CLER G 0 A_JumpIfCloser(1500,25)
	CLER G 0 A_JumpIfCloser(2000,17)
	CLER G 0 A_JumpIfCloser(2500,9)
	CLER G 0 A_JumpIfCloser(3000,1)
        Goto See
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 3 Bright A_CustomMissile("ECIronBallFast",32,0,frandom(-1,1),32,7)
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 3 Bright A_CustomMissile("ECIronBallFast",32,0,frandom(-1,1),32,7)
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 3 Bright A_CustomMissile("ECIronBallFast",32,0,frandom(-1,1),32,7)
	CLER G 4 A_CPosReFire
	Goto Missile+3
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 3 Bright A_CustomMissile("ECIronBallFast",32,0,frandom(-1.8,1.8),32,6)
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 3 Bright A_CustomMissile("ECIronBallFast",32,0,frandom(-1.8,1.8),32,6)
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 3 Bright A_CustomMissile("ECIronBallFast",32,0,frandom(-1.8,1.8),32,6)
	CLER G 4 A_CPosReFire
	Goto Missile+3
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 3 Bright A_CustomMissile("ECIronBallFast",32,0,frandom(-2.6,2.6),32,5)
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 3 Bright A_CustomMissile("ECIronBallFast",32,0,frandom(-2.6,2.6),32,5)
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 3 Bright A_CustomMissile("ECIronBallFast",32,0,frandom(-2.6,2.6),32,5)
	CLER G 4 A_CPosReFire
	Goto Missile+3
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 3 Bright A_CustomMissile("ECIronBallFast",32,0,frandom(-3.4,2.4),32,4)
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 3 Bright A_CustomMissile("ECIronBallFast",32,0,frandom(-3.4,3.4),32,4)
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 3 Bright A_CustomMissile("ECIronBallFast",32,0,frandom(-3.4,3.4),32,4)
	CLER G 4 A_CPosReFire
	Goto Missile+3
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 3 Bright A_CustomMissile("ECIronBallFast",32,0,frandom(-4.2,4.2),32,3)
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 3 Bright A_CustomMissile("ECIronBallFast",32,0,frandom(-4.2,4.2),32,3)
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 3 Bright A_CustomMissile("ECIronBallFast",32,0,frandom(-4.2,4.2),32,3)
	CLER G 4 A_CPosReFire
	Goto Missile+3
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 3 Bright A_CustomMissile("ECIronBallFast",32,0,frandom(-5,5),32,2)
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 3 Bright A_CustomMissile("ECIronBallFast",32,0,frandom(-5,5),32,2)
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 3 Bright A_CustomMissile("ECIronBallFast",32,0,frandom(-5,5),32,2)
	CLER G 4 A_CPosReFire
	Goto Missile+3
    Nin:
	CLER EF 8 A_FaceTarget
	CLER G 0 A_JumpIfCloser(500,21)
	CLER G 0 A_JumpIfCloser(1000,17)
	CLER G 0 A_JumpIfCloser(1500,13)
	CLER G 0 A_JumpIfCloser(2000,9)
	CLER G 0 A_JumpIfCloser(2500,5)
	CLER G 0 A_JumpIfCloser(3000,1)
        Goto See
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 4 Bright A_CustomMissile("ECIronRipper",32,0,frandom(-1,1),32,7)
	CLER G 4 A_SentinelReFire
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 4 Bright A_CustomMissile("ECIronRipper",32,0,frandom(-1,1),32,7)
	CLER G 4 A_CPosReFire
	Goto Nin+2
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 4 Bright A_CustomMissile("ECIronRipper",32,0,frandom(-1.8,1.8),32,6)
	CLER G 4 A_SentinelReFire
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 4 Bright A_CustomMissile("ECIronRipper",32,0,frandom(-1.8,1.8),32,6)
	CLER G 4 A_CPosReFire
	Goto Nin+2
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 4 Bright A_CustomMissile("ECIronRipper",32,0,frandom(-2.6,2.6),32,5)
	CLER G 4 A_SentinelReFire
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 4 Bright A_CustomMissile("ECIronRipper",32,0,frandom(-2.6,2.6),32,5)
	CLER G 4 A_CPosReFire
	Goto Nin+2
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 4 Bright A_CustomMissile("ECIronRipper",32,0,frandom(-3.4,3.4),32,4)
	CLER G 4 A_SentinelReFire
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 4 Bright A_CustomMissile("ECIronRipper",32,0,frandom(-3.4,3.4),32,4)
	CLER G 4 A_CPosReFire
	Goto Nin+2
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 4 Bright A_CustomMissile("ECIronRipper",32,0,frandom(-4.2,4.2),32,3)
	CLER G 4 A_SentinelReFire
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 4 Bright A_CustomMissile("ECIronRipper",32,0,frandom(-4.2,4.2),32,3)
	CLER G 4 A_CPosReFire
	Goto Nin+2
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 4 Bright A_CustomMissile("ECIronRipper",32,0,frandom(-5,5),32,2)
	CLER G 4 A_SentinelReFire
	CLER G 0 A_PlaySound("weapons/ironward/fire")
	CLER G 4 Bright A_CustomMissile("ECIronRipper",32,0,frandom(-5,5),32,2)
	CLER G 4 A_CPosReFire
	Goto Nin+2
    Pain.LifeDrain:
	CLER H 4 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	CLER H 4 A_Pain
	Goto See
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	CLER H 4 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	CLER H 4 A_Pain
	Goto See
    Pain.ManaDrain:
	CLER H 4 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	CLER H 4 A_Pain
	Goto See
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.HoldSpell:
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Pain.CE:
	TNT1 A 0 A_JumpIfInventory("DeadThing",1,1)
	Goto Pain
	TNT1 A 0 A_TakeFromTarget("RedeemedSoul",1)
	TNT1 A 0 A_PlaySound("weapons/redeemer/corpseexplode")
	TNT1 A 0 A_SpawnItemEx("CEGibSpawner",0,0,12,0,0,0,0,32,0)
	TNT1 A 0 A_Explode(random(600,640),128,0,0,128,0,0,"NoPuff","Player")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	Stop
    Pain.OKnight:
    Pain.NecroShot:
	TNT1 A 0 A_GiveToTarget("Health",random(40,60))
	Goto Pain
    Death:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	CLER I 6
	CLER K 6 A_Scream
	CLER LL 6
	CLER M 6 A_NoBlocking
	CLER NOP 6
	CLER Q -1
	Stop
    XDeath:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	CLER R 5 A_Scream
	CLER S 0 A_NoBlocking
	CLER S 5 A_SpawnItemEx("BloodyEClericSkull",0,0,48,frandom(0.4,1.2),frandom(0.4,1.2),frandom(1.2,2.0),random(0,360),32,0)
	CLER T 5
	CLER UVWXYZ 5
	CLER "[" -1
	Stop
    Death.Redeemer:
	CLER I 0 A_PlaySound("weapons/redeemer/soulredeemed")
	CLER I 0 A_GiveToTarget("RedeemedSoul", 1)
	CLER I 0 A_GiveToTarget("RestoreHealth",random(7,11))
	CLER IIIIIIIIIIIIIIII 0 A_SpawnItemEx("SoulFragment",frandom(-4,4),frandom(-4,4),frandom(8,32),frandom(0.6,1.4),frandom(0.6,1.4),frandom(0.8,2.0),random(0,360),128)
	Goto Death
    Death.Mojo:
	TNT1 A 0 A_GiveToTarget("Mojo",random(6,10))
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,48,0,0,0,0,32,0)
	Goto Death
    Death.MojoActive:
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.Defile:
	TNT1 A 0 A_SpawnItemEx("DefileSpawner",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.Hammer:
	Goto Burn
    Death.Frost:
	"####" "#" 2
	CLER "\" 1 A_IceGuyDie
	Stop
    Ice:
	"####" "#" 2
	CLER "\" 1 A_IceGuyDie
	Stop
    Raise:
	CLER PONMLKJI 6
	TNT1 A 0 A_TakeInventory("DeadThing",1)
	Goto See
    }
}

ACTOR ECIronBall
{
    Speed 25
    Radius 8
    Damage 8
    PROJECTILE
    +NOEXTREMEDEATH
    +NOTELEPORT
    +CANBOUNCEWATER
    -ACTIVATEPCROSS
    -NOGRAVITY
    Gravity 0.2
    ReactionTime 70
    DamageType "ECleric"
    BounceType Hexen
    BounceCount 4
    BounceFactor 0.75
    BounceSound "weapons/ironward/ball/bounce"
    States
    {
    Spawn:
	IWBL AB 3
	IWBL A 0 A_JumpIf(velz>12,"AimHigher3")
	IWBL A 0 A_JumpIf(velz>8,"AimHigher2")
	IWBL A 0 A_JumpIf(velz>4,"AimHigher1")
	IWBL A 0 A_Countdown
	Loop
    AimHigher1:
	IWBL A 0 ThrustThingZ(0,2,0,1)
	IWBL AB 3
	IWBL A 0 A_Countdown
	Goto AimHigher1+1
    AimHigher2:
	IWBL A 0 ThrustThingZ(0,4,0,1)
	IWBL AB 3
	IWBL A 0 A_Countdown
	Goto AimHigher2+1
    AimHigher3:
	IWBL A 0 ThrustThingZ(0,6,0,1)
	IWBL AB 3
	IWBL A 0 A_Countdown
	Goto AimHigher3+1
    Death:
	TNT1 A 0 A_NoGravity
	TNT1 A 0 A_PlaySound("weapons/ironward/ball/explode")
	TNT1 A 0 A_SetTranslucent(1.0,1)
	IWBL C 4 Bright
	IWBL DEFG 4 Bright
	Stop
    }
}

ACTOR ECIronBallFast : ECIronBall
{
    Speed 40
}

ACTOR ECIronRipper : RipperBall
{
    Speed 20
    PROJECTILE
    +NOEXTREMEDEATH
    +CANBOUNCEWATER
    +NOTELEPORT
    +FOILINVUL
    +NOBOSSRIP
    +NODAMAGETHRUST
    -ACTIVATEPCROSS
    -NOGRAVITY
    Gravity 0.1
    Damage 7
    ReactionTime 50
    BounceType Hexen
    BounceCount 5
    BounceSound "weapons/ironward/ball/bounce"
    Scale 0.8
    States
    {
    Spawn:
	RIPP ABC 3
	RIPP A 0 A_Countdown
	Loop
    Death:
	TNT1 A 0 A_NoGravity
	CFCF Q 0 Bright A_PlaySound("Fireball")
	CFCF Q 4 Bright
	CFCF R 3 Bright
	CFCF S 4 Bright
	CFCF T 3 Bright
	CFCF U 4 Bright
	CFCF V 3 Bright
	CFCF W 4 Bright
	CFCF X 3 Bright
	CFCF Y 4 Bright
	CFCF Z 3 Bright
	Stop
    }
}

//----------------------------------------------------------

ACTOR EnemyMage : MageBoss replaces MageBoss
{
    Tag "Mage"
    Health 666
    SpawnID 167
//    +DONTHARMSPECIES
    +NODROPOFF
    +NOINFIGHTING
    +NEVERFAST
    +NODAMAGETHRUST
    Obituary "%o was defeated by a mage"
    PainChance "LifeDrain", 224
    PainChance "PGauntlets", 224
    PainChance "GManaDrain", 224
    PainChance "ManaDrain", 224
    PainChance "HellRain", 192
    PainChance "Charm", 256
    PainChance "CE", 256
    DamageFactor "EMage", 0
    Species "Enemy"
    DropItem ArmorSpawner 20
    DropItem ManaSpawner 64
    DropItem GoldCoin 2
    States
    {
    Melee:
    Missile:
	MAGE E 8 A_FaceTarget
	MAGE E 0 A_FaceTarget
	MAGE F 0 Bright A_PlaySound("weapons/heart/fire")
	MAGE F 1 Bright A_CustomMissile("EMBoneShard",frandom(28,36),frandom(-4,4),frandom(-4,4),0,frandom(-4,4))
	MAGE FFF 1 Bright A_CustomMissile("EMBoneShardNoPain",frandom(28,36),frandom(-4,4),frandom(-4,4),0,frandom(-4,4))
	MAGE F 1 Bright A_CPosReFire
	Goto Missile+1
    Pain.LifeDrain:
	MAGE G 4 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	MAGE G 4 A_Pain
	Goto See
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	MAGE G 4 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	MAGE G 4 A_Pain
	Goto See
    Pain.ManaDrain:
	MAGE G 4 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	MAGE G 4 A_Pain
	Goto See
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.HoldSpell:
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Pain.CE:
	TNT1 A 0 A_JumpIfInventory("DeadThing",1,1)
	Goto Pain
	TNT1 A 0 A_TakeFromTarget("RedeemedSoul",1)
	TNT1 A 0 A_PlaySound("weapons/redeemer/corpseexplode")
	TNT1 A 0 A_SpawnItemEx("CEGibSpawner",0,0,12,0,0,0,0,32,0)
	TNT1 A 0 A_Explode(random(600,640),128,0,0,128,0,0,"NoPuff","Player")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	Stop
    Pain.OKnight:
    Pain.NecroShot:
	TNT1 A 0 A_GiveToTarget("Health",random(40,60))
	Goto Pain
    Death:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	MAGE H 6
	MAGE I 6 A_Scream
	MAGE JK 6
	MAGE L 6 A_NoBlocking
	MAGE M 6
	MAGE N -1
	Stop
    XDeath:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	MAGE O 5 A_Scream
	MAGE P 0 A_NoBlocking
	MAGE P 5 A_SpawnItemEx("BloodyEMageSkull",0,0,48,frandom(0.4,1.2),frandom(0.4,1.2),frandom(1.2,2.0),random(0,360),32,0)
	MAGE R 5
	MAGE S 5
	MAGE T 5
	MAGE U 5
	MAGE V 5
	MAGE W 5
	MAGE X -1
	Stop
    Death.Redeemer:
	MAGE H 0 A_PlaySound("weapons/redeemer/soulredeemed")
	MAGE H 0 A_GiveToTarget("RedeemedSoul", 1)
	MAGE H 0 A_GiveToTarget("RestoreHealth",random(7,11))
	MAGE HHHHHHHHHHHHHHHH 0 A_SpawnItemEx("SoulFragment",frandom(-4,4),frandom(-4,4),frandom(8,32),frandom(0.6,1.4),frandom(0.6,1.4),frandom(0.8,2.0),random(0,360),128)
	Goto Death
    Death.Mojo:
	TNT1 A 0 A_GiveToTarget("Mojo",random(6,10))
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,48,0,0,0,0,32,0)
	Goto Death
    Death.MojoActive:
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.Defile:
	TNT1 A 0 A_SpawnItemEx("DefileSpawner",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.Hammer:
    Death.Torment:
    Death.Bloodscourge:
	Goto Burn
    Death.Frost:
	"####" "#" 2
	MAGE Y 1 A_IceGuyDie
	Stop
    Ice:
	"####" "#" 2
	MAGE Y 1 A_IceGuyDie
	Stop
    Raise:
	MAGE MLKJIH 6
	Goto See
    }
}

ACTOR EnemyMageNin : EnemyMage
{
    Tag "Mage"
    Health 780
    States
    {
    See:
	MAGE ABCD 3 A_FastChase
	Loop
    Melee:
    Missile:
	MAGE E 0 A_Jump(112,"Nin")
	MAGE E 8 A_FaceTarget
	MAGE E 0 A_FaceTarget
	MAGE F 0 Bright A_PlaySound("weapons/heart/fire")
	MAGE F 1 Bright A_CustomMissile("EMBoneShardFast",frandom(28,36),frandom(-4,4),frandom(-4,4),0,frandom(-4,4))
	MAGE FFF 1 Bright A_CustomMissile("EMBoneShardNoPainFast",frandom(28,36),frandom(-4,4),frandom(-4,4),0,frandom(-4,4))
	MAGE F 1 Bright A_CPosReFire
	Goto Missile+2
    Nin:
	MAGE E 8 A_FaceTarget
	MAGE F 0 Bright A_PlaySound("weapons/heart/powered/fire")
	MAGE F 1 Bright A_CustomMissile("EMLoricSkull",frandom(28,36),frandom(-4,4),frandom(-4,4),0,frandom(-4,4))
	MAGE EEE 8 A_FaceTarget
	MAGE F 0 Bright A_PlaySound("weapons/heart/powered/fire")
	MAGE F 1 Bright A_CustomMissile("EMLoricSkull",frandom(28,36),frandom(-4,4),frandom(-4,4),0,frandom(-4,4))
	MAGE EEE 8 A_FaceTarget
	MAGE F 0 Bright A_PlaySound("weapons/heart/powered/fire")
	MAGE F 1 Bright A_CustomMissile("EMLoricSkull",frandom(28,36),frandom(-4,4),frandom(-4,4),0,frandom(-4,4))
	Goto See
    Pain.LifeDrain:
	MAGE G 4 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	MAGE G 4 A_Pain
	Goto See
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	MAGE G 4 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	MAGE G 4 A_Pain
	Goto See
    Pain.ManaDrain:
	MAGE G 4 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	MAGE G 4 A_Pain
	Goto See
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.HoldSpell:
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Pain.CE:
	TNT1 A 0 A_JumpIfInventory("DeadThing",1,1)
	Goto Pain
	TNT1 A 0 A_TakeFromTarget("RedeemedSoul",1)
	TNT1 A 0 A_PlaySound("weapons/redeemer/corpseexplode")
	TNT1 A 0 A_SpawnItemEx("CEGibSpawner",0,0,12,0,0,0,0,32,0)
	TNT1 A 0 A_Explode(random(600,640),128,0,0,128,0,0,"NoPuff","Player")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	Stop
    Pain.OKnight:
    Pain.NecroShot:
	TNT1 A 0 A_GiveToTarget("Health",random(40,60))
	Goto Pain
    Death:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	MAGE H 6
	MAGE I 6 A_Scream
	MAGE JK 6
	MAGE L 6 A_NoBlocking
	MAGE M 6
	MAGE N -1
	Stop
    XDeath:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	MAGE O 5 A_Scream
	MAGE P 0 A_NoBlocking
	MAGE P 5 A_SpawnItemEx("BloodyEMageSkull",0,0,48,frandom(0.4,1.2),frandom(0.4,1.2),frandom(1.2,2.0),random(0,360),32,0)
	MAGE R 5
	MAGE S 5
	MAGE T 5
	MAGE U 5
	MAGE V 5
	MAGE W 5
	MAGE X -1
	Stop
    Death.Redeemer:
	MAGE H 0 A_PlaySound("weapons/redeemer/soulredeemed")
	MAGE H 0 A_GiveToTarget("RedeemedSoul", 1)
	MAGE H 0 A_GiveToTarget("RestoreHealth",random(7,11))
	MAGE HHHHHHHHHHHHHHHH 0 A_SpawnItemEx("SoulFragment",frandom(-4,4),frandom(-4,4),frandom(8,32),frandom(0.6,1.4),frandom(0.6,1.4),frandom(0.8,2.0),random(0,360),128)
	Goto Death
    Death.Mojo:
	TNT1 A 0 A_GiveToTarget("Mojo",random(6,10))
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,48,0,0,0,0,32,0)
	Goto Death
    Death.MojoActive:
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.Defile:
	TNT1 A 0 A_SpawnItemEx("DefileSpawner",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.Hammer:
	Goto Burn
    Death.Frost:
	"####" "#" 2
	MAGE Y 1 A_IceGuyDie
	Stop
    Ice:
	"####" "#" 2
	MAGE Y 1 A_IceGuyDie
	Stop
    Raise:
	MAGE MLKJIH 6
	Goto See
    }
}

ACTOR EMBoneShard : FastProjectile
{
    Radius 3
    Height 3
    Speed 30
    Damage (random(5,9))
    XScale 0.65
    YScale 0.3
    DamageType "EMage"
    PROJECTILE
    -ACTIVATEPCROSS
    +FOILINVUL
    +NODAMAGETHRUST
    States
    {
    Spawn:
	TNT1 A 0
	BNSH A 0 A_Jump(127,3)
	BNSH A 0 ThrustThingZ(0,frandom(0,8),0,1)
	BNSH A 0 A_Jump(256,2)
	BNSH A 0 ThrustThingZ(0,frandom(0,8),1,1)
	BNSH A 4
	Goto Spawn+5
    Death:
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("BoneShardParticle",0,0,0,frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	TNT1 A 0 A_PlaySound("weapons/heart/boneshard/miss")
	TNT1 A 0 A_Explode(random(8,14),8,0)
	Stop
    XDeath:
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("BoneShardParticle",0,0,0,frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	TNT1 A 0 A_PlaySound("weapons/heart/boneshard/hit")
	TNT1 A 0 A_Explode(random(8,14),8,0)
	Stop
    }
}

ACTOR EMBoneShardNoPain : EMBoneShard
{
    +PAINLESS
}

ACTOR EMBoneShardFast : EMBoneShard
{
    Speed 40
}

ACTOR EMBoneShardNoPainFast : EMBoneShard
{
    Speed 40
}

ACTOR EMLoricSkull : FastProjectile
{
    Height 5
    Radius 5
    Speed 42
    Damage 6
    PROJECTILE
    -ACTIVATEPCROSS
    Scale 0.3
    RenderStyle Add
    States
    {
    Spawn:
	SKLL A 0 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL A 1 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL A 0 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL A 1 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL A 0 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL A 1 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL B 0 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL B 1 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL B 0 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL B 1 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL B 0 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL B 1 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL C 0 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL C 1 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL C 0 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL C 1 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL C 0 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL C 1 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL D 0 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL D 1 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL D 0 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL D 1 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL D 0 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL D 1 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL E 0 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL E 1 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL E 0 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL E 1 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL E 0 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL E 1 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL D 0 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL D 1 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL D 0 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL D 1 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL D 0 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL D 1 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL C 0 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL C 1 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL C 0 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL C 1 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL C 0 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL C 1 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL B 0 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL B 1 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL B 0 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL B 1 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL B 0 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	SKLL B 1 Bright A_CustomMissile("LoricSkullTrail",0+random(10,-10),0+random(10,-10),random(15,-15),0)
	Loop
    Death:
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile("EMLoricShard",frandom(-8,8),frandom(-8,8),frandom(0,360),6,frandom(-25,25))
	TNT1 A 0 A_SpawnItemEx("LoricSkullExplode",0,0,0,0,0,0,0,32,0)
    	TNT1 A 0 A_Explode(64,96,0)
	Stop
    }
}

ACTOR EMLoricShard : EMBoneShard
{
    Radius 3
    Height 3
    Speed 30
    Damage 2
    DamageType "Loric"
    XScale 0.85
    YScale 0.4
}

//>>>>>>>>>> New <<<<<<<<<<

ACTOR FireGargoyle 7102 // : HereticImp 7102
{
    Tag "Fire Gargoyle"
    SpawnID 153
    Health 180
    Scale 1.4
    Speed 12
    Radius 26
    Height 48
    DropItem CrystalVial 40
    DamageFactor "Fire", 0.75
    DamageFactor "Vorpal", 2.5
    DamageFactor "Melee", 1.75
    DamageFactor "AxeHit", 1.75
    DamageFactor "Axe", 1.5
    DamageFactor "Hammer", 1.5
    DamageFactor "Electric", 3.5
    MONSTER
    +NOTARGETSWITCH
    +FLOAT
    +NOGRAVITY
    +SPAWNFLOAT
    +MISSILEMORE
    +NEVERFAST
    +NODAMAGETHRUST
    PainChance "LifeDrain", 224
    PainChance "PGauntlets", 224
    PainChance "GManaDrain", 224
    PainChance "ManaDrain", 224
    PainChance "HellRain", 192
    PainChance "Charm", 256
    PainChance "CE", 256
    GibHealth 180
    MeleeDamage 1
    MeleeRange 72
    MeleeSound "gargoyle/attack1"
    SeeSound "gargoyle/sight"
    DeathSound "gargoyle/crash"
    ActiveSound "gargoyle/sight"
    Obituary "%o was roasted by a gargoyle"
    HitObituary "%o was scratched by a gargoyle"
    States
    {
    Pain.LifeDrain:
	IMPX G 3 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	IMPX G 3 A_Pain
	Goto See
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	IMPX G 3 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	IMPX G 3 A_Pain
	Goto See
    Pain.ManaDrain:
	IMPX G 3 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	IMPX G 3 A_Pain
	Goto See
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.HoldSpell:
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_ChangeFlag("FLOAT",0)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("FLOAT",1)
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Pain.Slow:
	TNT1 A 0 A_PlaySound("dsparil/slow/hit")
	TNT1 A 0 A_GiveInventory("SlowedMonster",1)
	Goto See
    Pain.CE:
	TNT1 A 0 A_JumpIfInventory("DeadThing",1,1)
	Goto Pain
	TNT1 A 0 A_TakeFromTarget("RedeemedSoul",1)
	TNT1 A 0 A_PlaySound("weapons/redeemer/corpseexplode")
	TNT1 A 0 A_SpawnItemEx("CEGibSpawner",0,0,12,0,0,0,0,32,0)
	TNT1 A 0 A_Explode(random(130,160),128,0,0,128,0,0,"NoPuff","Player")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	Stop
    Pain.OKnight:
    Pain.NecroShot:
	TNT1 A 0 A_GiveToTarget("Health",random(40,60))
	Goto Pain
    Spawn:
	IMPX ABCB 10 A_Look
	Loop
    See:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"SeeSlow")
	IMPX A 0 A_TakeInventory("ChargeCount",30)
	IMPX AABBCCBB 3 A_Chase
	IMPX A 0 A_SentinelBob
	Loop
    SeeSlow:
	IMPX A 0 A_TakeInventory("ChargeCount",30)
	IMPX AABBCCBB 6 A_Chase
	IMPX A 0 A_SentinelBob
	Loop
    Melee:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MeleeSlow")
	IMPX DE 4 A_FaceTarget
	IMPX F 4 A_MeleeAttack
	Goto See
    MeleeSlow:
	IMPX DE 8 A_FaceTarget
	IMPX F 8 A_MeleeAttack
	Goto SeeSlow
    Missile:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MissileSlow")
	TNT1 A 0 A_Jump(64,"Charge")
	IMPX DE 4 A_FaceTarget
	IMPX F 0 A_PlaySound("gargoyle/attack2")
	IMPX F 4 A_CustomMissile("FireGargoyleShot",24,6,0)
	Goto See
    MissileSlow:
	TNT1 A 0 A_Jump(64,"ChargeSlow")
	IMPX DE 8 A_FaceTarget
	IMPX F 0 A_PlaySound("gargoyle/attack2")
	IMPX F 8 A_CustomMissile("FireGargoyleShotSlow",24,6,0)
	Goto SeeSlow
    Charge:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"ChargeSlow")
	IMPX A 0 A_PlaySound("gargoyle/attack1")
	IMPX A 6 A_FaceTarget
	IMPX B 6 A_SkullAttack(24)
	IMPX CBA 6
	IMPX B 6 A_GiveInventory("ChargeCount",1)
	IMPX B 0 A_JumpIfInventory("ChargeCount",3,1)
	Goto Charge+3
	IMPX B 0 A_Stop
	Goto See
    ChargeSlow:
	IMPX A 0 A_PlaySound("gargoyle/attack1")
	IMPX A 12 A_FaceTarget
	IMPX B 12 A_SkullAttack(12)
	IMPX CBA 6
	IMPX B 12 A_GiveInventory("ChargeCount",1)
	IMPX B 0 A_JumpIfInventory("ChargeCount",3,1)
	Goto ChargeSlow+4
	IMPX B 0 A_Stop
	Goto SeeSlow
    Pain:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"PainSlow")
	IMPX G 3
	IMPX G 3 A_Pain
	Goto See
    PainSlow:
	IMPX G 6
	IMPX G 6 A_Pain
	Goto SeeSlow
    Death:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	TNT1 A 0 A_PlaySound("hx2imp/death1", CHAN_AUTO, 1.0, 0)
	IMPX G 0 A_UnSetSolid
	IMPX G 4 A_ChangeFlag("FLOORCLIP",1)
	IMPX H 5
	Wait
    Death.Redeemer:
	IMPX G 0 A_PlaySound("weapons/redeemer/soulredeemed")
	IMPX G 0 A_GiveToTarget("RedeemedSoul", 1)
	IMPX G 0 A_GiveToTarget("RestoreHealth",random(7,11))
	IMPX GGGGGGGGGGGGGGGG 0 A_SpawnItemEx("SoulFragment",frandom(-4,4),frandom(-4,4),frandom(8,32),frandom(0.6,1.4),frandom(0.6,1.4),frandom(0.8,2.0),random(0,360),128)
	Goto Death
    Death.Mojo:
	TNT1 A 0 A_GiveToTarget("Mojo",random(4,8))
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(4,8))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,24,0,0,0,0,32,0)
	Goto Death
    Death.MojoActive:
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.Defile:
	TNT1 A 0 A_SpawnItemEx("DefileSpawner",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.Frost:
	TNT1 A 0 A_GiveInventory("IceDeath",1)
    Frost2:
	"####" "#" 2
	IMPX G 1 A_IceGuyDie
	Stop
    Ice:
	TNT1 A 0 A_GiveInventory("IceDeath",1)
    Ice2:
	"####" "#" 2
	IMPX G 1 A_IceGuyDie
	Stop
    Crash.Ice:
	TNT1 A 0 A_GiveInventory("IceDeath",1)
    CrashIce2:
	"####" "#" 2
	IMPX G 1 A_IceGuyDie
	Stop
    Crash.Frost:
	TNT1 A 0 A_GiveInventory("IceDeath",1)
    CrashFrost2:
	"####" "#" 2
	IMPX G 1 A_IceGuyDie
	Stop
    Crash:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	TNT1 A 0 A_JumpIfInventory("IceDeath",1,"Frost2")
	TNT1 A 0 A_NoBlocking
	IMPX I 0 A_SpawnItemEx("HereticImpChunk1",0,0,0,frandom(0,4),frandom(0,4),frandom(0,9),frandom(0,360),32,0)
	IMPX I 7 A_SpawnItemEx("HereticImpChunk2",0,0,0,frandom(0,4),frandom(0,4),frandom(0,9),frandom(0,360),32,0)
	IMPX J 7 A_Scream
	IMPX K 7
	IMPX L -1
	Stop
    Raise:
	IMPX KJI 7
	IMPX H 5
	IMPX G 4
	TNT1 A 0 A_TakeInventory("DeadThing",1)
	Goto See
    }
}

ACTOR FireGargoyleNin : FireGargoyle
{
    Tag "Fire Gargoyle"
    States
    {
    Pain.LifeDrain:
	IMPX G 3 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	IMPX G 3 A_Pain
	Goto See
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	IMPX G 3 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	IMPX G 3 A_Pain
	Goto See
    Pain.ManaDrain:
	IMPX G 3 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	IMPX G 3 A_Pain
	Goto See
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.HoldSpell:
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_ChangeFlag("FLOAT",0)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("FLOAT",1)
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Pain.Slow:
	TNT1 A 0 A_PlaySound("dsparil/slow/hit")
	TNT1 A 0 A_GiveInventory("SlowedMonster",1)
	Goto See
    Pain.CE:
	TNT1 A 0 A_JumpIfInventory("DeadThing",1,1)
	Goto Pain
	TNT1 A 0 A_TakeFromTarget("RedeemedSoul",1)
	TNT1 A 0 A_PlaySound("weapons/redeemer/corpseexplode")
	TNT1 A 0 A_SpawnItemEx("CEGibSpawner",0,0,12,0,0,0,0,32,0)
	TNT1 A 0 A_Explode(random(130,160),128,0,0,128,0,0,"NoPuff","Player")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	Stop
    Pain.OKnight:
    Pain.NecroShot:
	TNT1 A 0 A_GiveToTarget("Health",random(40,60))
	Goto Pain
    Spawn:
	IMPX ABCB 10 A_Look
	Loop
    See:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"SeeSlow")
	IMPX A 0 A_TakeInventory("ChargeCount",30)
	IMPX AABBCCBB 2 A_Chase
	IMPX A 0 A_SentinelBob
	Loop
    SeeSlow:
	IMPX A 0 A_TakeInventory("ChargeCount",30)
	IMPX AABBCCBB 4 A_Chase
	IMPX A 0 A_SentinelBob
	Loop
    Melee:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MeleeSlow")
	IMPX DE 4 A_FaceTarget
	IMPX F 4 A_MeleeAttack
	Goto See
    MeleeSlow:
	IMPX DE 8 A_FaceTarget
	IMPX F 8 A_MeleeAttack
	Goto SeeSlow
    Missile:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MissileSlow")
	TNT1 A 0 A_Jump(50,"Charge")
	IMPX DE 4 A_FaceTarget
	IMPX F 0 A_PlaySound("gargoyle/attack2")
	IMPX F 4 A_CustomMissile("FireGargoyleShotFast",24,6,0)
	Goto See
    MissileSlow:
	TNT1 A 0 A_Jump(50,"ChargeSlow")
	IMPX DE 8 A_FaceTarget
	IMPX F 0 A_PlaySound("gargoyle/attack2")
	IMPX F 8 A_CustomMissile("FireGargoyleShotSlow",24,6,0)
	Goto SeeSlow
    Charge:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"ChargeSlow")
	IMPX A 0 A_PlaySound("gargoyle/attack1")
	IMPX A 6 A_FaceTarget
	IMPX B 6 A_SkullAttack(36)
	IMPX CBA 6
	IMPX B 6 A_GiveInventory("ChargeCount",1)
	IMPX B 0 A_JumpIfInventory("ChargeCount",3,1)
	Goto Charge+3
	IMPX B 0 A_Stop
	Goto See
    ChargeSlow:
	IMPX A 0 A_PlaySound("gargoyle/attack1")
	IMPX A 12 A_FaceTarget
	IMPX B 12 A_SkullAttack(12)
	IMPX CBA 6
	IMPX B 12 A_GiveInventory("ChargeCount",1)
	IMPX B 0 A_JumpIfInventory("ChargeCount",3,1)
	Goto ChargeSlow+4
	IMPX B 0 A_Stop
	Goto SeeSlow
    Pain:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"PainSlow")
	IMPX G 3
	IMPX G 3 A_Pain
	Goto See
    PainSlow:
	IMPX G 6
	IMPX G 6 A_Pain
	Goto SeeSlow
    Death:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	TNT1 A 0 A_PlaySound("hx2imp/death1", CHAN_AUTO, 1.0, 0)
	IMPX G 0 A_UnSetSolid
	IMPX G 4 A_ChangeFlag("FLOORCLIP",1)
	IMPX H 5
	Wait
    Death.Redeemer:
	IMPX G 0 A_PlaySound("weapons/redeemer/soulredeemed")
	IMPX G 0 A_GiveToTarget("RedeemedSoul", 1)
	IMPX G 0 A_GiveToTarget("RestoreHealth",random(7,11))
	IMPX GGGGGGGGGGGGGGGG 0 A_SpawnItemEx("SoulFragment",frandom(-4,4),frandom(-4,4),frandom(8,32),frandom(0.6,1.4),frandom(0.6,1.4),frandom(0.8,2.0),random(0,360),128)
	Goto Death
    Death.Mojo:
	TNT1 A 0 A_GiveToTarget("Mojo",random(4,8))
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(4,8))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,24,0,0,0,0,32,0)
	Goto Death
    Death.MojoActive:
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.Defile:
	TNT1 A 0 A_SpawnItemEx("DefileSpawner",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.Frost:
	TNT1 A 0 A_GiveInventory("IceDeath",1)
    Frost2:
	"####" "#" 2
	IMPX G 1 A_IceGuyDie
	Stop
    Ice:
	TNT1 A 0 A_GiveInventory("IceDeath",1)
    Ice2:
	"####" "#" 2
	IMPX G 1 A_IceGuyDie
	Stop
    Crash:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	TNT1 A 0 A_JumpIfInventory("IceDeath",1,"Frost2")
	TNT1 A 0 A_NoBlocking
	IMPX I 0 A_SpawnItemEx("HereticImpChunk1",0,0,0,frandom(0,4),frandom(0,4),frandom(0,9),frandom(0,360),32,0)
	IMPX I 7 A_SpawnItemEx("HereticImpChunk2",0,0,0,frandom(0,4),frandom(0,4),frandom(0,9),frandom(0,360),32,0)
	IMPX J 7 A_Scream
	IMPX K 7
	IMPX L -1
	Stop
    Raise:
	IMPX KJI 7
	IMPX H 5
	IMPX G 4
	TNT1 A 0 A_TakeInventory("DeadThing",1)
	Goto See
    }
}

ACTOR ChargeCount : Inventory
{
    Inventory.Amount 1
    Inventory.MaxAmount 30
}

ACTOR IceDeath : Inventory
{
    Inventory.Amount 1
    Inventory.MaxAmount 1
}

ACTOR FireGargoyleShot : FireDemonMissile
{
    Radius 5
    Height 3
    -ACTIVATEPCROSS
    +ROCKETTRAIL
    Speed 22
    Damage 2
    Scale 0.7
}

ACTOR FireGargoyleShotSlow : FireGargoyleShot
{
    Speed 11
}


ACTOR FireGargoyleShotFast : FireGargoyleShot
{
    Speed 33
}

//----------------------------------------------------------

ACTOR StonedFireGargoyle : FireGargoyle 7103
{
    Tag "Stoned Fire Gargoyle"
    -NOGRAVITY
    -COUNTKILL
    -SHOOTABLE
    +SOLID
    +CANTSEEK
    +NOTARGET
    +INVULNERABLE
    +DORMANT
    +NONSHOOTABLE
    +NEVERFAST
    Mass 0x7FFFFFFFF
    Translation "0:255=%[0.0,0.0,0.0]:[1.2,1.2,1.2]"
    States
    {
    Spawn:
	IMPX B 3 A_Look
	Loop
    See:
	IMPX B 0 A_SetShootable
	IMPX B 0 A_PlaySound("hx2imp/stonebreak")
	IMPX BBBBBBBBBBBBBBBBBBBBBBBBBBBBBB 0 A_CustomMissile("StoneChunk",frandom(5,40),frandom(12,-12),frandom(1,360),2,frandom(10,40))
	IMPX B 1 A_SpawnItemEx("FireGargoyle",0,0,0,0,0,0,0,32,0)
	Stop
    }
}

ACTOR StoneChunk
{
    Mass 10
    Radius 5
    Height 8
    Speed 10
    Damage 0
    BounceType "Hexen"
    BounceCount 4
    BounceFactor 0.7
    PROJECTILE
    -ACTIVATEPCROSS
    -NOGRAVITY
    +ROCKETTRAIL
    +DONTSPLASH
    +CANBOUNCEWATER
    +THRUACTORS
    +RANDOMIZE
    Scale 0.12
    States
    {
    Spawn:
	SCHU ABC 3
	Loop
    Death:
	TNT1 A 0 
	Stop
    }
}

//----------------------------------------------------------

ACTOR IceGargoyle : FireGargoyle 144
{
    Tag "Ice Gargoyle"
    SpawnID 155
    Health 240
    GibHealth 240
    DamageFactor "Ice", 0.75
    DamageFactor "Frost", 0.75
    DamageFactor "Vorpal", 2.5
    DamageFactor "Melee", 1.75
    DamageFactor "AxeHit", 1.75
    DamageFactor "Axe", 1.5
    DamageFactor "Hammer", 1.5
    DamageFactor "Electric", 3.5
    +NOICEDEATH
    +NEVERFAST
    HitObituary "%o was beaten by an ice gargoyle"
    Obituary "%o got frostburn from an ice gargoyle"
    Translation "164:185=%[0.0,0.0,0.0]:[0.4,1.2,1.6]","204:240=%[0.0,0.0,0.0]:[0.4,1.2,1.6]","122:145=%[0.0,0.0,0.0]:[0.4,1.2,1.6]"
    States
    {
    Pain.CE:
	TNT1 A 0 A_JumpIfInventory("DeadThing",1,1)
	Goto Pain
	TNT1 A 0 A_TakeFromTarget("RedeemedSoul",1)
	TNT1 A 0 A_PlaySound("weapons/redeemer/corpseexplode")
	TNT1 A 0 A_SpawnItemEx("CEGibSpawner",0,0,12,0,0,0,0,32,0)
	TNT1 A 0 A_Explode(random(210,220),128,0,0,128,0,0,"NoPuff","Player")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	Stop
    Pain.OKnight:
    Pain.NecroShot:
	TNT1 A 0 A_GiveToTarget("Health",random(40,60))
	Goto Pain
    Missile:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MissileSlow")
	TNT1 A 0 A_Jump(64,"Charge")
	IMPX DE 4 A_FaceTarget
	IMPX F 0 A_PlaySound("hx2imp/iceshot")
	IMPX F 4 A_CustomMissile("IceGargoyleShot",24,6,0)
	Goto See
    MissileSlow:
	TNT1 A 0 A_Jump(64,"ChargeSlow")
	IMPX DE 8 A_FaceTarget
	IMPX F 0 A_PlaySound("hx2imp/iceshot")
	IMPX F 8 A_CustomMissile("IceGargoyleShotSlow",24,6,0)
	Goto SeeSlow
    Crash.Ice:
    Crash.Frost:
    Crash:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	TNT1 A 0 A_NoBlocking
	IMPX I 0 A_Gravity
	IMPX I 0 A_SpawnItemEx("IceGargoyleChunk1",0,0,0,frandom(0,4),frandom(0,4),frandom(0,9),frandom(0,360),32,0)
	IMPX I 7 A_SpawnItemEx("IceGargoyleChunk2",0,0,0,frandom(0,4),frandom(0,4),frandom(0,9),frandom(0,360),32,0)
	IMPX J 7 A_Scream
	IMPX K 7
	IMPX L -1
	Stop
    Death.Frost:
	TNT1 A 0
	Goto Death
    Ice:
	TNT1 A 0
	Goto Death
    }
}

ACTOR IceGargoyleNin : IceGargoyle
{
    Tag "Ice Gargoyle"
    States
    {
    See:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"SeeSlow")
	IMPX A 0 A_TakeInventory("ChargeCount",30)
	IMPX AABBCCBB 2 A_Chase
	IMPX A 0 A_SentinelBob
	Loop
    SeeSlow:
	IMPX A 0 A_TakeInventory("ChargeCount",30)
	IMPX AABBCCBB 4 A_Chase
	IMPX A 0 A_SentinelBob
	Loop
    Pain.CE:
	TNT1 A 0 A_JumpIfInventory("DeadThing",1,1)
	Goto Pain
	TNT1 A 0 A_TakeFromTarget("RedeemedSoul",1)
	TNT1 A 0 A_PlaySound("weapons/redeemer/corpseexplode")
	TNT1 A 0 A_SpawnItemEx("CEGibSpawner",0,0,12,0,0,0,0,32,0)
	TNT1 A 0 A_Explode(random(210,220),128,0,0,128,0,0,"NoPuff","Player")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	Stop
    Pain.OKnight:
    Pain.NecroShot:
	TNT1 A 0 A_GiveToTarget("Health",random(40,60))
	Goto Pain
    Missile:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MissileSlow")
	TNT1 A 0 A_Jump(50,"Charge")
	IMPX DE 4 A_FaceTarget
	IMPX F 0 A_PlaySound("hx2imp/iceshot")
	IMPX F 4 A_CustomMissile("IceGargoyleShotFast",24,6,0)
	Goto See
    MissileSlow:
	TNT1 A 0 A_Jump(50,"ChargeSlow")
	IMPX DE 8 A_FaceTarget
	IMPX F 0 A_PlaySound("hx2imp/iceshot")
	IMPX F 8 A_CustomMissile("IceGargoyleShotSlow",24,6,0)
	Goto SeeSlow
    Charge:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"ChargeSlow")
	IMPX A 0 A_PlaySound("gargoyle/attack1")
	IMPX A 6 A_FaceTarget
	IMPX B 6 A_SkullAttack(36)
	IMPX CBA 6
	IMPX B 6 A_GiveInventory("ChargeCount",1)
	IMPX B 0 A_JumpIfInventory("ChargeCount",3,1)
	Goto Charge+3
	IMPX B 0 A_Stop
	Goto See
    Crash:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	TNT1 A 0 A_NoBlocking
	IMPX I 0 A_Gravity
	IMPX I 0 A_SpawnItemEx("IceGargoyleChunk1",0,0,0,frandom(0,4),frandom(0,4),frandom(0,9),frandom(0,360),32,0)
	IMPX I 7 A_SpawnItemEx("IceGargoyleChunk2",0,0,0,frandom(0,4),frandom(0,4),frandom(0,9),frandom(0,360),32,0)
	IMPX J 7 A_Scream
	IMPX K 7
	IMPX L -1
	Stop
    Death.Frost:
	TNT1 A 0
	Goto Death
    Ice:
	TNT1 A 0
	Goto Death
    }
}

ACTOR IceGargoyleShot
{
    PROJECTILE
    -ACTIVATEPCROSS
    DamageType "Ice"
    Radius 5
    Height 3
    Speed 22
    Damage 3
    DeathSound "iceimp/shot/miss"
    RenderStyle Add
    Alpha 0.75
    States
    {
    Spawn:
	R046 JJKKLL 1 Bright A_SpawnItemEx("IceGargoyleShotTrail",0,0,0,0,0,0,0,32)
	Loop
    Death:
	TNT1 A 0 A_PlaySound("iceimp/shot/miss")
	TNT1 AAAAAAAA 0 A_SpawnItemEx("IceGargoyleShotFX",0,0,0,frandom(1,3),frandom(1,3),frandom(2,4),frandom(0,360),32,0)//A_CustomMissile("IceImpShotFX",0,0,frandom(0,359),2,frandom(5,10))
	ICXP ABC 3 Bright
	ICXP DEF 2 Bright
	Stop
    XDeath:
	TNT1 A 0 A_PlaySound("iceimp/shot/hit")
	TNT1 AAAAAAAA 0 A_SpawnItemEx("IceGargoyleShotFX",0,0,0,frandom(1,3),frandom(1,3),frandom(2,4),frandom(0,360),32,0)//A_CustomMissile("IceImpShotFX",0,0,frandom(0,359),2,frandom(5,10))
	ICXP ABC 3 Bright
	ICXP DEF 2 Bright
	Stop
    }
}

ACTOR IceGargoyleShotSlow : IceGargoyleShot
{
    Speed 11
    States
    {
    Spawn:
	R046 JJKKLL 2 Bright A_SpawnItemEx("IceGargoyleShotTrailSlow",0,0,0,0,0,0,0,32)
	Loop
    }
}

ACTOR IceGargoyleShotFast : IceGargoyleShot
{
    Speed 33
}

ACTOR IceGargoyleShotTrail
{
    PROJECTILE
    -ACTIVATEPCROSS
    +NOGRAVITY
    Radius 4
    Height 3
    Speed 0
    RenderStyle Add
    Alpha 0.5
    Scale 0.6
    States
    {
    Spawn:
	ICXP G 1 Bright
	ICXP GHI 3 Bright
	ICXP J 2 Bright
	Stop 
    }
}

ACTOR IceGargoyleShotTrailSlow : IceGargoyleShotTrail
{
    States
    {
    Spawn:
	ICXP G 2 Bright
	ICXP GHI 6 Bright
	ICXP J 4 Bright
	Stop 
    }
}

ACTOR IceGargoyleShotFX
{
    PROJECTILE
    +NOCLIP
    -NOGRAVITY
    +DONTSPLASH
    Height 4
    Radius 4
    Speed 3
    Gravity 0.4
    RenderStyle Add
    Alpha 0.75
    Scale 0.15
    States
    {
    Spawn:
	CBLT B 0
	CBLT BCDEFGH 3 Bright A_FadeOut
	Stop
	Wait
    }
}

ACTOR IceGargoyleChunk1 : HereticImpChunk1
{
    Translation "164:185=%[0.0,0.0,0.0]:[0.4,1.2,1.6]"
}

ACTOR IceGargoyleChunk2 : HereticImpChunk2
{
    Translation "164:185=%[0.0,0.0,0.0]:[0.4,1.2,1.6]"
}

//----------------------------------------------------------

ACTOR StonedIceGargoyle : StonedFireGargoyle 145
{
    Tag "Stoned Ice Gargoyle"
    +NEVERFAST
    States
    {
    See:
	IMPX B 0 A_PlaySound("hx2imp/stonebreak")
	IMPX BBBBBBBBBBBBBBBBBBBBBBBBBBBBBB 0 A_CustomMissile("StoneChunk",frandom(5,40),frandom(12,-12),frandom(1,360),2,frandom(10,40))
	IMPX B 1 A_SpawnItemEx("IceGargoyle",0,0,0,0,0,0,0,32,0)
	Stop
    }
}

//----------------------------------------------------------

ACTOR VenomGargoyle : FireGargoyle 7104
{
    Tag "Venom Gargoyle"
    SpawnID 154
    Health 220
    GibHealth 220
    +NEVERFAST
    DamageFactor "Pod", 0.2
    DamageFactor "Poison", 0.75
    DamageFactor "Vorpal", 2.5
    DamageFactor "Melee", 1.75
    DamageFactor "AxeHit", 1.75
    DamageFactor "Axe", 1.5
    DamageFactor "Hammer", 1.5
    DamageFactor "Electric", 3.5
    PainChance "Pod", 0
    HitObituary "%o was clawed by a venom gargoyle"
    Obituary "%o was dissolved by a venom gargoyle"
    Translation "164:185=%[0.0,0.0,0.0]:[1.4,1.6,0.0]","204:240=%[0.0,0.0,0.0]:[1.4,1.6,0.0]","122:145=%[0.0,0.0,0.0]:[1.4,1.6,0.0]"
    States
    {
    Pain.CE:
	TNT1 A 0 A_JumpIfInventory("DeadThing",1,1)
	Goto Pain
	TNT1 A 0 A_TakeFromTarget("RedeemedSoul",1)
	TNT1 A 0 A_PlaySound("weapons/redeemer/corpseexplode")
	TNT1 A 0 A_SpawnItemEx("CEGibSpawner",0,0,12,0,0,0,0,32,0)
	TNT1 A 0 A_Explode(random(170,200),128,0,0,128,0,0,"NoPuff","Player")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	Stop
    Pain.OKnight:
    Pain.NecroShot:
	TNT1 A 0 A_GiveToTarget("Health",random(40,60))
	Goto Pain
    Missile:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MissileSlow")
	TNT1 A 0 A_Jump(64,"Charge")
	IMPX DE 4 A_FaceTarget
	IMPX F 0 A_PlaySound("venomimp/fire")
	IMPX F 4 A_CustomMissile("VenomGargoyleShot",24,6,0)
	Goto See
    MissileSlow:
	TNT1 A 0 A_Jump(64,"ChargeSlow")
	IMPX DE 8 A_FaceTarget
	IMPX F 0 A_PlaySound("venomimp/fire")
	IMPX F 8 A_CustomMissile("VenomGargoyleShotSlow",24,6,0)
	Goto SeeSlow
    Crash:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	TNT1 A 0 A_NoBlocking
	IMPX I 0 A_Gravity
	IMPX I 0 A_SpawnItemEx("VenomGargoyleChunk1",0,0,0,frandom(0,4),frandom(0,4),frandom(0,9),frandom(0,360),32,0)
	IMPX I 7 A_SpawnItemEx("VenomGargoyleChunk2",0,0,0,frandom(0,4),frandom(0,4),frandom(0,9),frandom(0,360),32,0)
	IMPX J 7 A_Scream
	IMPX K 7
	IMPX L -1
	Stop
    }
}

ACTOR VenomGargoyleShot
{
   PROJECTILE
    -ACTIVATEPCROSS
    Speed 22
    PoisonDamage 40
    Scale 0.2
    Damage 4
    RenderStyle Add
    Alpha 0.9
    DeathSound ""
    States
    {
    Spawn:
	VENM AAA 1 Bright A_SpawnItemEx("SerpentBoltParticle",0,0,0,frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,359),0)
	VENM BBBCCC 1 Bright A_SpawnItemEx("SerpentBoltParticle",0,0,0,frandom(0.5,-0.5),frandom(0.5,-0.5),frandom(0.5,-0.5),frandom(0,360),0)
	VENM DDD 1 Bright A_SpawnItemEx("SerpentBoltParticle",0,0,0,frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,359),0)
	VENM EEEFFF 1 Bright A_SpawnItemEx("SerpentBoltParticle",0,0,0,frandom(0.5,-0.5),frandom(0.5,-0.5),frandom(0.5,-0.5),frandom(0,360),0)
	Loop
    Death:
	TNT1 A 0 A_PlaySound("venomimp/hit")
	TNT1 A 0 A_SpawnItemEx("HammerPuff",0,0,0,0,0,0,0,32,0)
	TNT1 AAAAAA 0 A_SpawnItemEx("VenomShotFX",0,0,0,frandom(2,-2),frandom(2,-2),frandom(0,3),0,0)
	Stop
    }
}

ACTOR VenomGargoyleShotSlow : VenomGargoyleShot
{
    Speed 11
    States
    {
    Spawn:
	VENM AAA 2 Bright A_SpawnItemEx("SerpentBoltParticle",0,0,0,frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,359),0)
	VENM BBBCCC 2 Bright A_SpawnItemEx("SerpentBoltParticle",0,0,0,frandom(0.5,-0.5),frandom(0.5,-0.5),frandom(0.5,-0.5),frandom(0,360),0)
	VENM DDD 2 Bright A_SpawnItemEx("SerpentBoltParticle",0,0,0,frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,359),0)
	VENM EEEFFF 2 Bright A_SpawnItemEx("SerpentBoltParticle",0,0,0,frandom(0.5,-0.5),frandom(0.5,-0.5),frandom(0.5,-0.5),frandom(0,360),0)
	Loop
    }
}

ACTOR VenomGargoyleShotFast : VenomGargoyleShot
{
    Speed 33
}

ACTOR VenomShotFX
{
    PROJECTILE
    -ACTIVATEPCROSS
    Speed 0
    Damage 0
    +NOCLIP
    Scale 0.1
    RenderStyle Add
    Alpha 0.9
    -NOGRAVITY
    +LOWGRAVITY
    States
    {
    Spawn:
	VENM AB 3 Bright
	TNT1 A 0 A_Jump(128,9)
	VENM CD 3 Bright
	TNT1 A 0 A_Jump(128,8)
	VENM EF 3 Bright
	TNT1 A 0 A_Jump(128,1)
	Loop
    FadeOut:
	VENM ABCDEF 3 Bright A_FadeOut(0.1)
	Loop
    }
}

ACTOR VenomGargoyleChunk1 : HereticImpChunk1
{
    Translation "164:185=%[0.0,0.0,0.0]:[1.4,1.6,0.0]"
}

ACTOR VenomGargoyleChunk2 : HereticImpChunk2
{
    Translation "164:185=%[0.0,0.0,0.0]:[1.4,1.6,0.0]"
}

ACTOR VenomGargoyleNM : VenomGargoyle
{
    PoisonDamage 20
}

ACTOR VenomGargoyleNin : VenomGargoyle
{
    Tag "Venom Gargoyle"
    PoisonDamage 20
    States
    {
    See:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"SeeSlow")
	IMPX A 0 A_TakeInventory("ChargeCount",30)
	IMPX AABBCCBB 2 A_Chase
	IMPX A 0 A_SentinelBob
	Loop
    SeeSlow:
	IMPX A 0 A_TakeInventory("ChargeCount",30)
	IMPX AABBCCBB 4 A_Chase
	IMPX A 0 A_SentinelBob
	Loop
    Pain.CE:
	TNT1 A 0 A_JumpIfInventory("DeadThing",1,1)
	Goto Pain
	TNT1 A 0 A_TakeFromTarget("RedeemedSoul",1)
	TNT1 A 0 A_PlaySound("weapons/redeemer/corpseexplode")
	TNT1 A 0 A_SpawnItemEx("CEGibSpawner",0,0,12,0,0,0,0,32,0)
	TNT1 A 0 A_Explode(random(170,200),128,0,0,128,0,0,"NoPuff","Player")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	Stop
    Pain.OKnight:
    Pain.NecroShot:
	TNT1 A 0 A_GiveToTarget("Health",random(40,60))
	Goto Pain
    Missile:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MissileSlow")
	TNT1 A 0 A_Jump(50,"Charge")
	IMPX DE 4 A_FaceTarget
	IMPX F 0 A_PlaySound("venomimp/fire")
	IMPX F 4 A_CustomMissile("VenomGargoyleShotFast",24,6,0)
	Goto See
    MissileSlow:
	TNT1 A 0 A_Jump(50,"ChargeSlow")
	IMPX DE 8 A_FaceTarget
	IMPX F 0 A_PlaySound("venomimp/fire")
	IMPX F 8 A_CustomMissile("VenomGargoyleShotSlow",24,6,0)
	Goto SeeSlow
    Charge:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"ChargeSlow")
	IMPX A 0 A_PlaySound("gargoyle/attack1")
	IMPX A 6 A_FaceTarget
	IMPX B 6 A_SkullAttack(36)
	IMPX CBA 6
	IMPX B 6 A_GiveInventory("ChargeCount",1)
	IMPX B 0 A_JumpIfInventory("ChargeCount",3,1)
	Goto Charge+3
	IMPX B 0 A_Stop
	Goto See
    Crash:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	TNT1 A 0 A_NoBlocking
	IMPX I 0 A_Gravity
	IMPX I 0 A_SpawnItemEx("VenomGargoyleChunk1",0,0,0,frandom(0,4),frandom(0,4),frandom(0,9),frandom(0,360),32,0)
	IMPX I 7 A_SpawnItemEx("VenomGargoyleChunk2",0,0,0,frandom(0,4),frandom(0,4),frandom(0,9),frandom(0,360),32,0)
	IMPX J 7 A_Scream
	IMPX K 7
	IMPX L -1
	Stop
    }
}

//----------------------------------------------------------

ACTOR StonedVenomGargoyle : StonedFireGargoyle 7115
{
    Tag "Stoned Venom Gargoyle"
    +NEVERFAST
    States
    {
    See:
	IMPX B 0 A_PlaySound("hx2imp/stonebreak")
	IMPX BBBBBBBBBBBBBBBBBBBBBBBBBBBBBB 0 A_CustomMissile("StoneChunk",frandom(5,40),frandom(12,-12),frandom(1,360),2,frandom(10,40))
	IMPX B 1 A_SpawnItemEx("VenomGargoyle",0,0,0,0,0,0,0,32,0)
	Stop
    }
}

//----------------------------------------------------------

ACTOR Devil : FireDemon replaces FireDemon
{
    Tag "Devil"
    Health 340
    Scale 1.3
    Radius 32
    Height 75
    Speed 16
    GibHealth 340
    +DONTSQUASH
    +NOTARGET
    +MISSILEMORE
    +NEVERFAST
    -INVULNERABLE
    PainChance "LifeDrain", 224
    PainChance "PGauntlets", 224
    PainChance "GManaDrain", 224
    PainChance "ManaDrain", 224
    PainChance "HellRain", 160
    PainChance "Charm", 256
    DamageFactor "Vorpal", 1.8
    DamageFactor "Melee", 1.5
    DamageFactor "AxeHit", 1.5
    DamageFactor "Axe", 1.3
    DamageFactor "Hammer", 1.25
    DamageFactor "Sacred", 1.5
    DamageFactor "Holy", 1.3
    DamageFactor "Consecrate", 1.2
    DamageFactor "Hellrain", 1.2
    DamageFactor "Meteor", 1.2
    DamageFactor "Electric", 3.5
    DamageFactor "Iron", 1.1
    Obituary "%o was roasted by a devil"
    HitObituary "%o was harassed by a devil"
    Translation "81:145=%[0.0,0.0,0.0]:[1.2,0.0,0.0]","203:254=%[0.0,0.0,0.0]:[1.2,0.0,0.0]","226:240=%[0.0,0.0,0.0]:[1.2,0.0,0.0]"
    States
    {
    Pain.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	FDMN D 6 Bright A_Pain
	Goto Chase
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	FDMN D 6 Bright A_Pain
	Goto Chase
    Pain.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	FDMN D 6 Bright A_Pain
	Goto Chase
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.HoldSpell:
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_ChangeFlag("FLOAT",0)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("FLOAT",1)
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Pain.Slow:
	TNT1 A 0 A_PlaySound("dsparil/slow/hit")
	TNT1 A 0 A_GiveInventory("SlowedMonster",1)
	Goto See
    Spawn:
	FDMN ABCB 10 Bright A_Look
	Loop
    See:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"SeeSlow")
	FDMN AABBCCBB 3 Bright A_FiredChase
	Loop
    SeeSlow:
	FDMN AABBCCBB 6 Bright A_Chase
	Loop
    Missile:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MissileSlow")
	FDMN K 0 Bright A_Jump(64,"Charge")
	FDMN K 3 Bright A_FaceTarget
	FDMN K 0 Bright A_PlaySound("FireDemonAttack")
	FDMN K 5 Bright A_CustomMissile("DevilFX",32,0,0)
	FDMN K 0 Bright A_PlaySound("FireDemonAttack")
	FDMN K 5 Bright A_CustomMissile("DevilFX",32,0,0)
	FDMN K 0 Bright A_PlaySound("FireDemonAttack")
	FDMN K 5 Bright A_CustomMissile("DevilFX",32,0,0)
	Goto See
    MissileSlow:
	FDMN K 0 Bright A_Jump(64,"ChargeSlow")
	FDMN K 6 Bright A_FaceTarget
	FDMN K 0 Bright A_PlaySound("FireDemonAttack")
	FDMN K 10 Bright A_CustomMissile("DevilFXSlow",32,0,0)
	FDMN K 0 Bright A_PlaySound("FireDemonAttack")
	FDMN K 10 Bright A_CustomMissile("DevilFXSlow",32,0,0)
	FDMN K 0 Bright A_PlaySound("FireDemonAttack")
	FDMN K 10 Bright A_CustomMissile("DevilFXSlow",32,0,0)
	Goto SeeSlow
    Charge:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"ChargeSlow")
	FDMN A 0 Bright A_PlaySound("gargoyle/attack1")
	FDMN A 6 Bright A_FaceTarget
	FDMN B 6 Bright A_SkullAttack(28)
	FDMN CBA 6 Bright
	FDMN B 6 Bright A_GiveInventory("ChargeCount",1)
	FDMN B 0 Bright A_JumpIfInventory("ChargeCount",3,1)
	Goto Charge+3
	FDMN B 0 Bright A_Stop
	Goto See
    ChargeSlow:
	FDMN A 0 Bright A_PlaySound("gargoyle/attack1")
	FDMN A 12 Bright A_FaceTarget
	FDMN B 12 Bright A_SkullAttack(14)
	FDMN CBA 12 Bright
	FDMN B 12 Bright A_GiveInventory("ChargeCount",1)
	FDMN B 0 Bright A_JumpIfInventory("ChargeCount",3,1)
	Goto Charge+3
	FDMN B 0 Bright A_Stop
	Goto SeeSlow
    Crash.Ice:
	TNT1 A 0 A_GiveInventory("IceDeath",1)
    CrashIce2:
	"####" "#" 2
	IMPX G 1 A_IceGuyDie
	Stop
    Crash.Frost:
	TNT1 A 0 A_GiveInventory("IceDeath",1)
    CrashFrost2:
	"####" "#" 2
	IMPX G 1 A_IceGuyDie
	Stop
    Crash:
    XDeath:
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	FDMN M 5 A_FaceTarget
	FDMN N 5 A_NoBlocking
	FDMN O 5 A_FiredSplotch
	Stop
    Death:
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	FDMN D 4 Bright A_FaceTarget
	FDMN L 4 Bright A_Scream
	FDMN L 4 Bright A_NoBlocking
	FDMN L 200 Bright
	Stop
    Death.Redeemer:
	IMPX G 0 A_PlaySound("weapons/redeemer/soulredeemed")
	IMPX G 0 A_GiveToTarget("RedeemedSoul", 1)
	IMPX G 0 A_GiveToTarget("RestoreHealth",random(7,11))
	IMPX GGGGGGGGGGGGGGGG 0 A_SpawnItemEx("SoulFragment",frandom(-4,4),frandom(-4,4),frandom(8,32),frandom(0.6,1.4),frandom(0.6,1.4),frandom(0.8,2.0),random(0,360),128)
	Goto Death
    Death.Mojo:
	TNT1 A 0 A_GiveToTarget("Mojo",random(4,8))
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(4,8))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,24,0,0,0,0,32,0)
	Goto Death
    Death.MojoActive:
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.Defile:
	TNT1 A 0 A_SpawnItemEx("DefileSpawner",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.Frost:
	"####" "#" 2
	FDMN R 1 A_IceGuyDie
	Stop
    Ice:
	"####" "#" 2
	FDMN R 1 A_IceGuyDie
	Stop
    }
}

ACTOR DevilNin : Devil
{
    Tag "Devil"
    States
    {
    Pain.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	FDMN D 6 Bright A_Pain
	Goto Chase
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	FDMN D 6 Bright A_Pain
	Goto Chase
    Pain.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	FDMN D 6 Bright A_Pain
	Goto Chase
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.HoldSpell:
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_ChangeFlag("FLOAT",0)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("FLOAT",1)
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Pain.Slow:
	TNT1 A 0 A_PlaySound("dsparil/slow/hit")
	TNT1 A 0 A_GiveInventory("SlowedMonster",1)
	Goto See
    Spawn:
	FDMN ABCB 10 Bright A_Look
	Loop
    See:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"SeeSlow")
	FDMN AABBCCBB 2 Bright A_FiredChase
	Loop
    SeeSlow:
	FDMN AABBCCBB 4 Bright A_Chase
	Loop
    Missile:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MissileSlow")
	FDMN K 0 Bright A_Jump(64,"Charge")
	FDMN K 3 Bright A_FaceTarget
	FDMN K 0 Bright A_PlaySound("FireDemonAttack")
	FDMN K 5 Bright A_CustomMissile("DevilFXFast",32,0,0)
	FDMN K 0 Bright A_PlaySound("FireDemonAttack")
	FDMN K 5 Bright A_CustomMissile("DevilFXFast",32,0,0)
	FDMN K 0 Bright A_PlaySound("FireDemonAttack")
	FDMN K 5 Bright A_CustomMissile("DevilFXFast",32,0,0)
	Goto See
    MissileSlow:
	FDMN K 0 Bright A_Jump(64,"ChargeSlow")
	FDMN K 6 Bright A_FaceTarget
	FDMN K 0 Bright A_PlaySound("FireDemonAttack")
	FDMN K 10 Bright A_CustomMissile("DevilFX",32,0,0)
	FDMN K 0 Bright A_PlaySound("FireDemonAttack")
	FDMN K 10 Bright A_CustomMissile("DevilFX",32,0,0)
	FDMN K 0 Bright A_PlaySound("FireDemonAttack")
	FDMN K 10 Bright A_CustomMissile("DevilFX",32,0,0)
	Goto SeeSlow
    Charge:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"ChargeSlow")
	FDMN A 0 Bright A_PlaySound("gargoyle/attack1")
	FDMN A 6 Bright A_FaceTarget
	FDMN B 6 Bright A_SkullAttack(42)
	FDMN CBA 6 Bright
	FDMN B 6 Bright A_GiveInventory("ChargeCount",1)
	FDMN B 0 Bright A_JumpIfInventory("ChargeCount",3,1)
	Goto Charge+3
	FDMN B 0 Bright A_Stop
	Goto See
    ChargeSlow:
	FDMN A 0 Bright A_PlaySound("gargoyle/attack1")
	FDMN A 12 Bright A_FaceTarget
	FDMN B 12 Bright A_SkullAttack(14)
	FDMN CBA 12 Bright
	FDMN B 12 Bright A_GiveInventory("ChargeCount",1)
	FDMN B 0 Bright A_JumpIfInventory("ChargeCount",3,1)
	Goto Charge+3
	FDMN B 0 Bright A_Stop
	Goto SeeSlow
    Crash:
    XDeath:
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	FDMN M 5 A_FaceTarget
	FDMN N 5 A_NoBlocking
	FDMN O 5 A_FiredSplotch
	Stop
    Death:
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	FDMN D 4 Bright A_FaceTarget
	FDMN L 4 Bright A_Scream
	FDMN L 4 Bright A_NoBlocking
	FDMN L 200 Bright
	Stop
    Death.Frost:
	"####" "#" 2
	FDMN R 1 A_IceGuyDie
	Stop
    Ice:
	"####" "#" 2
	FDMN R 1 A_IceGuyDie
	Stop
    }
}

ACTOR DevilFX : FireDemonMissile
{
    Scale 1.3
    Damage 3
    Speed 24
    -ACTIVATEPCROSS
    +ROCKETTRAIL
    Translation "0:255=%[0.0,0.0,0.0]:[1.2,0.0,0.0]"
}

ACTOR DevilFXSlow : DevilFX
{
    Speed 12
}

ACTOR DevilFXFast : DevilFX
{
    Speed 36
    States
    {
    Spawn:
	FDMB A 0
	FDMB A 0 A_Jump(128,3)
	FDMB A 0 ThrustThingZ(0,frandom(0,6),0,1)
	FDMB A 0 A_Jump(256,2)
	FDMB A 0 ThrustThingZ(0,frandom(0,6),1,1)
	FDMB A 5 Bright
	Goto Spawn+5
    }
}

ACTOR DevilSplotch1 : FireDemonSplotch1 replaces FireDemonSplotch1
{
    Radius 32
    Scale 1.3
    Translation "81:145=%[0.0,0.0,0.0]:[1.2,0.0,0.0]","203:254=%[0.0,0.0,0.0]:[1.2,0.0,0.0]","226:240=%[0.0,0.0,0.0]:[1.2,0.0,0.0]"
    States
    {
    Spawn:
    Death:
	FDMN P 3
	FDMN P 6
	FDMN Y -1
	Stop
    Raise:
	FDMN PONM 5
	FDMN M 0 A_SpawnItemEx("Devil",0,0,0,0,0,0,0,32,0)
	Stop
    }
}

ACTOR DevilSplotch2 : FireDemonSplotch2 replaces FireDemonSplotch2
{
    Radius 32
    Scale 1.3
    Translation "81:145=%[0.0,0.0,0.0]:[1.2,0.0,0.0]","203:254=%[0.0,0.0,0.0]:[1.2,0.0,0.0]","226:240=%[0.0,0.0,0.0]:[1.2,0.0,0.0]"
    States
    {
    Spawn:
    Death:
	FDMN Q 3
	FDMN Q 6
	FDMN Z -1
	Stop
    Raise:
	FDMN QONM 5
	FDMN M 0 A_SpawnItemEx("Devil",0,0,0,0,0,0,0,32,0)
	Stop
    }
}

//----------------------------------------------------------

ACTOR StonedDevil : StonedFireGargoyle 7117
{
    Tag "Stoned Devil"
    +NEVERFAST
    SpawnID 190
    States
    {
    See:
	IMPX B 0 A_PlaySound("hx2imp/stonebreak")
	IMPX BBBBBBBBBBBBBBBBBBBBBBBBBBBBBB 0 A_CustomMissile("StoneChunk",frandom(5,40),frandom(12,-12),frandom(1,360),2,frandom(10,40))
	IMPX B 1 A_SpawnItemEx("Devil",0,0,0,0,0,0,0,32,0)
	Stop
    }
}

//----------------------------------------------------------

ACTOR FlameCentaur : FCentaurLeader 7106
{
    Tag "Brutaur"
    SpawnID 157
    Health 740
    Scale 1.1
    Radius 23
    Height 70
    DropItem ManaSpawner 40
    DropItem Bracers 20
    DropItem FireWave 4
    DamageFactor "Crush", 4.0
    PainChance "LifeDrain", 224
    PainChance "PGauntlets", 224
    PainChance "GManaDrain", 224
    PainChance "ManaDrain", 224
    PainChance "HellRain", 192
    PainChance "Charm", 256
    DamageFactor "Fire", 0.75
    Obituary "%o got cooked by a brutaur"
    HitObituary "%o was ground into chunky salsa by a brutaur"
    +DONTSQUASH
    +NOINFIGHTING
    +NEVERFAST
    MeleeRange 90
    MeleeDamage 5
    Translation "81:121=%[0.0,0.0,0.0]:[1.6,0.4,0.3]","145:145=245:245"
    States
    {
    Pain.Cube:
    Pain.Crush:
    Pain.Vorpal:
    Pain.Quietus:
    Pain.QuietusTrail:
    Pain.Redeemer:
    Pain.HellRain:
    Pain.Meteor:
    Pain.Torment:
    Pain.Iron:
    Pain.Bloodscourge:
    Pain.DSparil:
    Pain.Pod:
    Pain.Mojo:
    Pain.MojoActive:
    Pain.Defile:
	CENT G 6 A_Pain
	Goto See
    Pain.CE:
	TNT1 A 0 A_JumpIfInventory("DeadThing",1,1)
	Goto Pain
	TNT1 A 0 A_TakeFromTarget("RedeemedSoul",1)
	TNT1 A 0 A_PlaySound("weapons/redeemer/corpseexplode")
	TNT1 A 0 A_SpawnItemEx("CEGibSpawner",0,0,12,0,0,0,0,32,0)
	TNT1 A 0 A_Explode(random(670,720),128,0,0,128,0,0,"NoPuff","Player")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	Stop
    Pain.OKnight:
    Pain.NecroShot:
	TNT1 A 0 A_GiveToTarget("Health",random(40,60))
	Goto Pain
    Missile:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MissileSlow")
	TNT1 A 0 A_Jump(192,"Ground","Air")
    Ground:
	CENT E 10 A_FaceTarget
	CENT F 0 A_PlaySound("MaulatorHamSwing")
	CENT F 8 Bright A_CustomMissile("FlameCentaurFX1",50,-4,0,0)
	CENT E 15 A_FaceTarget
	CENT F 0 A_PlaySound("MaulatorHamSwing")
	CENT F 8 Bright A_CustomMissile("FlameCentaurFX1",50,-4,0,0)
	CENT E 10 A_FaceTarget
	Goto See
    Air:
	CENT E 10 A_FaceTarget
	CENT F 0 A_PlaySound("DragonAttack")
	CENT F 4 Bright A_CustomMissile("FlameCentaurFireball",50,-4,0)
	CENT E 5 A_FaceTarget
	CENT F 0 A_PlaySound("DragonAttack")
	CENT F 4 Bright A_CustomMissile("FlameCentaurFireball",50,-4,0)
	CENT E 5 A_FaceTarget
	CENT F 0 A_PlaySound("DragonAttack")
	CENT F 4 Bright A_CustomMissile("FlameCentaurFireball",50,-4,0)
	CENT E 10 A_FaceTarget
	Goto See
    MissileSlow:
	TNT1 A 0 A_Jump(192,"GroundSlow","AirSlow")
    GroundSlow:
	CENT E 20 A_FaceTarget
	CENT F 0 A_PlaySound("MaulatorHamSwing")
	CENT F 16 Bright A_CustomMissile("FlameCentaurFX1Slow",50,-4,0,0)
	CENT E 30 A_FaceTarget
	CENT F 0 A_PlaySound("MaulatorHamSwing")
	CENT F 16 Bright A_CustomMissile("FlameCentaurFX1Slow",50,-4,0,0)
	CENT E 20 A_FaceTarget
	Goto SeeSlow
    AirSlow:
	CENT E 20 A_FaceTarget
	CENT F 0 A_PlaySound("DragonAttack")
	CENT F 8 Bright A_CustomMissile("FlameCentaurFireball",50,-4,0)
	CENT E 10 A_FaceTarget
	CENT F 0 A_PlaySound("DragonAttack")
	CENT F 8 Bright A_CustomMissile("FlameCentaurFireball",50,-4,0)
	CENT E 10 A_FaceTarget
	CENT F 0 A_PlaySound("DragonAttack")
	CENT F 8 Bright A_CustomMissile("FlameCentaurFireball",50,-4,0)
	CENT E 20 A_FaceTarget
	Goto SeeSlow
    Pain:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"PainSlow")
	CENT G 6 A_Pain
	CENT G 6 A_SetReflectiveInvulnerable
	CENT G 0 A_JumpIf(3 > (ACS_ExecuteWithResult(803,0,0,0,0)),12)
	CENT G 0 A_Jump(128,11)
	CENT E 10 A_FaceTarget
	CENT E 0 A_Jump(64,5)
	CENT F 0 A_PlaySound("DragonAttack")
	CENT F 8 Bright A_CustomMissile("FlameCentaurFX1",50,-4,0,0)
	CENT E 6 A_FaceTarget
	CENT E 0 A_Jump(256,8)
	CENT F 0 A_PlaySound("MaulatorHamSwing")
	CENT F 4 Bright A_CustomMissile("FlameCentaurFireball",50,-4,0,0)
	CENT E 6 A_FaceTarget
	CENT E 0 A_Jump(256,4)
	CENT EEE 15 A_CentaurDefend
	CENT E 1 A_UnsetReflectiveInvulnerable
	Goto See
    Pain.LifeDrain:
	CENT G 0
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Pain
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	CENT G 0
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Pain
    Pain.ManaDrain:
	CENT G 0
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Pain
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.HoldSpell:
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Pain.Slow:
	TNT1 A 0 A_PlaySound("dsparil/slow/hit")
	TNT1 A 0 A_GiveInventory("SlowedMonster",1)
	Goto See
    Death.Frost:
	"####" "#" 2
	CENT U 0 A_UnSetReflectiveInvulnerable
	CENT U 1 A_IceGuyDie
	Stop
    Ice:
	"####" "#" 2
	CENT U 0 A_UnSetReflectiveInvulnerable
	CENT U 1 A_IceGuyDie
	Stop
    Raise:
	CENT SRQPONMLK 4
	TNT1 A 0 A_TakeInventory("DeadThing",1)
	Goto See
    }
}

ACTOR FlameCentaurNin : FlameCentaur
{
    Tag "Brutaur"
    Health 810
    Speed 16
    States
    {
    See:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"SeeSlow")
	CENT ABCD 3 A_Chase
	Loop
    SeeSlow:
	CENT ABCD 6 A_Chase
	Loop
    Pain.CE:
	TNT1 A 0 A_JumpIfInventory("DeadThing",1,1)
	Goto Pain
	TNT1 A 0 A_TakeFromTarget("RedeemedSoul",1)
	TNT1 A 0 A_PlaySound("weapons/redeemer/corpseexplode")
	TNT1 A 0 A_SpawnItemEx("CEGibSpawner",0,0,12,0,0,0,0,32,0)
	TNT1 A 0 A_Explode(random(750,800),128,0,0,128,0,0,"NoPuff","Player")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	Stop
    Pain.OKnight:
    Pain.NecroShot:
	TNT1 A 0 A_GiveToTarget("Health",random(40,60))
	Goto Pain
    Missile:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MissileSlow")
	TNT1 A 0 A_Jump(192,"Ground","Air")
    Ground:
	CENT E 10 A_FaceTarget
	CENT F 0 A_PlaySound("MaulatorHamSwing")
	CENT F 8 Bright A_CustomMissile("FlameCentaurFX1Fast",50,-4,0,0)
	CENT E 15 A_FaceTarget
	CENT F 0 A_PlaySound("MaulatorHamSwing")
	CENT F 8 Bright A_CustomMissile("FlameCentaurFX1Fast",50,-4,0,0)
	CENT E 10 A_FaceTarget
	Goto See
    Air:
	CENT E 10 A_FaceTarget
	CENT F 0 A_PlaySound("DragonAttack")
	CENT F 4 Bright A_CustomMissile("FlameCentaurFireball",50,-4,0)
	CENT E 5 A_FaceTarget
	CENT F 0 A_PlaySound("DragonAttack")
	CENT F 4 Bright A_CustomMissile("FlameCentaurFireball",50,-4,0)
	CENT E 5 A_FaceTarget
	CENT F 0 A_PlaySound("DragonAttack")
	CENT F 4 Bright A_CustomMissile("FlameCentaurFireball",50,-4,0)
	CENT E 10 A_FaceTarget
	Goto See
    MissileSlow:
	TNT1 A 0 A_Jump(192,"GroundSlow","AirSlow")
    GroundSlow:
	CENT E 20 A_FaceTarget
	CENT F 0 A_PlaySound("MaulatorHamSwing")
	CENT F 16 Bright A_CustomMissile("FlameCentaurFX1Slow",50,-4,0,0)
	CENT E 30 A_FaceTarget
	CENT F 0 A_PlaySound("MaulatorHamSwing")
	CENT F 16 Bright A_CustomMissile("FlameCentaurFX1Slow",50,-4,0,0)
	CENT E 20 A_FaceTarget
	Goto SeeSlow
    AirSlow:
	CENT E 20 A_FaceTarget
	CENT F 0 A_PlaySound("DragonAttack")
	CENT F 8 Bright A_CustomMissile("FlameCentaurFireball",50,-4,0)
	CENT E 10 A_FaceTarget
	CENT F 0 A_PlaySound("DragonAttack")
	CENT F 8 Bright A_CustomMissile("FlameCentaurFireball",50,-4,0)
	CENT E 10 A_FaceTarget
	CENT F 0 A_PlaySound("DragonAttack")
	CENT F 8 Bright A_CustomMissile("FlameCentaurFireball",50,-4,0)
	CENT E 20 A_FaceTarget
	Goto SeeSlow
    Pain:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"PainSlow")
	CENT G 6 A_Pain
	CENT G 6 A_SetReflectiveInvulnerable
	CENT G 0 A_JumpIf(3 > (ACS_ExecuteWithResult(803,0,0,0,0)),12)
	CENT G 0 A_Jump(128,11)
	CENT E 10 A_FaceTarget
	CENT E 0 A_Jump(64,5)
	CENT F 0 A_PlaySound("DragonAttack")
	CENT F 8 Bright A_CustomMissile("FlameCentaurFX1Fast",50,-4,0,0)
	CENT E 6 A_FaceTarget
	CENT E 0 A_Jump(256,8)
	CENT F 0 A_PlaySound("MaulatorHamSwing")
	CENT F 4 Bright A_CustomMissile("FlameCentaurFireball",50,-4,0,0)
	CENT E 6 A_FaceTarget
	CENT E 0 A_Jump(256,4)
	CENT EEE 15 A_CentaurDefend
	CENT E 1 A_UnsetReflectiveInvulnerable
	Goto See
    Pain.LifeDrain:
	CENT G 0
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Pain
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	CENT G 0
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Pain
    Pain.ManaDrain:
	CENT G 0
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Pain
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.HoldSpell:
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Pain.Slow:
	TNT1 A 0 A_PlaySound("dsparil/slow/hit")
	TNT1 A 0 A_GiveInventory("SlowedMonster",1)
	Goto See
    Death.Frost:
	"####" "#" 2
	CENT U 0 A_UnSetReflectiveInvulnerable
	CENT U 1 A_IceGuyDie
	Stop
    Ice:
	"####" "#" 2
	CENT U 0 A_UnSetReflectiveInvulnerable
	CENT U 1 A_IceGuyDie
	Stop
    Raise:
	CENT SRQPONMLK 4
	TNT1 A 0 A_TakeInventory("DeadThing",1)
	Goto See
    }
}

ACTOR FlameCentaurFX1
{
    SpawnID 126
    Speed 14
    Radius 8
    Height 16
    Damage 3
    PROJECTILE
    -ACTIVATEPCROSS
    +RIPPER
    +THRUACTORS
    +NODAMAGETHRUST
    +FLOORHUGGER
    +FIREDAMAGE
    +BLOODLESSIMPACT
    States
    {
    Spawn:
	TNT1 A 0
	TNT1 A 2 A_SpawnItemEx("FlameCentaurFX2",0,0,0,0,0,0,0,32,0)
	Loop
    Death:
	TNT1 A 0
	Stop
    }
}

ACTOR FlameCentaurFX2
{
    Speed 0
    Radius 8
    Height 16
    Damage 3
    PROJECTILE
    -ACTIVATEPCROSS
    +RIPPER
    +NODAMAGETHRUST
    +FLOORHUGGER
    +FIREDAMAGE
    +BLOODLESSIMPACT
    +SHADOW
    RenderStyle Add
    States
    {
    Spawn:
	FX13 DC 4 Bright
	FX13 BCDE 5 Bright
	FX13 FGH 4 Bright
	Stop
    }
}

ACTOR FlameCentaurFX1Slow
{
    Speed 7
    Radius 8
    Height 16
    Damage 3
    PROJECTILE
    -ACTIVATEPCROSS
    +RIPPER
    +THRUACTORS
    +NODAMAGETHRUST
    +FLOORHUGGER
    +FIREDAMAGE
    +BLOODLESSIMPACT
    States
    {
    Spawn:
	TNT1 A 0
	TNT1 A 4 A_SpawnItemEx("FlameCentaurFX2Slow",0,0,0,0,0,0,0,32,0)
	Loop
    Death:
	TNT1 A 0
	Stop
    }
}

ACTOR FlameCentaurFX1Fast : FlameCentaurFX1
{
    Speed 21
}

ACTOR FlameCentaurFX2Slow
{
    Speed 0
    Radius 8
    Height 16
    Damage 3
    PROJECTILE
    -ACTIVATEPCROSS
    +RIPPER
    +NODAMAGETHRUST
    +FLOORHUGGER
    +FIREDAMAGE
    +BLOODLESSIMPACT
    +SHADOW
    RenderStyle Add
    States
    {
    Spawn:
	FX13 DC 8 Bright
	FX13 BCDE 10 Bright
	FX13 FGH 8 Bright
	Stop
    }
}

ACTOR FlameCentaurFireball : DragonFireball
{
    -ACTIVATEPCROSS
    Scale 1.0
    States
    {
    Death:
	DRFX G 4 Bright
	DRFX HIJKL 4 Bright
	TNT1 A 5 Bright A_SpawnItemEx("FCFireballExplosion",random(-20,20),random(-20,20),random(-20,20),0,0,0,0,40,0)
	TNT1 A 5 Bright A_SpawnItemEx("FCFireballExplosion",random(-20,20),random(-20,20),random(-20,20),0,0,0,0,40,0)
	TNT1 A 0 Bright A_Jump(127,6)
	TNT1 A 5 Bright A_SpawnItemEx("FCFireballExplosion",random(-20,20),random(-20,20),random(-20,20),0,0,0,0,40,0)
	TNT1 A 0 Bright A_Jump(127,4)
	TNT1 A 5 Bright A_SpawnItemEx("FCFireballExplosion",random(-20,20),random(-20,20),random(-20,20),0,0,0,0,40,0)
	TNT1 A 0 Bright A_Jump(127,2)
	TNT1 A 5 Bright A_SpawnItemEx("FCFireballExplosion",random(-20,20),random(-20,20),random(-20,20),0,0,0,0,40,0)
	TNT1 A 0
	Stop
    }
}

ACTOR FlameCentaurFireballFast : FlameCentaurFireball
{
    Speed 36
}

ACTOR FlameCentaurFireballSlow : FlameCentaurFireball
{
    Speed 12
}

ACTOR FCFireballExplosion
{
    PROJECTILE
    +NOGRAVITY
    +FORCERADIUSDMG
    +NODAMAGETHRUST
    DamageType "Fire"
    Speed 0
    Radius 8
    Height 8
    DeathSound "DragonFireballExplode"
    RenderStyle Add
    States
    {
    Spawn:
	CFCF Q 4 Bright
	CFCF R 3 Bright
	CFCF S 4 Bright A_Scream
	CFCF T 3 Bright A_Explode(80,128,0)
	CFCF U 4 Bright
	CFCF V 3 Bright
	CFCF W 4 Bright
	CFCF X 3 Bright
	CFCF Y 4 Bright
	CFCF Z 3 Bright
	Stop
    }
}

//----------------------------------------------------------

ACTOR LavaSerpent : FSerpentLeader 7113
{
    Tag "Lava Stalker"
    SpawnID 164
    -NOBLOOD
    +DONTSQUASH
    +NEVERFAST
    +NOVERTICALMELEERANGE
    +NOINFIGHTSPECIES
    PainChance "LifeDrain", 224
    PainChance "PGauntlets", 224
    PainChance "GManaDrain", 224
    PainChance "ManaDrain", 224
    PainChance "HellRain", 128
    PainChance "Charm", 256
    PainChance "Fire", 0
    DamageFactor "Fire", 0
    MeleeRange 72
    Obituary "%o was fried by a stalker"
    Translation "51:66=%[0.0,0.0,0.0]:[2.0,0.6,0.0]","186:202=%[0.0,0.0,0.0]:[2.0,0.6,0.0]","1:50=%[0.0,0.0,0.0]:[1.5,0.5,0.3]","66:66=225:225"
    States
    {
    Pain.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Pain
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Pain
    Pain.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Pain
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.HoldSpell:
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Pain.Slow:
	TNT1 A 0 A_PlaySound("dsparil/slow/hit")
	TNT1 A 0 A_GiveInventory("SlowedMonster",1)
	Goto See
    Melee:
	SSPT A 0 A_JumpIfTargetInLOS(1,360,0,1024,0)
	Goto See
	SSPT A 1 A_UnHideThing
	SSPT A 1 A_PlaySoundEx("SerpentBirth", "Voice")
	SSPT B 2 A_SetShootable
	SSPT C 2
	SSPT D 4 A_SerpentCheckForAttack
	Goto Dive
    Missile:
	SSPT N 5 A_CustomMissile("LavaSerpentFX",32,0)
	Goto Dive
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    XDeath:
	SSXD A 4
	SSXD B 4 A_SpawnItemEx("LavaSerpentHead",0,0,45)
	SSXD C 4 A_NoBlocking
	SSXD DE 4
	SSXD FG 3
	SSXD H 0 A_SpawnItemEx("LavaSerpentGib1",frandom(-12,12),frandom(-12,12),0,frandom(1,2),frandom(2,4),0,frandom(0,360),32,0)
	SSXD H 0 A_SpawnItemEx("LavaSerpentGib2",frandom(-12,12),frandom(-12,12),0,frandom(1,2),frandom(2,4),0,frandom(0,360),32,0)
	SSXD H 3 A_SpawnItemEx("LavaSerpentGib3",frandom(-12,12),frandom(-12,12),0,frandom(1,2),frandom(2,4),0,frandom(0,360),32,0)
	Stop
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Death.Redeemer:
	SSPT O 0 A_PlaySound("weapons/redeemer/soulredeemed")
	SSPT O 0 A_GiveToTarget("RedeemedSoul", 1)
	SSPT O 0 A_GiveToTarget("RestoreHealth",random(7,11))
	SSPT OOOOOOOOOOOOOOOO 0 A_SpawnItemEx("SoulFragment",frandom(-4,4),frandom(-4,4),frandom(8,32),frandom(0.6,1.4),frandom(0.6,1.4),frandom(0.8,2.0),random(0,360),128)
	Goto Death
    Death.Mojo:
	TNT1 A 0 A_GiveToTarget("Mojo",random(6,10))
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,32,0,0,0,0,32,0)
	Goto Death
    Death.MojoActive:
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.Defile:
	TNT1 A 0 A_SpawnItemEx("DefileSpawner",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.Frost:
	"####" "#" 2
	SSPT "[" 1 A_IceGuyDie
	Stop
    Ice:
	"####" "#" 2
	SSPT "[" 1 A_IceGuyDie
	Stop
    }
}

ACTOR LavaSerpentHead : SerpentHead
{
    Translation "51:66=%[0.0,0.0,0.0]:[2.0,0.6,0.0]","186:202=%[0.0,0.0,0.0]:[2.0,0.6,0.0]","1:50=%[0.0,0.0,0.0]:[1.5,0.5,0.3]","66:66=225:225"
}

ACTOR LavaSerpentGib1 : SerpentGib1
{
    Translation "51:66=%[0.0,0.0,0.0]:[2.0,0.6,0.0]","186:202=%[0.0,0.0,0.0]:[2.0,0.6,0.0]","1:50=%[0.0,0.0,0.0]:[1.5,0.5,0.3]","66:66=225:225"
    +FLOORCLIP
    States
    {
    Spawn:
	SSXD Q 6
	SSXD Q 6 A_FloatGib
	SSXD QQ 8 A_FloatGib
	SSXD QQ 12 A_FloatGib
	SSXD Q 232 A_DelayGib
	SSXD QQ 12 A_SinkGib
	SSXD QQQ 8 A_SinkGib
	Stop
    }
}

ACTOR LavaSerpentGib2 : SerpentGib2
{
    Translation "51:66=%[0.0,0.0,0.0]:[2.0,0.6,0.0]","186:202=%[0.0,0.0,0.0]:[2.0,0.6,0.0]","1:50=%[0.0,0.0,0.0]:[1.5,0.5,0.3]","66:66=225:225"
    +FLOORCLIP
    States
    {
    Spawn:
	SSXD R 6
	SSXD R 6 A_FloatGib
	SSXD RR 8 A_FloatGib
	SSXD RR 12 A_FloatGib
	SSXD R 232 A_DelayGib
	SSXD RR 12 A_SinkGib
	SSXD RRR 8 A_SinkGib
	Stop
    }
}

ACTOR LavaSerpentGib3 : SerpentGib3
{
    Translation "51:66=%[0.0,0.0,0.0]:[2.0,0.6,0.0]","186:202=%[0.0,0.0,0.0]:[2.0,0.6,0.0]","1:50=%[0.0,0.0,0.0]:[1.5,0.5,0.3]","66:66=225:225"
    +FLOORCLIP
    States
    {
    Spawn:
	SSXD T 6
	SSXD T 6 A_FloatGib
	SSXD TT 8 A_FloatGib
	SSXD TT 12 A_FloatGib
	SSXD T 232 A_DelayGib
	SSXD TT 12 A_SinkGib
	SSXD TTT 8 A_SinkGib
	Stop
    }
}

ACTOR LavaSerpentFX : SerpentFX
{
    -ACTIVATEPCROSS
    Speed 22
    Radius 8
    Height 10
    Damage 6
    Scale 1.15
    DamageType "Fire"
    Translation "0:255=%[0.0,0.0,0.0]:[2.0,1.2,0.0]"
    States
    {
    Spawn:
	SSFX A 0
	SSFX A 0 Bright A_PlaySoundEx("SerpentFXContinuous", "Body", 1)
	SSFX AAABBBAAABBB 1 Bright A_SpawnItemEx("LavaSerpentFXTrail",0,0,0,frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(0,360),32,0)//A_SpawnItemEx("LavaSerpentFXTrail",0,0,0,0,0,0,0,32,0)
	Loop
    Death:
	XPL1 A 0 Bright A_StopSoundEx("Body")
	XPL1 ABCDEF 4 Bright
	Stop
    }
}

ACTOR LavaSerpentFXFast : LavaSerpentFX
{
    Speed 33
}

ACTOR LavaSerpentFXTrail
{
    Radius 10
    Height 6
    Speed 0
    Scale 0.25
    +NOINTERACTION
    RenderStyle Add
    States
    {
    Spawn:
	TNT1 A 0
	TNT1 A 1
	OKFX JKLMN 5 A_FadeOut
	Stop
    }
}

//----------------------------------------------------------

ACTOR Sabreclaw 7101
{
    Tag "Sabreclaw"
    SpawnID 152
    Health 180
    Radius 20
    Height 64
    Mass 75
    Speed 20
    DropItem BlueManaSpawner 35
    DropItem CrystalVial 30
    PainChance 32
    MeleeRange 75
    PainChance "LifeDrain", 224
    PainChance "PGauntlets", 224
    PainChance "GManaDrain", 224
    PainChance "ManaDrain", 224
    PainChance "HellRain", 192
    PainChance "Charm", 256
    PainChance "CE", 256
    MONSTER
//    +NOBLOOD
    +FLOORCLIP
    +NEVERFAST
    +NODAMAGETHRUST
    SeeSound "clink/sight"
    AttackSound "clink/attack"
    PainSound "clink/pain"
    DeathSound "clink/death"
    ActiveSound "clink/active"
    Obituary "%o was slashed by a sabreclaw"
    States
    {
    Spawn:
	CLNK AB 10 A_Look
	Loop
    See:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"SeeSlow")
	CLNK ABCD 3 A_Chase
	Loop
    SeeSlow:
	CLNK ABCD 6 A_Chase
	Loop
    Melee:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MeleeSlow")
	CLNK EF 4 A_FaceTarget
	CLNK G 7 A_CustomMeleeAttack(random(6,16), "clink/attack", "clink/attack")
	Goto See
    MeleeSlow:
	CLNK EF 8 A_FaceTarget
	CLNK G 14 A_CustomMeleeAttack(random(6,16), "clink/attack", "clink/attack")
	Goto SeeSlow
    Pain:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"SeeSlow")
	CLNK H 3
	CLNK H 3 A_Pain
	Goto See
    PainSlow:
	CLNK H 6
	CLNK H 6 A_Pain
	Goto SeeSlow
    Pain.LifeDrain:
	CLNK H 3 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	CLNK H 3 A_Pain
	Goto See
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	CLNK H 3 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	CLNK H 3 A_Pain
	Goto See
    Pain.ManaDrain:
	CLNK H 3 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	CLNK H 3 A_Pain
	Goto See
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.HoldSpell:
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Pain.Slow:
	TNT1 A 0 A_PlaySound("dsparil/slow/hit")
	TNT1 A 0 A_GiveInventory("SlowedMonster",1)
	Goto See
    Pain.CE:
	TNT1 A 0 A_JumpIfInventory("DeadThing",1,1)
	Goto Pain
	TNT1 A 0 A_TakeFromTarget("RedeemedSoul",1)
	TNT1 A 0 A_PlaySound("weapons/redeemer/corpseexplode")
	TNT1 A 0 A_SpawnItemEx("CEGibSpawner",0,0,12,0,0,0,0,32,0)
	TNT1 A 0 A_Explode(random(120,160),128,0,0,128,0,0,"NoPuff","Player")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	Stop
    Pain.OKnight:
    Pain.NecroShot:
	TNT1 A 0 A_GiveToTarget("Health",random(40,60))
	Goto Pain
    Death:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	CLNK IJ 6
	CLNK K 5 A_Scream
	CLNK L 5 A_NoBlocking
	CLNK MN 5
	CLNK O -1
	Stop
    Death.Redeemer:
	ETTN I 0 A_PlaySound("weapons/redeemer/soulredeemed")
	ETTN I 0 A_GiveToTarget("RedeemedSoul",1)
	ETTN I 0 A_GiveToTarget("RestoreHealth",random(7,11))
	ETTN IIIIIIIIIIIIIIII 0 A_SpawnItemEx("SoulFragment",frandom(-4,4),frandom(-4,4),frandom(8,32),frandom(0.6,1.4),frandom(0.6,1.4),frandom(0.8,2.0),random(0,360),128)
	Goto Death
    Death.Mojo:
	TNT1 A 0 A_GiveToTarget("Mojo",random(6,10))
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.MojoActive:
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.Defile:
	TNT1 A 0 A_SpawnItemEx("DefileSpawner",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.Frost:
	"####" "#" 2
	CLNK H 1 A_IceGuyDie
	Stop
    Ice:
	"####" "#" 2
	CLNK H 1 A_IceGuyDie
	Stop
    Raise:
	CLNK NMLK 5
	CLNK JI 6
	TNT1 A 0 A_TakeInventory("DeadThing",1)
	Goto See
    }
}

ACTOR SabreclawNin : Sabreclaw
{
    Tag "Sabreclaw"
    Health 200
    States
    {
    Spawn:
	CLNK AB 10 A_Look
	Loop
    See:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"SeeSlow")
	CLNK ABCD 2 A_Chase
	Loop
    SeeSlow:
	CLNK ABCD 4 A_Chase
	Loop
    Melee:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MeleeSlow")
	CLNK EF 4 A_FaceTarget
	CLNK G 7 A_CustomMeleeAttack(random(6,16), "clink/attack", "clink/attack")
	Goto See
    MeleeSlow:
	CLNK EF 8 A_FaceTarget
	CLNK G 14 A_CustomMeleeAttack(random(6,16), "clink/attack", "clink/attack")
	Goto SeeSlow
    Pain:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"SeeSlow")
	CLNK H 3
	CLNK H 3 A_Pain
	Goto See
    PainSlow:
	CLNK H 6
	CLNK H 6 A_Pain
	Goto SeeSlow
    Pain.LifeDrain:
	CLNK H 3 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	CLNK H 3 A_Pain
	Goto See
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	CLNK H 3 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	CLNK H 3 A_Pain
	Goto See
    Pain.ManaDrain:
	CLNK H 3 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	CLNK H 3 A_Pain
	Goto See
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.HoldSpell:
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Pain.Slow:
	TNT1 A 0 A_PlaySound("dsparil/slow/hit")
	TNT1 A 0 A_GiveInventory("SlowedMonster",1)
	Goto See
    Pain.CE:
	TNT1 A 0 A_JumpIfInventory("DeadThing",1,1)
	Goto Pain
	TNT1 A 0 A_TakeFromTarget("RedeemedSoul",1)
	TNT1 A 0 A_PlaySound("weapons/redeemer/corpseexplode")
	TNT1 A 0 A_SpawnItemEx("CEGibSpawner",0,0,12,0,0,0,0,32,0)
	TNT1 A 0 A_Explode(random(130,190),128,0,0,128,0,0,"NoPuff","Player")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	Stop
    Pain.OKnight:
    Pain.NecroShot:
	TNT1 A 0 A_GiveToTarget("Health",random(40,60))
	Goto Pain
    Death:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	CLNK IJ 6
	CLNK K 5 A_Scream
	CLNK L 5 A_NoBlocking
	CLNK MN 5
	CLNK O -1
	Stop
    Death.Redeemer:
	ETTN I 0 A_PlaySound("weapons/redeemer/soulredeemed")
	ETTN I 0 A_GiveToTarget("RedeemedSoul",1)
	ETTN I 0 A_GiveToTarget("RestoreHealth",random(7,11))
	ETTN IIIIIIIIIIIIIIII 0 A_SpawnItemEx("SoulFragment",frandom(-4,4),frandom(-4,4),frandom(8,32),frandom(0.6,1.4),frandom(0.6,1.4),frandom(0.8,2.0),random(0,360),128)
	Goto Death
    Death.Mojo:
	TNT1 A 0 A_GiveToTarget("Mojo",random(6,10))
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.MojoActive:
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.Defile:
	TNT1 A 0 A_SpawnItemEx("DefileSpawner",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.Frost:
	"####" "#" 2
	CLNK H 1 A_IceGuyDie
	Stop
    Ice:
	"####" "#" 2
	CLNK H 1 A_IceGuyDie
	Stop
    Raise:
	CLNK NMLK 5
	CLNK JI 6
	TNT1 A 0 A_TakeInventory("DeadThing",1)
	Goto See
    }
}

//----------------------------------------------------------

ACTOR BloodLich 7109
{
    Tag "Blood Lich"
    Obituary "%o was reduced to a pile of ash by a Blood Lich"
    SpawnID 160
    Health 2500
    Radius 40
    Height 72
    Mass 2000
    Speed 10
    DropItem ManaSpawner
    DropItem ManaSpawner
    DropItem ManaSpawner 128
    DropItem ManaSpawner 192
    DropItem HoldSpell 20
    DropItem MalisonScroll 20
    DropItem MalisonScroll 20
    PainChance 16
    PainChance "Pod", 0
    PainChance "LifeDrain", 224
    PainChance "PGauntlets", 224
    PainChance "GManaDrain", 224
    PainChance "ManaDrain", 224
    PainChance "HellRain", 128
    SeeSound "ironlich/sight"
    AttackSound ""
    PainSound "ironlich/pain"
    DeathSound "ironlich/death"
    ActiveSound "ironlich/active"
    DamageFactor "Pod", 0.25
    DamageFactor "Fire", 0.85
    DamageFactor "QuietusTrail", 0.5
    DamageFactor "Quietus", 0.5
    DamageFactor "FireWave", 0.0
    DamageFactor "Meteor", 0.66
    DamageFactor "Mojo", 0.75
    DamageFactor "MojoActive", 0.75
    DamageFactor "Defile", 0.75
    DamageFactor "Dragon", 0.5
    DamageFactor "Lantern", 0.4
    DamageFactor "Loric", 0.8
    DamageFactor "Cube", 0.4
    DamageFactor "PodExplode", 0.75
    DamageFactor "Sacred", 1.5
    DamageFactor "Holy", 1.3
    DamageFactor "Consecrate", 1.2
    DamageFactor "Hellrain", 1.2
    DamageFactor "Iron", 0.75
    MONSTER
    +NOGRAVITY
    +NOTARGET
    +NOFEAR
    +SPAWNCEILING
    +FLOAT
    +MISSILEMORE
    +MISSILEEVENMORE
    +NOICEDEATH
    +DONTBLAST
    +DONTMORPH
//    +DONTRIP
    +DONTSPLASH
    +BOSS
    +BOSSDEATH
    +NEVERFAST
    States
    {
    Spawn:
	BLCH A 10 A_Look
	Loop
    See:
	BLCH A 0 A_StopSound(7)
	BLCH A 4 A_Chase
	Goto See+1
    Missile:
	BLCH B 0 Bright A_JumpIfCloser(300, "Breath")
	BLCH B 0 Bright A_Jump(85,"Curse","Ghost")
	BLCH B 0 Bright A_FaceTarget
	BLCH B 0 Bright A_PlaySound("MageStaffFire", CHAN_AUTO) 
	BLCH B 0 Bright A_CustomMissile("BloodLichFireball",54,10,-2,1)
	BLCH B 6 Bright A_CustomMissile("BloodLichFireball",54,-10,2,1)
	Goto See
    Breath:
	BLCH B 0 Bright A_PlaySound("FlameBreath",7,1.0,1)
	BLCH B 0 Bright A_FaceTarget
	BLCH BBB 2 Bright A_CustomMissile("FireBreath",20,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	BLCH B 0 Bright A_FaceTarget
	BLCH BBB 2 Bright A_CustomMissile("FireBreath",20,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	BLCH B 0 Bright A_FaceTarget
	BLCH BBB 2 Bright A_CustomMissile("FireBreath",20,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	BLCH B 0 Bright A_FaceTarget
	BLCH BBB 2 Bright A_CustomMissile("FireBreath",20,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	BLCH B 0 Bright A_FaceTarget
	BLCH BBB 2 Bright A_CustomMissile("FireBreath",20,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	BLCH B 0 A_StopSound(7)
	Goto See
    Curse:
	BLCH B 0 Bright A_JumpIfCloser(300, "Breath")
	BLCH B 0 Bright A_FaceTarget
	BLCH B 6 Bright A_CustomMissile("CurseSpell",20,0,0,1)
	Goto See
    Ghost:
	BLCH B 0 Bright A_JumpIfCloser(300,"Breath")
	BLCH B 0 Bright A_FaceTarget
	BLCH B 0 Bright A_Jump(64,2)
	BLCH B 6 Bright A_CustomMissile("WraithGhostSummoner",20,0,0,5)
	Goto See
	BLCH B 0 Bright A_CustomMissile("WraithGhostSummoner",20,40,0,5)
	BLCH B 6 Bright A_CustomMissile("WraithGhostSummoner",20,-40,0,5)
	Goto See
    Pain:
	BLCH A 0 A_StopSound(7)
	BLCH A 0 A_Pain
	Goto See
    Pain.LifeDrain:
	BLCH A 0 A_StopSound(7)
	BLCH A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	BLCH A 0 A_Pain
	Goto See
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	BLCH A 0 A_StopSound(7)
	BLCH A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	BLCH A 0 A_Pain
	Goto See
    Pain.ManaDrain:
	BLCH A 0 A_StopSound(7)
	BLCH A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	BLCH A 0 A_Pain
	Goto See
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death:
	BLCH C 0 A_StopSound(7)
	BLCH C 7 A_KillChildren
	BLCH D 7 A_Scream
	BLCH E 7 A_NoBlocking
	BLCH F 7
	BLCH G 7
	BLCH H 7
	BLCH I -1 A_BossDeath
	Stop
    }
}

ACTOR BloodLichNin : BloodLich
{
    Health 3200
    Tag "Blood Lich"
}

ACTOR FireBreath
{
    Radius 12
    Height 8
    Speed 18
    Damage 3
    Alpha 0.2
    PROJECTILE
    -NOBLOCKMAP
    -ACTIVATEIMPACT
    -ACTIVATEPCROSS
    +SPAWNSOUNDSOURCE
    +RIPPER
    +BLOODLESSIMPACT
    +NODAMAGETHRUST
    +THRUGHOST
    DamageType "Fire"
    RenderStyle Add
    States
    {
    Spawn:
	FRBS EFGEFGEFGEFGEFGEFG 3
    Death:
    	TNT1 A 0
    	Stop
    }
}

ACTOR BloodLichFireball
{
    Speed 17
    Height 8
    Damage 4
    PROJECTILE
    -ACTIVATEPCROSS
    +EXTREMEDEATH
    +THRUGHOST
    DamageType "Fire"
    DeathSound "MageStaffExplode"
    States
    {
    Spawn:
	MSP2 ABCD 2 Bright
	Loop
    Death:
	TNT1 AAAAAAAAAAAAAAA 0 A_SpawnItemEx("MageStaffFXExtra",0,0,6,random(4,-4)/(2*1.5),random(4,-4)/(2*1.5),random(4,-4)/(2*1.5),random(1,359),32)
	TNT1 A 0 A_SetTranslucent(1,1)
	MSP1 G 2 Bright A_Explode(80,192,0)
	MSP1 HIJKLMOP 2 Bright A_FadeOut(0.08)
	Stop
    }
}

ACTOR BloodLichFireballFast : BloodLichFireball
{
    Speed 27
}

ACTOR CurseSpell
{
    PROJECTILE
    -ACTIVATEPCROSS
    +SEEKERMISSILE
    +FORCEPAIN
    +BLOODLESSIMPACT
    +THRUGHOST
    RenderStyle Add
    Damage 0
    DamageType "Curse"
    Speed 22
    Radius 10
    Height 6
    States
    {
    Spawn:
	TNT1 A 0
	CURS A 0 A_PlaySound("ironlich/curse/active", CHAN_AUTO, 1.0, 1)
	CURS ABCDEF 3 Bright A_SeekerMissile(12,12,2)
	Loop
    Death:
	CURS G 0 A_PlaySound("dsparil/slow/explode", CHAN_AUTO, 1.0)
	CURS GHIJKL 3 Bright
	Stop
    }
}

ACTOR CurseSpellNM : CurseSpell
{
    DamageType "CurseNM"
}

ACTOR WraithGhostSummoner
{
    PROJECTILE
    +DONTFALL
    -NOGRAVITY
    Gravity 0.25
    Speed 30
    Scale 0.5
    States
    {
    Spawn:
	TNT1 AAA 1
	TNT1 A 0 A_SpawnItemEx("WraithGhost",0,0,0,0,0,0,0,16,0)
	Stop
    }
}

//----------------------------------------------------------

ACTOR FrostLich 7110
{
    Tag "Frost Lich"
    SpawnID 161
    Obituary "%o got a cool reception from a Frost Lich"
    Health 2500
    Radius 40
    Height 72
    Mass 2000
    Speed 10
    DropItem ManaSpawner
    DropItem ManaSpawner
    DropItem ManaSpawner 128
    DropItem ManaSpawner 192
    DropItem Regeneration 12
    DropItem IcePotion 25
    DropItem IcePotion 25
    DropItem IcePotion 25
    PainChance 16
    PainChance "Pod", 0
    PainChance "LifeDrain", 224
    PainChance "PGauntlets", 224
    PainChance "GManaDrain", 224
    PainChance "ManaDrain", 224
    PainChance "HellRain", 128
    SeeSound "ironlich/sight"
    AttackSound ""
    PainSound "ironlich/pain"
    DeathSound "ironlich/death"
    ActiveSound "ironlich/active"
    DamageFactor "Pod", 0.2
    DamageFactor "Ice", -0.5
    DamageFactor "QuietusTrail", 0.5
    DamageFactor "Quietus", 0.5
    DamageFactor "Frost", -0.5
    DamageFactor "Fire", 1.25
    DamageFactor "FireWave", 0.0
    DamageFactor "Meteor", 0.75
    DamageFactor "Mojo", 0.75
    DamageFactor "MojoActive", 0.75
    DamageFactor "Defile", 0.75
    DamageFactor "Dragon", 0.5
    DamageFactor "Lantern", 0.4
    DamageFactor "Loric", 0.8
    DamageFactor "Cube", 0.45
    DamageFactor "PodExplode", 0.75
    DamageFactor "Sacred", 1.5
    DamageFactor "Holy", 1.2
    DamageFactor "Consecrate", 1.1
    DamageFactor "Hellrain", 1.1
    DamageFactor "Iron", 0.75
    MONSTER
    +NOGRAVITY
    +NOTARGET
    +NOFEAR
    +NOBLOOD
    +SPAWNCEILING
    +FLOAT
    +MISSILEMORE
    +MISSILEEVENMORE
    +DONTBLAST
    +DONTMORPH
//    +DONTRIP
    +DONTSPLASH
    +BOSS
    +BOSSDEATH
    +NEVERFAST
    States
    {
    Spawn:
	FLCH A 10 A_Look
	Loop
    See:
	FLCH A 0 A_StopSound(7)
	FLCH A 4 A_Chase
	Goto See+1
    Missile:
	FLCH B 0 Bright A_JumpIfCloser(300, "Breath")
	FLCH B 0 Bright A_Jump(80,"Summon")
	FLCH B 0 Bright A_Jump(32,"ZeroK")
	FLCH B 0 Bright A_FaceTarget
	FLCH B 0 Bright A_PlaySound("IceGuyAttack", CHAN_AUTO) 
	FLCH B 0 Bright A_CustomMissile("FrostLichSpike",54,10,-1,1)
	FLCH B 4 Bright A_CustomMissile("FrostLichSpike",54,-10,1,1)
	FLCH B 0 Bright A_FaceTarget
	FLCH B 0 Bright A_PlaySound("IceGuyAttack", CHAN_AUTO) 
	FLCH B 0 Bright A_CustomMissile("FrostLichSpike",54,10,-4,1)
	FLCH B 4 Bright A_CustomMissile("FrostLichSpike",54,-10,4,1)
	FLCH B 0 Bright A_FaceTarget
	FLCH B 0 Bright A_PlaySound("IceGuyAttack", CHAN_AUTO) 
	FLCH B 0 Bright A_CustomMissile("FrostLichSpike",54,10,-7,1)
	FLCH B 6 Bright A_CustomMissile("FrostLichSpike",54,-10,7,1)
	Goto See
    Breath:
	FLCH B 0 Bright A_PlaySound("FrostBreath",7,1.0,1)
	FLCH B 0 Bright A_FaceTarget
	FLCH BBB 2 Bright A_CustomMissile("IceBreath",20,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	FLCH B 0 Bright A_FaceTarget
	FLCH BBB 2 Bright A_CustomMissile("IceBreath",20,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	FLCH B 0 Bright A_FaceTarget
	FLCH BBB 2 Bright A_CustomMissile("IceBreath",20,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	FLCH B 0 Bright A_FaceTarget
	FLCH BBB 2 Bright A_CustomMissile("IceBreath",20,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	FLCH B 0 Bright A_FaceTarget
	FLCH BBB 2 Bright A_CustomMissile("IceBreath",20,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	FLCH B 0 A_StopSound(7)
	Goto See
    Summon:
	FLCH B 0 Bright A_JumpIfCloser(300,"Breath")
	FLCH B 0 Bright A_FaceTarget
	FLCH B 0 Bright A_PlaySound("IceGuyAttack")
	FLCH B 6 Bright A_CustomMissile("WendigoSummoner",20,0,0,5)
	Goto See
    ZeroK:
	FLCH B 0 Bright A_JumpIfCloser(300,"Breath")
	FLCH B 0 Bright A_FaceTarget
	FLCH B 0 Bright A_PlaySound("weapons/frostshards/altfire")
	FLCH B 6 Bright A_CustomMissile("FrostLichZeroK",20,0,0,1)
	Goto See
    Pain:
	FLCH B 0 A_StopSound(7)
	FLCH A 0 A_Pain
	Goto See
    Pain.LifeDrain:
	FLCH A 0 A_StopSound(7)
	FLCH A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	FLCH A 0 A_Pain
	Goto See
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	FLCH A 0 A_StopSound(7)
	FLCH A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	FLCH A 0 A_Pain
	Goto See
    Pain.ManaDrain:
	FLCH A 0 A_StopSound(7)
	FLCH A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	FLCH A 0 A_Pain
	Goto See
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death:
	FLCH A 1 A_ChangeFlag("INVISIBLE",1)
	FLCH A 0 A_StopSound(7)
	FLCH A 0 A_PlaySound("FreezeShatter",1.0,2,0,ATTN_NONE)
	FLCH A 0 A_KillChildren
	FLCH A 1 A_IceGuyDie
	Stop
    }
}

ACTOR FrostLichNin : FrostLich
{
    Tag "Frost Lich"
    Health 3200
}

ACTOR FrostLichSpike : IceGuyFX
{
    -ACTIVATEPCROSS
    Scale 1.2
    Speed 22
    Damage 4
    States
    {
    Spawn:
	ICPR AAA 1 Bright A_SpawnItemEx("IceFXTrail1",0,0,0,0,0,0,0,32,0)
	ICPR BBB 1 Bright A_SpawnItemEx("IceFXTrail2",0,0,0,0,0,0,0,32,0)
	ICPR CCC 1 Bright A_SpawnItemEx("IceFXTrail3",0,0,0,0,0,0,0,32,0)
	Loop
    Death:
	ICPR D 4 Bright
	ICPR E 0 Bright A_CustomMissile("FrostLichShard",2,0,0,6,0)
	ICPR E 0 Bright A_CustomMissile("FrostLichShard",2,0,15,6,0)
	ICPR E 0 Bright A_CustomMissile("FrostLichShard",2,0,30,6,0)
	ICPR E 0 Bright A_CustomMissile("FrostLichShard",2,0,45,6,0)
	ICPR E 0 Bright A_CustomMissile("FrostLichShard",2,0,60,6,0)
	ICPR E 0 Bright A_CustomMissile("FrostLichShard",2,0,75,6,0)
	ICPR E 0 Bright A_CustomMissile("FrostLichShard",2,0,90,6,0)
	ICPR E 0 Bright A_CustomMissile("FrostLichShard",2,0,115,6,0)
	ICPR E 0 Bright A_CustomMissile("FrostLichShard",2,0,120,6,0)
	ICPR E 0 Bright A_CustomMissile("FrostLichShard",2,0,135,6,0)
	ICPR E 0 Bright A_CustomMissile("FrostLichShard",2,0,150,6,0)
	ICPR E 0 Bright A_CustomMissile("FrostLichShard",2,0,165,6,0)
	ICPR E 0 Bright A_CustomMissile("FrostLichShard",2,0,180,6,0)
	ICPR E 0 Bright A_CustomMissile("FrostLichShard",2,0,195,6,0)
	ICPR E 0 Bright A_CustomMissile("FrostLichShard",2,0,210,6,0)
	ICPR E 0 Bright A_CustomMissile("FrostLichShard",2,0,225,6,0)
	ICPR E 0 Bright A_CustomMissile("FrostLichShard",2,0,240,6,0)
	ICPR E 0 Bright A_CustomMissile("FrostLichShard",2,0,255,6,0)
	ICPR E 0 Bright A_CustomMissile("FrostLichShard",2,0,270,6,0)
	ICPR E 0 Bright A_CustomMissile("FrostLichShard",2,0,285,6,0)
	ICPR E 0 Bright A_CustomMissile("FrostLichShard",2,0,300,6,0)
	ICPR E 0 Bright A_CustomMissile("FrostLichShard",2,0,315,6,0)
	ICPR E 0 Bright A_CustomMissile("FrostLichShard",2,0,330,6,0)
	ICPR E 0 Bright A_CustomMissile("FrostLichShard",2,0,345,6,0)
	ICPR FG 4 Bright
	ICPR H 3 Bright
	Stop
    }
}

ACTOR FrostLichSpikeFast : FrostLichSpike
{
    Speed 33
}

ACTOR FrostLichShard
{
    Speed 16
    Radius 4
    Height 4
    Damage 1
    DamageType "Ice"
    PROJECTILE
    -ACTIVATEPCROSS
    +STRIFEDAMAGE
    +NOTELEPORT
    States
    {
    Spawn:
	ICPR NNNOOOPPP 1 A_FadeOut(0.05)
	Loop
    }
}

ACTOR IceFXTrail1
{
    Scale 1.2
    RenderStyle Add
    Alpha 0.75
    +NOINTERACTION
    States
    {
    Spawn:
	ICPR A 1 A_FadeOut(0.05)
	Wait
    }
}

ACTOR IceFXTrail2 : IceFXTrail1
{
    States
    {
    Spawn:
	ICPR B 1 A_FadeOut(0.05)
	Wait
    }
}

ACTOR IceFXTrail3 : IceFXTrail1
{
    States
    {
    Spawn:
	ICPR C 1 A_FadeOut(0.05)
	Wait
    }
}

ACTOR IceBreath
{
    Radius 12
    Height 8
    Speed 18
    Damage 3
    Alpha 0.2
    PROJECTILE
    -NOBLOCKMAP
    -ACTIVATEIMPACT
    -ACTIVATEPCROSS
    +SPAWNSOUNDSOURCE
    +RIPPER
    +BLOODLESSIMPACT
    +NODAMAGETHRUST
    DamageType "Ice"
    RenderStyle Add
    States
    {
    Spawn:
	IBTH ABCABCABCABCABCABC 3
    Death:
    	TNT1 A 0
    	Stop
    }
}

ACTOR WendigoSummoner
{
    PROJECTILE
    -ACTIVATEPCROSS
    -NOGRAVITY
    Gravity 0.25
    Speed 15
    Scale 0.5
    States
    {
    Spawn:
	ICPR AAA 1 Bright A_SpawnItemEx("WSummonerTrail1",0,0,0,0,0,0,0,32,0)
	ICPR BBB 1 Bright A_SpawnItemEx("WSummonerTrail2",0,0,0,0,0,0,0,32,0)
	ICPR CCC 1 Bright A_SpawnItemEx("WSummonerTrail3",0,0,0,0,0,0,0,32,0)
	Loop
    Death:
	TNT1 A 0 A_SpawnItemEx("FLMinion",0,0,0,0,0,0,0,16,0)
	MNSM ABCDEFGHIJKLMNOPQ 3
	Stop
    }
}

ACTOR WSummonerTrail1
{
    Scale 0.5
    RenderStyle Add
    Alpha 0.75
    +NOINTERACTION
    States
    {
    Spawn:
	ICPR A 1 A_FadeOut(0.05)
	Wait
    }
}

ACTOR WSummonerTrail2 : WSummonerTrail1
{
    States
    {
    Spawn:
	ICPR B 1 A_FadeOut(0.05)
	Wait
    }
}

ACTOR WSummonerTrail3 : WSummonerTrail1
{
    States
    {
    Spawn:
	ICPR C 1 A_FadeOut(0.05)
	Wait
    }
}

ACTOR FLMinion : Wendigo
{
    Tag "Wendigo"
    Health 240
    Scale 0.85
    Speed 12
    +NEVERFAST
    -COUNTKILL
    DropItem ""
    DamageFactor "Ice", 0
    DamageFactor "Frost", 0
    DamageFactor "Fire", 1.2
    States
    {
    Missile:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MissileSlow")
	ICEY EF 3 A_FaceTarget
	ICEY G 0 Bright A_PlaySound("IceGuyAttack")
	ICEY G 0 Bright A_CustomMissile("FLMinionFX",40,12,0,1)
	ICEY G 8 Bright A_CustomMissile("FLMinionFX",40,-12,0,1)
	ICEY F 4 A_FaceTarget
	Goto See
    MissileSlow:
	ICEY EF 6 A_FaceTarget
	ICEY G 0 Bright A_PlaySound("IceGuyAttack")
	ICEY G 0 Bright A_CustomMissile("FLMinionFXSlow",40,12,0,1)
	ICEY G 16 Bright A_CustomMissile("FLMinionFXSlow",40,-12,0,1)
	ICEY F 8 A_FaceTarget
	Goto SeeSlow
    }
}

ACTOR FLMinionFX : IceGuyFX
{
    -ACTIVATEPCROSS
    Damage 1
}

ACTOR FLMinionFXSlow : FLMinionFX
{
    Speed 7
}

ACTOR FLMinionFXFast : FLMinionFX
{
    Speed 21
}

ACTOR FrostLichZeroK
{
    PROJECTILE
    -ACTIVATEPCROSS
    +SEEKERMISSILE
    +FOILINVUL
    +NODAMAGETHRUST
    Speed 20
    Damage 15
    Radius 10
    Height 14
    Scale 0.3
    RenderStyle Add
    DamageType "Frost"
    DeathSound "absolutezero/explode"
    States
    {
    Spawn:
	ZPRJ A 1 Bright A_CustomMissile("BlizzardFX",0,frandom(21,-21),frandom(0,360))
	ZPRJ A 0 Bright A_SeekerMissile(2,3)
	ZPRJ A 0 Bright A_SpawnItemEx("ZeroKFX",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),0,32,0)
	ZPRJ A 1 Bright A_CustomMissile("BlizzardFX",0,frandom(21,-21),frandom(0,360))
	ZPRJ A 0 Bright A_SeekerMissile(2,3)
	ZPRJ A 0 Bright A_SpawnItemEx("ZeroKFX",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),0,32,0)
	ZPRJ A 1 Bright A_CustomMissile("BlizzardFX",0,frandom(21,-21),frandom(0,360))
	ZPRJ A 0 Bright A_SeekerMissile(2,3)
	ZPRJ A 0 Bright A_SpawnItemEx("ZeroKFX",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),0,32,0)
	ZPRJ B 1 Bright A_CustomMissile("BlizzardFX",0,frandom(21,-21),frandom(0,360))
	ZPRJ B 0 Bright A_SeekerMissile(2,3)
	ZPRJ B 0 Bright A_SpawnItemEx("ZeroKFX",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),0,32,0)
	ZPRJ B 1 Bright A_CustomMissile("BlizzardFX",0,frandom(21,-21),frandom(0,360))
	ZPRJ B 0 Bright A_SeekerMissile(2,3)
	ZPRJ B 0 Bright A_SpawnItemEx("ZeroKFX",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),0,32,0)
	ZPRJ B 1 Bright A_CustomMissile("BlizzardFX",0,frandom(21,-21),frandom(0,360))
	ZPRJ B 0 Bright A_SeekerMissile(2,3)
	ZPRJ B 0 Bright A_SpawnItemEx("ZeroKFX",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),0,32,0)
	ZPRJ C 1 Bright A_CustomMissile("BlizzardFX",0,frandom(21,-21),frandom(0,360))
	ZPRJ C 0 Bright A_SeekerMissile(2,3)
	ZPRJ C 0 Bright A_SpawnItemEx("ZeroKFX",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),0,32,0)
	ZPRJ C 1 Bright A_CustomMissile("BlizzardFX",0,frandom(21,-21),frandom(0,360))
	ZPRJ C 0 Bright A_SeekerMissile(2,3)
	ZPRJ C 0 Bright A_SpawnItemEx("ZeroKFX",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),0,32,0)
	ZPRJ C 1 Bright A_CustomMissile("BlizzardFX",0,frandom(21,-21),frandom(0,360))
	ZPRJ C 0 Bright A_SeekerMissile(2,3)
	ZPRJ C 0 Bright A_SpawnItemEx("ZeroKFX",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),0,32,0)
	ZPRJ D 1 Bright A_CustomMissile("BlizzardFX",0,frandom(21,-21),frandom(0,360))
	ZPRJ D 0 Bright A_SeekerMissile(2,3)
	ZPRJ D 0 Bright A_SpawnItemEx("ZeroKFX",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),0,32,0)
	ZPRJ D 1 Bright A_CustomMissile("BlizzardFX",0,frandom(21,-21),frandom(0,360))
	ZPRJ D 0 Bright A_SeekerMissile(2,3)
	ZPRJ D 0 Bright A_SpawnItemEx("ZeroKFX",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),0,32,0)
	ZPRJ D 1 Bright A_CustomMissile("BlizzardFX",0,frandom(21,-21),frandom(0,360))
	ZPRJ D 0 Bright A_SeekerMissile(2,3)
	ZPRJ D 0 Bright A_SpawnItemEx("ZeroKFX",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),0,32,0)
	ZPRJ E 1 Bright A_CustomMissile("BlizzardFX",0,frandom(21,-21),frandom(0,360))
	ZPRJ E 0 Bright A_SeekerMissile(2,3)
	ZPRJ E 0 Bright A_SpawnItemEx("ZeroKFX",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),0,32,0)
	ZPRJ E 1 Bright A_CustomMissile("BlizzardFX",0,frandom(21,-21),frandom(0,360))
	ZPRJ E 0 Bright A_SeekerMissile(2,3)
	ZPRJ E 0 Bright A_SpawnItemEx("ZeroKFX",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),0,32,0)
	ZPRJ E 1 Bright A_CustomMissile("BlizzardFX",0,frandom(21,-21),frandom(0,360))
	ZPRJ E 0 Bright A_SeekerMissile(2,3)
	ZPRJ E 0 Bright A_SpawnItemEx("ZeroKFX",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),0,32,0)
	ZPRJ F 1 Bright A_CustomMissile("BlizzardFX",0,frandom(21,-21),frandom(0,360))
	ZPRJ F 0 Bright A_SeekerMissile(2,3)
	ZPRJ F 0 Bright A_SpawnItemEx("ZeroKFX",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),0,32,0)
	ZPRJ F 1 Bright A_CustomMissile("BlizzardFX",0,frandom(21,-21),frandom(0,360))
	ZPRJ F 0 Bright A_SeekerMissile(2,3)
	ZPRJ F 0 Bright A_SpawnItemEx("ZeroKFX",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),0,32,0)
	ZPRJ F 1 Bright A_CustomMissile("BlizzardFX",0,frandom(21,-21),frandom(0,360))
	ZPRJ F 0 Bright A_SeekerMissile(2,3)
	ZPRJ F 0 Bright A_SpawnItemEx("ZeroKFX",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),0,32,0)
	ZPRJ G 1 Bright A_CustomMissile("BlizzardFX",0,frandom(21,-21),frandom(0,360))
	ZPRJ G 0 Bright A_SeekerMissile(2,3)
	ZPRJ G 0 Bright A_SpawnItemEx("ZeroKFX",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),0,32,0)
	ZPRJ G 1 Bright A_CustomMissile("BlizzardFX",0,frandom(21,-21),frandom(0,360))
	ZPRJ G 0 Bright A_SeekerMissile(2,3)
	ZPRJ G 0 Bright A_SpawnItemEx("ZeroKFX",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),0,32,0)
	ZPRJ G 1 Bright A_CustomMissile("BlizzardFX",0,frandom(21,-21),frandom(0,360))
	ZPRJ G 0 Bright A_SeekerMissile(2,3)
	ZPRJ G 0 Bright A_SpawnItemEx("ZeroKFX",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),0,32,0)
	ZPRJ H 1 Bright A_CustomMissile("BlizzardFX",0,frandom(21,-21),frandom(0,360))
	ZPRJ H 0 Bright A_SeekerMissile(2,3)
	ZPRJ H 0 Bright A_SpawnItemEx("ZeroKFX",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),0,32,0)
	ZPRJ H 1 Bright A_CustomMissile("BlizzardFX",0,frandom(21,-21),frandom(0,360))
	ZPRJ H 0 Bright A_SeekerMissile(2,3)
	ZPRJ H 0 Bright A_SpawnItemEx("ZeroKFX",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),0,32,0)
	ZPRJ H 1 Bright A_CustomMissile("BlizzardFX",0,frandom(21,-21),frandom(0,360))
	ZPRJ H 0 Bright A_SeekerMissile(2,3)
	ZPRJ H 0 Bright A_SpawnItemEx("ZeroKFX",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),0,32,0)
	ZPRJ I 1 Bright A_CustomMissile("BlizzardFX",0,frandom(21,-21),frandom(0,360))
	ZPRJ I 0 Bright A_SeekerMissile(2,3)
	ZPRJ I 0 Bright A_SpawnItemEx("ZeroKFX",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),0,32,0)
	ZPRJ I 1 Bright A_CustomMissile("BlizzardFX",0,frandom(21,-21),frandom(0,360))
	ZPRJ I 0 Bright A_SeekerMissile(2,3)
	ZPRJ I 0 Bright A_SpawnItemEx("ZeroKFX",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),0,32,0)
	ZPRJ I 1 Bright A_CustomMissile("BlizzardFX",0,frandom(21,-21),frandom(0,360))
	ZPRJ I 0 Bright A_SeekerMissile(2,3)
	ZPRJ I 0 Bright A_SpawnItemEx("ZeroKFX",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),0,32,0)
	ZPRJ J 1 Bright A_CustomMissile("BlizzardFX",0,frandom(21,-21),frandom(0,360))
	ZPRJ J 0 Bright A_SeekerMissile(2,3)
	ZPRJ J 0 Bright A_SpawnItemEx("ZeroKFX",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),0,32,0)
	ZPRJ J 1 Bright A_CustomMissile("BlizzardFX",0,frandom(21,-21),frandom(0,360))
	ZPRJ J 0 Bright A_SeekerMissile(2,3)
	ZPRJ J 0 Bright A_SpawnItemEx("ZeroKFX",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),0,32,0)
	ZPRJ J 1 Bright A_CustomMissile("BlizzardFX",0,frandom(21,-21),frandom(0,360))
	ZPRJ J 0 Bright A_SeekerMissile(2,3)
	ZPRJ J 0 Bright A_SpawnItemEx("ZeroKFX",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),0,32,0)
	ZPRJ K 1 Bright A_CustomMissile("BlizzardFX",0,frandom(21,-21),frandom(0,360))
	ZPRJ K 0 Bright A_SeekerMissile(2,3)
	ZPRJ K 0 Bright A_SpawnItemEx("ZeroKFX",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),0,32,0)
	ZPRJ K 1 Bright A_CustomMissile("BlizzardFX",0,frandom(21,-21),frandom(0,360))
	ZPRJ K 0 Bright A_SeekerMissile(2,3)
	ZPRJ K 0 Bright A_SpawnItemEx("ZeroKFX",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),0,32,0)
	ZPRJ K 1 Bright A_CustomMissile("BlizzardFX",0,frandom(21,-21),frandom(0,360))
	ZPRJ K 0 Bright A_SeekerMissile(2,3)
	ZPRJ K 0 Bright A_SpawnItemEx("ZeroKFX",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),0,32,0)
	ZPRJ L 1 Bright A_CustomMissile("BlizzardFX",0,frandom(21,-21),frandom(0,360))
	ZPRJ L 0 Bright A_SeekerMissile(2,3)
	ZPRJ L 0 Bright A_SpawnItemEx("ZeroKFX",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),0,32,0)
	ZPRJ L 1 Bright A_CustomMissile("BlizzardFX",0,frandom(21,-21),frandom(0,360))
	ZPRJ L 0 Bright A_SeekerMissile(2,3)
	ZPRJ L 0 Bright A_SpawnItemEx("ZeroKFX",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),0,32,0)
	ZPRJ L 1 Bright A_CustomMissile("BlizzardFX",0,frandom(21,-21),frandom(0,360))
	ZPRJ L 0 Bright A_SeekerMissile(2,3)
	ZPRJ L 0 Bright A_SpawnItemEx("ZeroKFX",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),0,32,0)
	Loop
    Death:
	TNT1 AAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ZeroKExplosionExtra",0,0,0,random(10,-10)/(3*1.05),random(10,-10)/(3*1.05),random(1,10)/(3*1.05),0,32)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,0,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,8,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,16,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,24,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,32,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,40,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,48,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,56,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,64,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,72,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,80,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,88,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,96,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,104,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,112,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,120,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,128,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,136,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,144,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,152,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,160,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,168,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,176,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,184,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,192,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,200,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,208,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,216,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,224,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,232,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,240,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,248,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,256,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,264,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,272,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,280,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,288,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,296,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,304,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,312,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,320,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,328,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,336,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,344,6,0)
	TNT1 A 0 A_CustomMissile("FrostLichZeroKEx",6,0,352,6,0)
	TNT1 A 0 A_Explode(10,256,0)
	ZEXP A 3 Bright A_FadeOut(0.05)
	TNT1 A 0 A_Explode(10,256,0)
	ZEXP B 3 Bright A_FadeOut(0.05)
	TNT1 A 0 A_Explode(10,256,0)
	ZEXP C 3 Bright A_FadeOut(0.05)
	TNT1 A 0 A_Explode(10,256,0)
	ZEXP D 3 Bright A_FadeOut(0.05)
	TNT1 A 0 A_Explode(10,256,0)
	ZEXP E 3 Bright A_FadeOut(0.05)
	TNT1 A 0 A_Explode(10,256,0)
	ZEXP F 3 Bright A_FadeOut(0.05)
	TNT1 A 0 A_Explode(10,256,0)
	ZEXP G 3 Bright A_FadeOut(0.05)
	TNT1 A 0 A_Explode(10,256,0)
	ZEXP H 3 Bright A_FadeOut(0.05)
	TNT1 A 0 A_Explode(10,256,0)
	ZEXP I 3 Bright A_FadeOut(0.05)
	TNT1 A 0 A_Explode(10,256,0)
	ZEXP J 3 Bright A_FadeOut(0.05)
	ZEXP J 1 Bright A_FadeOut
	Wait
    }
}

ACTOR FrostLichZeroKFast : FrostLichZeroK
{
    Speed 30
}

ACTOR FrostLichZeroKEx
{
    PROJECTILE
    -ACTIVATEPCROSS
    +RIPPER
    +NODAMAGETHRUST
    +BLOODLESSIMPACT
    Damage (random(1,2))
    Mass 1
    Speed 7
    Radius 2
    Height 2
    DamageType "Ice"
    RenderStyle Add
    Alpha 0.6
    Scale 0.6
    States
    {
    Spawn:
	X033 ABCD 2 Bright A_FadeOut(0.02)
	TNT1 A 0 A_ScaleVelocity(0.9)
	X033 EFGH 2 Bright A_FadeOut(0.02)
	TNT1 A 0 A_ScaleVelocity(0.75)
	X033 IJKL 2 Bright A_FadeOut(0.02)
	TNT1 A 0 A_ScaleVelocity(0.6)
	X033 MNOP 2 Bright A_FadeOut(0.02)
	TNT1 A 0 A_ScaleVelocity(0.6)
	X033 QR 2 Bright A_FadeOut(0.05)
	Wait
    Death:
	TNT1 A 1
	Stop 
    }
}

ACTOR FrostLichZeroKExFast : FrostLichZeroKEx
{
    Speed 10
}

//----------------------------------------------------------

ACTOR WraithGhost : Wraith 7105
{
    Tag "Reiver Ghost"
    SpawnID 156
    Damage 3
    Speed 6
    Radius 24
    Alpha 0.75
    RenderStyle Add
    HitObituary "%o had %p soul devoured by a reiver ghost"
    Obituary "%o was charred by a reiver ghost"
    PainChance "Curse", 0
    PainChance "Slowed", 0
    PainChance "Pod", 0
    PainChance "LifeDrain", 0
    PainChance "GManaDrain", 0
    PainChance "PGauntlets", 0
    PainChance "ManaDrain", 0
    PainChance "HellRain", 160
    PainChance "Charm", 0
    DamageFactor "Curse", 0
    DamageFactor "Slowed", 0
    DamageFactor "Pod", 0
    DamageFactor "Sacred", 1.75
    DamageFactor "Holy", 1.5
    DamageFactor "Consecrate", 1.3
    DamageFactor "Hellrain", 1.3
    DamageFactor "Electric", 1.5
    DamageFactor "Iron", 1.1
    DamageType "WraithGhost"
    MeleeRange 88
    +GHOST
    +NOICEDEATH
    +DONTFALL
    +NOBLOOD
    +NOTARGET
    +NEVERFAST
    -COUNTKILL
    States
    {
    Pain.LifeDrain:
    Pain.GManaDrain:
    Pain.ManaDrain:
    Pain.Charm:
    Pain.HoldSpell:
    Pain:
	WRTH A 2 Light ("RedMediumPoint3")
	WRTH H 6 Light ("RedMediumPoint3") A_Pain
	Goto See
    Spawn:
	WRTH A 10 Light ("RedMediumPoint3")
	WRTH B 5 Light ("RedMediumPoint3")// A_WraithInit
	Goto Look
    Look:
	WRTH AB 15 Light ("RedMediumPoint3") A_Look
	Loop
    See:
	WRTH A 2 Light ("RedMediumPoint3") A_WraithChase
	WRTH A 2 Light ("RedMediumPoint3") A_VileChase
    	WRTH B 2 Light ("RedMediumPoint3") A_WraithChase
	WRTH B 2 Light ("RedMediumPoint3") A_VileChase
    	WRTH C 2 Light ("RedMediumPoint3") A_WraithChase
	WRTH C 2 Light ("RedMediumPoint3") A_VileChase
    	WRTH D 2 Light ("RedMediumPoint3") A_WraithChase
	WRTH D 2 Light ("RedMediumPoint3") A_VileChase
	Loop
    Melee:
	WRTH E 6 Light ("RedMediumPoint3") A_FaceTarget
	WRTH F 6 Light ("RedMediumPoint3") A_WraithFX3
	WRTH G 0 Light ("RedMediumPoint3") A_CustomMeleeAttack(1,"none","none","WraithGhost",1)
	WRTH G 6 Light ("RedMediumPoint3") A_WraithMelee
	Goto See
    Missile:
	WRTH E 6 Light ("RedMediumPoint3") A_FaceTarget
	WRTH F 6 Light ("RedMediumPoint3")
	WRTH G 0 Light ("RedMediumPoint3") A_Jump(128,1,2)
	WRTH G 6 Light ("RedMediumPoint3") A_CustomMissile("WraithGhostFX", 32, 0)
	Goto See
	WRTH G 6 Light ("RedMediumPoint3") A_SkullAttack(30)
	WRTH G 2 Light ("RedMediumPoint3")
	Goto Missile+5
    Heal:
	TNT1 A 0 A_SpawnItemEx("ResurrectionFlame",16,0,0,0,0,0,32,0)
	TNT1 A 0 A_JumpIf(4 == ACS_ExecuteWithResult(803,0,0,0,0),5)
	TNT1 A 0 A_JumpIf(5 == ACS_ExecuteWithResult(803,0,0,0,0),5)
	WRTH EF 6 Light ("RedMediumPoint3")
	WRTH G 1 Light ("RedMediumPoint3") A_FadeOut(0.06)
	Wait
	TNT1 A 0 A_JumpIfInventory("WGRaiseCheck",1,5)
	TNT1 A 0 A_JumpIfInventory("WGRaiseCheck",4,4)
	TNT1 A 0 A_GiveInventory("WGRaiseCheck",1)
	WRTH EF 6 Light ("RedMediumPoint3")
	Goto See
	TNT1 A 0
	Goto Heal+3
    XDeath:
	Stop
    Death.LifeDrain:
    Death.GManaDrain:
    Death.ManaDrain:
    Death:
	"####" "#" 2 Light ("RedMediumPoint3")
	TNT1 A 2 A_SpawnItemEx("WraithGhostExplode",0,0,32,0,0,0,0,32,0)
	Stop
    Ice:
	TNT1 A 0
	Goto Death
    Death.Frost:
	TNT1 A 0
	Goto Death
    }
}

ACTOR WraithGhostNin : WraithGhost
{
    Tag "Reiver Ghost"
    Health 240
    States
    {
    Pain.LifeDrain:
    Pain.GManaDrain:
    Pain.ManaDrain:
    Pain.Charm:
    Pain.HoldSpell:
    Pain:
	WRTH A 2 Light ("RedMediumPoint3")
	WRTH H 6 Light ("RedMediumPoint3") A_Pain
	Goto See
    Spawn:
	WRTH A 10 Light ("RedMediumPoint3")
	WRTH B 5 Light ("RedMediumPoint3")// A_WraithInit
	Goto Look
    Look:
	WRTH AB 15 Light ("RedMediumPoint3") A_Look
	Loop
    See:
	WRTH A 1 Light ("RedMediumPoint3") A_WraithChase
	WRTH A 2 Light ("RedMediumPoint3") A_VileChase
    	WRTH B 1 Light ("RedMediumPoint3") A_WraithChase
	WRTH B 2 Light ("RedMediumPoint3") A_VileChase
    	WRTH C 1 Light ("RedMediumPoint3") A_WraithChase
	WRTH C 2 Light ("RedMediumPoint3") A_VileChase
    	WRTH D 1 Light ("RedMediumPoint3") A_WraithChase
	WRTH D 2 Light ("RedMediumPoint3") A_VileChase
	Loop
    Melee:
	WRTH E 6 Light ("RedMediumPoint3") A_FaceTarget
	WRTH F 6 Light ("RedMediumPoint3") A_WraithFX3
	WRTH G 0 Light ("RedMediumPoint3") A_CustomMeleeAttack(1,"none","none","WraithGhost",1)
	WRTH G 6 Light ("RedMediumPoint3") A_WraithMelee
	Goto See
    Missile:
	WRTH E 6 Light ("RedMediumPoint3") A_FaceTarget
	WRTH F 6 Light ("RedMediumPoint3")
	WRTH G 0 Light ("RedMediumPoint3") A_Jump(100,1,2)
	WRTH G 6 Light ("RedMediumPoint3") A_CustomMissile("WraithGhostFXFast", 32, 0)
	Goto See
	WRTH G 6 Light ("RedMediumPoint3") A_SkullAttack(45)
	WRTH G 2 Light ("RedMediumPoint3")
	Goto Missile+5
    Heal:
	TNT1 A 0 A_SpawnItemEx("ResurrectionFlame",16,0,0,0,0,0,32,0)
	TNT1 A 0 A_JumpIf(4 == ACS_ExecuteWithResult(803,0,0,0,0),5)
	TNT1 A 0 A_JumpIf(5 == ACS_ExecuteWithResult(803,0,0,0,0),5)
	WRTH EF 6 Light ("RedMediumPoint3")
	WRTH G 1 Light ("RedMediumPoint3") A_FadeOut(0.06)
	Wait
	TNT1 A 0 A_JumpIfInventory("WGRaiseCheck",1,5)
	TNT1 A 0 A_JumpIfInventory("WGRaiseCheck",4,4)
	TNT1 A 0 A_GiveInventory("WGRaiseCheck",1)
	WRTH EF 6 Light ("RedMediumPoint3")
	Goto See
	TNT1 A 0
	Goto Heal+3
    XDeath:
	Stop
    Death.LifeDrain:
    Death.GManaDrain:
    Death.ManaDrain:
    Death:
	"####" "#" 2 Light ("RedMediumPoint3")
	TNT1 A 2 A_SpawnItemEx("WraithGhostExplode",0,0,32,0,0,0,0,32,0)
	Stop
    Ice:
	TNT1 A 0
	Goto Death
    Death.Frost:
	TNT1 A 0
	Goto Death
    }
}

ACTOR WraithGhostExplode
{
    +NOINTERACTION
    RenderStyle Add
    States
    {
    Spawn:
	XPL1 ABCDEF 4 Bright
	Stop
    }
}
ACTOR WraithGhostFX : WraithFX1
{
    -ACTIVATEPCROSS
    +MTHRUSPECIES
}

ACTOR WraithGhostFXFast : WraithGhostFX
{
    Speed 27
}

ACTOR ResurrectionFlame
{
    Height 78
    +NOBLOCKMAP
    +NOGRAVITY
    +FLOORHUGGER
    RenderStyle Add
    Alpha 0.65
    States
    {
    Spawn:
	TNT1 A 0
	TNT1 A 0 A_PlaySound("ResurrectFire")
	FIRE ABCDEFGH 2 Bright
	TNT1 A 20
	Stop
    }
}

ACTOR WGRaiseCheck : Inventory
{
    Inventory.Amount 1
    Inventory.MaxAmount 4
}

ACTOR WGBCheck : Inventory
{
    Inventory.Amount 1
    Inventory.MaxAmount 1
}

ACTOR PowerHalfProtection : PowerProtection
{
    DamageFactor "Normal", 2
}

ACTOR PowerHalfDamage : PowerDamage
{
    DamageFactor "Normal", 0.5
}

ACTOR Cursed1 : PowerupGiver
{
    -INVENTORY.INVBAR
    +INVENTORY.AUTOACTIVATE
    Inventory.MaxAmount 0
//    Powerup.Color "Red2" 0.3
    Powerup.Type "HalfProtection"
    Powerup.Duration 280
}

ACTOR Cursed2 : PowerupGiver
{
    -INVENTORY.INVBAR
    +INVENTORY.AUTOACTIVATE
    Inventory.MaxAmount 0
    Powerup.Type "HalfDamage"
    Powerup.Duration 280
}

ACTOR Cursed1NM : PowerupGiver
{
    -INVENTORY.INVBAR
    +INVENTORY.AUTOACTIVATE
    Inventory.MaxAmount 0
//    Powerup.Color "Red2" 0.3
    Powerup.Type "HalfProtection"
    Powerup.Duration 420
}

ACTOR Cursed2NM : PowerupGiver
{
    -INVENTORY.INVBAR
    +INVENTORY.AUTOACTIVATE
    Inventory.MaxAmount 0
    Powerup.Type "HalfDamage"
    Powerup.Duration 420
}

//----------------------------------------------------------

ACTOR SkullWizard : Disciple 7107
{
    Tag "Skull Wizard"
    SpawnID 158
    Health 750
    Radius 18
    Height 68
    Mass 500
    Speed 8
    DropItem ManaSpawner
    DropItem ManaSpawner 40
    DropItem ArtiHealth 25
    DropItem CharmSpell 8
    DropItem TomeOfPower 4
    Species "DSparil"
    PainChance 50
    PainChance "LifeDrain", 224
    PainChance "PGauntlets", 224
    PainChance "GManaDrain", 224
    PainChance "ManaDrain", 224
    PainChance "HellRain", 192
    PainChance "Charm", 256
    PainChance "CE", 256
    DamageFactor "Sacred", 1.5
    DamageFactor "Holy", 1.3
    DamageFactor "Consecrate", 1.2
    DamageFactor "Hellrain", 1.2
    DamageFactor "Serpent", 0.8
    DamageFactor "Electric", 1.25
    MONSTER
    Scale 1.15
    +MISSILEEVENMORE
    +MISSILEMORE  
    +FLOORCLIP
    -FRIGHTENED
    -NORADIUSDMG
    -NOBLOOD
    +DONTSPLASH
    +FLOAT
    +DONTMORPH
    +NOGRAVITY
    +NEVERFAST
    +NODAMAGETHRUST
    Obituary "%o succumbed to the skull wizard's magic"
    SeeSound "skullwizard/active"
    PainSound "skullwizard/pain"
    ActiveSound "skullwizard/active"
    AttackSound "h2necromancer/boneshot"
    DeathSound"skullwizard/death"
    MeleeDamage 5
    States
    {
    Spawn:
	SKWZ A 10 A_Look
	Loop
    See:
	SKWZ AAABBBAAABBB 2 A_Chase
	SKWZ A 0 A_SentinelBob
	Loop
    Missile:
	SKWZ A 0 A_Jump(64,"Teleport")
	TNT1 A 0 A_PlaySound("castspell/fire")
	SKWZ ADE 3 Bright A_FaceTarget
	SKWZ F 8 Bright A_CustomMissile("SkullWizardSpell",36,0,frandom(-5,5))
	SKWZ E 4 Bright A_FaceTarget
	SKWZ F 8 Bright A_CustomMissile("SkullWizardSpell",36,0,frandom(-5,5))
	SKWZ E 4 Bright A_FaceTarget
	SKWZ F 8 Bright A_CustomMissile("SkullWizardSpell",36,0,frandom(-5,5))
	SKWZ E 4 Bright A_FaceTarget
	SKWZ F 8 Bright A_CustomMissile("SkullWizardSpell",36,0,frandom(-5,5))
	SKWZ F 0 A_Jump(96,1)
	Goto Missile+10
	SKWZ A 3 A_FaceTarget
	Goto See
    Teleport:
	TNT1 A 0 A_UnSetShootable
	TNT1 A 0 A_PlaySound("skullwizard/teleport")
	SKWZ A 4 A_FaceTarget
	SKWZ A 1 A_SetTranslucent(0.8)
	SKWZ A 1 A_SetTranslucent(0.7)
	SKWZ D 1 A_SetTranslucent(0.6)
	SKWZ D 1 A_SetTranslucent(0.5)
	SKWZ D 1 A_SetTranslucent(0.4)
	SKWZ E 1 A_SetTranslucent(0.3)
	SKWZ E 1 A_SetTranslucent(0.2)
	SKWZ E 1 A_SetTranslucent(0.1)
	SKWZ E 1 A_FadeOut(0.1,0)
	SKWZ E 0 A_ChangeFlag("INVISIBLE",1)
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 1 A_Wander
	TNT1 A 1 A_SentinelBob
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 1 A_Wander
	TNT1 A 1 A_SentinelBob
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 1 A_Wander
	TNT1 A 1 A_SentinelBob
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 1 A_Wander
	TNT1 A 0 A_FaceTarget
	SKWZ E 0 A_ChangeFlag("INVISIBLE",0)
	SKWZ E 1 A_SetTranslucent(0.1)
  	SKWZ E 1 A_SetTranslucent(0.2)
	SKWZ E 1 A_SetTranslucent(0.3)
	SKWZ D 1 A_SetTranslucent(0.4)
	SKWZ D 1 A_SetTranslucent(0.5)
	SKWZ D 1 A_SetTranslucent(0.6)
	SKWZ A 1 A_SetTranslucent(0.7)
	SKWZ A 1 A_SetTranslucent(0.8)
	SKWZ A 1 A_SetTranslucent(1)
	SKWZ A 4 A_FaceTarget
	SKWZ A 0 A_SetShootable
	SKWZ A 0 A_JumpIfInventory("PowerHalfProtection",1,1)
	Goto See
	SKWZ A 0 A_GiveInventory("MalisonGiver1",1)
	Goto See
    Pain:
        SKWZ C 4
        SKWZ C 4 A_Pain
	TNT1 A 0 A_Jump(90,"Teleport")
        Goto See
    Pain.HoldSpell:
	"####" "#" 0 A_SetTranslucent(1,0)
	"####" "#" 0 A_ChangeFlag("GHOST",0)
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_ChangeFlag("FLOAT",0)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("FLOAT",1)
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.LifeDrain:
	SKWZ C 4 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	SKWZ C 4 A_Pain
	Goto See
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	SKWZ C 4 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	SKWZ C 4 A_Pain
	Goto See
    Pain.ManaDrain:
	SKWZ C 4 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	SKWZ C 4 A_Pain
	Goto See
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.CE:
	TNT1 A 0 A_JumpIfInventory("DeadThing",1,1)
	Goto Pain
	TNT1 A 0 A_TakeFromTarget("RedeemedSoul",1)
	TNT1 A 0 A_PlaySound("weapons/redeemer/corpseexplode")
	TNT1 A 0 A_SpawnItemEx("CEGibSpawner",0,0,12,0,0,0,0,32,0)
	TNT1 A 0 A_Explode(random(680,720),128,0,0,128,0,0,"NoPuff","Player")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	Stop
    Pain.OKnight:
    Pain.NecroShot:
	TNT1 A 0 A_GiveToTarget("Health",random(40,60))
	Goto Pain
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Death:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	SKWZ G 6 Bright A_SetTranslucent(1)
	SKWZ H 6 Bright A_Scream
	SKWZ I 5 Bright A_NoBlocking
	SKWZ J 5 Bright A_Explode(random[BishopBoom](50,90))
	SKWZ K 5 Bright
	SKWZ LM 4 Bright
	SKWZ N 4 A_SpawnItemEx("BishopPuff", 0,0,40, 0,0,0.5)
	SKWZ O 4
	SKWZ P -1
	Stop
    Death.Redeemer:
	SKWZ G 0 A_PlaySound("weapons/redeemer/soulredeemed")
	SKWZ G 0 A_GiveToTarget("RedeemedSoul", 1)
	SKWZ G 0 A_GiveToTarget("RestoreHealth",random(7,11))
	SKWZ GGGGGGGGGGGGGGGG 0 A_SpawnItemEx("SoulFragment",frandom(-4,4),frandom(-4,4),frandom(8,32),frandom(0.6,1.4),frandom(0.6,1.4),frandom(0.8,2.0),random(0,360),128)
	Goto Death
    Death.Mojo:
	TNT1 A 0 A_GiveToTarget("Mojo",random(8,12))
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(8,12))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,48,0,0,0,0,32,0)
	Goto Death
    Death.MojoActive:
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.Defile:
	TNT1 A 0 A_SpawnItemEx("DefileSpawner",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.Frost:
	"####" "#" 2
	SKWZ G 1 A_IceGuyDie
	Stop
    Ice:
	"####" "#" 2
	SKWZ G 1 A_IceGuyDie
	Stop
    Raise:
	SKWZ ONML 4
	SKWZ KJI 5
	SKWZ HG 6
	TNT1 A 0 A_TakeInventory("DeadThing",1)
	Goto See
    }
}

ACTOR SkullWizardNin : SkullWizard
{
    Tag "Skull Wizard"
    Health 860
}

ACTOR SkullWizardSpell
{
    PROJECTILE
    -ACTIVATEPCROSS
    +SEEKERMISSILE
    Speed 18
    Damage 4
    Radius 10
    Height 15
    RenderStyle Add
    Scale 0.3
    SeeSound "skullwizard/castspell"
    DeathSound "skullwizard/spell/explode"
    States
    {
    Spawn:
	IFX1 A 1 Bright A_SpawnItemEx("SkullSpellTrail2",0,0,0,0,random(2,-2),random(2,-2),0,0)
	TNT1 A 0 A_Weave(frandom(1.0,3.0),0,frandom(1.0,3.0),0)
	IFX1 A 1 Bright A_SpawnItemEx("SkullSpellTrail2",0,0,0,0,random(2,-2),random(2,-2),0,0)
	TNT1 A 0 A_Weave(frandom(1.0,3.0),0,frandom(1.0,3.0),0)
	TNT1 A 0 A_SeekerMissile(3,3,2)
	TNT1 A 0 A_SpawnItemEx("SkullSpellTrail1",0,0,0,0,random(2,-2),random(2,-2),0,0)
	IFX1 B 1 Bright A_SpawnItemEx("SkullSpellTrail2",0,0,0,0,random(2,-2),random(2,-2),0,0)
	TNT1 A 0 A_Weave(frandom(1.0,3.0),0,frandom(1.0,3.0),0)
	IFX1 B 1 Bright A_SpawnItemEx("SkullSpellTrail2",0,0,0,0,random(2,-2),random(2,-2),0,0)
	TNT1 A 0 A_Weave(frandom(1.0,3.0),0,frandom(1.0,3.0),0)
	TNT1 A 0 A_SeekerMissile(3,3,2)
	TNT1 A 0 A_SpawnItemEx("SkullSpellTrail1",0,0,0,0,random(2,-2),random(2,-2),0,0)
	Loop
    Death:
	TNT1 A 0 A_Explode(15,80,0)
	TNT1 A 0 A_SpawnItemEx("SkullSpellExplode",0,0,0,0,0,0,0,0)
	TNT1 AAAAAA 0 A_SpawnItemEx("SkullSpellExpFX",0,0,0,random(2,-2),random(2,-2),random(2,-2),0,0)
	IFX1 IJKL 4 Bright
	Stop
    }
}

ACTOR SkullWizardSpellFast : SkullWizardSpell
{
    Speed 27
}

ACTOR SkullSpellTrail1
{
    +NOINTERACTION
    Scale 0.35
    States
    {
    Spawn:
	TNT1 A 0
	TNT1 A 0 A_SetTranslucent(0.45)
	VAPB ABCDEFGHI 3 Bright A_FadeOut(0.06)
	Wait
    }
}

ACTOR SkullSpellTrail2
{
    PROJECTILE
    -ACTIVATEPCROSS
    +NOCLIP
    Speed 0
    RenderStyle Add
    Alpha 0.6
    Scale 0.5
    States
    {
    Spawn:
	IFX1 CDEFGH 2 Bright
	Stop
    }
}

Actor SkullSpellExpFX : SkullSpellTrail1
{
    Scale 0.6
}

Actor SkullSpellExplode
{
    PROJECTILE
    -ACTIVATEPCROSS
    +NOCLIP
    Speed 0
    RenderStyle Add
    Scale 0.6
    States
    {
    Spawn:
	FX52 ABCDEFGHIJKLMN 2 Bright A_FadeOut(0.06)
	Stop
    }
}

ACTOR SkullWizardF : SkullWizard
{
    Tag "Skull Wizard"
    +NOTIMEFREEZE
    +FRIENDLY
    +NOICEDEATH
    +DONTDRAIN
    DropItem "None"
    DamageFactor "Redeemer", 0
    States
    {
    Spawn:
	SKWZ A 0
	SKWZ A 0 Thing_ChangeTID(0,321)
	SKWZ A 2 A_Look
	SKWZ A 0 A_GiveInventory("DiscipleSummonCheck",1)
	SKWZ A 0 A_JumpIfInventory("DiscipleSummonCheck",650,"Death")
	Goto Spawn+2
    See:
	SKWZ A 2 A_Chase
	SKWZ A 0 A_GiveInventory("DiscipleSummonCheck",1)
	SKWZ A 0 A_JumpIfInventory("DiscipleSummonCheck",650,"Death")
	SKWZ A 2 A_Chase
	SKWZ A 0 A_GiveInventory("DiscipleSummonCheck",1)
	SKWZ A 0 A_JumpIfInventory("DiscipleSummonCheck",650,"Death")
	SKWZ A 2 A_Chase
	SKWZ A 0 A_GiveInventory("DiscipleSummonCheck",1)
	SKWZ A 0 A_JumpIfInventory("DiscipleSummonCheck",650,"Death")
	SKWZ B 2 A_Chase
	SKWZ A 0 A_GiveInventory("DiscipleSummonCheck",1)
	SKWZ A 0 A_JumpIfInventory("DiscipleSummonCheck",650,"Death")
	SKWZ B 2 A_Chase
	SKWZ A 0 A_GiveInventory("DiscipleSummonCheck",1)
	SKWZ A 0 A_JumpIfInventory("DiscipleSummonCheck",650,"Death")
	SKWZ B 2 A_Chase
	SKWZ A 0 A_GiveInventory("DiscipleSummonCheck",1)
	SKWZ A 0 A_JumpIfInventory("DiscipleSummonCheck",650,"Death")
	SKWZ A 2 A_Chase
	SKWZ A 0 A_GiveInventory("DiscipleSummonCheck",1)
	SKWZ A 0 A_JumpIfInventory("DiscipleSummonCheck",650,"Death")
	SKWZ A 2 A_Chase
	SKWZ A 0 A_GiveInventory("DiscipleSummonCheck",1)
	SKWZ A 0 A_JumpIfInventory("DiscipleSummonCheck",650,"Death")
	SKWZ A 2 A_Chase
	SKWZ A 0 A_GiveInventory("DiscipleSummonCheck",1)
	SKWZ A 0 A_JumpIfInventory("DiscipleSummonCheck",650,"Death")
	SKWZ B 2 A_Chase
	SKWZ A 0 A_GiveInventory("DiscipleSummonCheck",1)
	SKWZ A 0 A_JumpIfInventory("DiscipleSummonCheck",650,"Death")
	SKWZ B 2 A_Chase
	SKWZ A 0 A_GiveInventory("DiscipleSummonCheck",1)
	SKWZ A 0 A_JumpIfInventory("DiscipleSummonCheck",650,"Death")
	SKWZ B 2 A_Chase
	SKWZ A 0 A_GiveInventory("DiscipleSummonCheck",1)
	SKWZ A 0 A_JumpIfInventory("DiscipleSummonCheck",650,"Death")
	SKWZ B 0 A_SentinelBob
	Loop
    Missile:
	SKWZ A 0 A_Jump(64,"Teleport")
	SKWZ A 0 A_GiveInventory("DiscipleSummonCheck",1)
	SKWZ A 0 A_JumpIfInventory("DiscipleSummonCheck",650,"Death")
	TNT1 A 0 A_PlaySound("castspell/fire")
	SKWZ ADE 3 Bright A_FaceTarget
	SKWZ A 0 A_GiveInventory("DiscipleSummonCheck",1)
	SKWZ A 0 A_JumpIfInventory("DiscipleSummonCheck",650,"Death")
	SKWZ F 8 Bright A_CustomMissile("SkullWizardSpell",36,0,frandom(-5,5))
	SKWZ E 4 Bright A_FaceTarget
	SKWZ A 0 A_GiveInventory("DiscipleSummonCheck",1)
	SKWZ A 0 A_JumpIfInventory("DiscipleSummonCheck",650,"Death")
	SKWZ F 8 Bright A_CustomMissile("SkullWizardSpell",36,0,frandom(-5,5))
	SKWZ E 4 Bright A_FaceTarget
	SKWZ A 0 A_GiveInventory("DiscipleSummonCheck",1)
	SKWZ A 0 A_JumpIfInventory("DiscipleSummonCheck",650,"Death")
	SKWZ F 8 Bright A_CustomMissile("SkullWizardSpell",36,0,frandom(-5,5))
	SKWZ E 4 Bright A_FaceTarget
	SKWZ A 0 A_GiveInventory("DiscipleSummonCheck",1)
	SKWZ A 0 A_JumpIfInventory("DiscipleSummonCheck",650,"Death")
	SKWZ F 8 Bright A_CustomMissile("SkullWizardSpell",36,0,frandom(-5,5))
	SKWZ F 0 A_Jump(96,1)
	Goto Missile+18
	SKWZ A 3 A_FaceTarget
	Goto See
    Teleport:
	TNT1 A 0 A_UnSetShootable
	TNT1 A 0 A_PlaySound("skullwizard/teleport")
	SKWZ A 4 A_FaceTarget
	SKWZ A 1 A_SetTranslucent(0.8)
	SKWZ A 1 A_SetTranslucent(0.7)
	SKWZ D 1 A_SetTranslucent(0.6)
	SKWZ D 1 A_SetTranslucent(0.5)
	SKWZ D 1 A_SetTranslucent(0.4)
	SKWZ E 1 A_SetTranslucent(0.3)
	SKWZ E 1 A_SetTranslucent(0.2)
	SKWZ E 1 A_SetTranslucent(0.1)
	SKWZ E 1 A_FadeOut(0.1,0)
	TNT1 A 0 A_GiveInventory("DiscipleSummonCheck",1)
	TNT1 A 0 A_JumpIfInventory("DiscipleSummonCheck",650,"Death")
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 1 A_Wander
	TNT1 A 1 A_SentinelBob
	TNT1 A 0 A_GiveInventory("DiscipleSummonCheck",1)
	TNT1 A 0 A_JumpIfInventory("DiscipleSummonCheck",650,"Death")
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 1 A_Wander
	TNT1 A 1 A_SentinelBob
	TNT1 A 0 A_GiveInventory("DiscipleSummonCheck",1)
	TNT1 A 0 A_JumpIfInventory("DiscipleSummonCheck",650,"Death")
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 1 A_Wander
	TNT1 A 1 A_SentinelBob
	TNT1 A 0 A_GiveInventory("DiscipleSummonCheck",1)
	TNT1 A 0 A_JumpIfInventory("DiscipleSummonCheck",650,"Death")
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 1 A_Wander
	TNT1 A 0 A_FaceTarget
	SKWZ E 1 A_SetTranslucent(0.1)
  	SKWZ E 1 A_SetTranslucent(0.2)
	SKWZ E 1 A_SetTranslucent(0.3)
	SKWZ D 1 A_SetTranslucent(0.4)
	SKWZ D 1 A_SetTranslucent(0.5)
	SKWZ D 1 A_SetTranslucent(0.6)
	SKWZ A 1 A_SetTranslucent(0.7)
	SKWZ A 1 A_SetTranslucent(0.8)
	SKWZ A 1 A_SetTranslucent(1)
	SKWZ A 4 A_FaceTarget
	TNT1 A 0 A_SetShootable
	Goto See
    Pain.LifeDrain:
    Pain.GManaDrain:
    Pain.ManaDrain:
    Pain:
	SKWZ C 0 A_GiveInventory("DiscipleSummonCheck",2)
	SKWZ C 0 A_JumpIfInventory("DiscipleSummonCheck",650,"Death")
        SKWZ C 4
        SKWZ C 4 A_Pain
	TNT1 A 0 A_Jump(90,"Teleport")
        Goto See
    Pain.Madness:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",0)
	TNT1 A 0 A_ClearTarget
	Goto Spawn
    Death.LifeDrain:
    Death.GManaDrain:
    Death.ManaDrain:
    Death:
	SKWZ G 6 A_Die
	SKWZ H 6 Bright A_Scream
	SKWZ I 5 Bright A_NoBlocking
	SKWZ J 5 Bright A_Explode(random[BishopBoom](50,90))
	SKWZ K 5 Bright
	SKWZ LM 4 Bright
	SKWZ N 4 A_SpawnItemEx("BishopPuff", 0,0,40, 0,0,0.5)
	SKWZ O 4
	SKWZ P 105
	SKWZ P 1 A_FadeOut(0.025)
	Wait
    Death.Frost:
	SKWZ G 0
	Goto Death
    Ice:
	SKWZ G 0
	Goto Death
    Raise:
	Stop
    }
}

//----------------------------------------------------------

ACTOR ShadowWizard : SkullWizard 7108
{
    Tag "Shadow Wizard"
    SpawnID 168
    Health 1280
    Radius 18
    Height 68
    Mass 500
    Speed 10
    DropItem ManaSpawner
    DropItem ManaSpawner 128
    DropItem ManaSpawner 32
    DropItem Regeneration 25
    DropItem ShadowSphere 8
    DropItem HalfManaRing 4
    Species "DSparil"
    PainChance 50
    PainChance "LifeDrain", 224
    PainChance "PGauntlets", 224
    PainChance "GManaDrain", 224
    PainChance "ManaDrain", 224
    PainChance "HellRain", 192
    PainChance "Charm", 256
    PainChance "CE", 256
    DamageFactor "Sacred", 1.5
    DamageFactor "Holy", 1.3
    DamageFactor "Consecrate", 1.2
    DamageFactor "Hellrain", 1.2
    DamageFactor "Serpent", 0.8
    DamageFactor "Electric", 1.25
    DamageFactor "Iron", 0.9
    MONSTER
    Scale 1.2
    +MISSILEEVENMORE
    +MISSILEMORE  
    +FLOORCLIP
    -FRIGHTENED
    -NORADIUSDMG
    -NOBLOOD
    +DONTSPLASH
    +FLOAT
    +DONTMORPH
    +NOGRAVITY
    +NEVERFAST
    +NODAMAGETHRUST
    Obituary "%o was skull-duggeried"
    SeeSound "shadowwizard/active"
    PainSound "shadowwizard/pain"
    ActiveSound "shadowwizard/active"
    AttackSound "h2necromancer/boneshot"
    DeathSound"shadowwizard/death"
    MeleeDamage 5
    States
    {
    Spawn:
	SHWZ A 10 A_Look
	Loop
    See:
	SHWZ AAABBBAAABBB 2 A_Chase
	SHWZ A 0 A_SentinelBob
	Loop
    Missile:
	SHWZ A 0 A_Jump(64,"Teleport")
	TNT1 A 0 A_PlaySound("castspell/fire")
	SHWZ ADE 3 Bright A_FaceTarget
	SHWZ F 0 Bright A_Jump(128,3)
	SHWZ F 8 Bright A_CustomMissile("ShadowWizardSpell",36,0,frandom(-5,5))
	SHWZ F 0 Bright A_Jump(256,2)
	SHWZ F 8 Bright A_CustomMissile("ShadowWizardSpellInv",36,0,frandom(-5,5))
	SHWZ E 3 Bright A_FaceTarget
	SHWZ D 3 Bright A_FaceTarget
	SHWZ A 3 A_FaceTarget
	SHWZ D 3 Bright A_FaceTarget
	SHWZ E 3 Bright A_FaceTarget
	SHWZ F 0 Bright A_Jump(128,3)
	SHWZ F 8 Bright A_CustomMissile("ShadowWizardSpell",36,0,frandom(-5,5))
	SHWZ F 0 Bright A_Jump(256,2)
	SHWZ F 8 Bright A_CustomMissile("ShadowWizardSpellInv",36,0,frandom(-5,5))
	SHWZ E 3 Bright A_FaceTarget
	SHWZ D 3 Bright A_FaceTarget
	SHWZ F 0 A_Jump(128,1)
	Goto Missile+11
	SKWZ A 3 A_FaceTarget
	Goto See
    Teleport:
	TNT1 A 0 A_UnSetShootable
	TNT1 A 0 A_PlaySound("shadowwizard/teleport")
	SHWZ A 4 A_FaceTarget
	SHWZ A 1 A_SetTranslucent(0.8)
	SHWZ A 1 A_SetTranslucent(0.7)
	SHWZ D 1 A_SetTranslucent(0.6)
	SHWZ D 1 A_SetTranslucent(0.5)
	SHWZ D 1 A_SetTranslucent(0.4)
	SHWZ E 1 A_SetTranslucent(0.3)
	SHWZ E 1 A_SetTranslucent(0.2)
	SHWZ E 1 A_SetTranslucent(0.1)
	SHWZ E 1 A_FadeOut(0.1,0)
	SHWZ E 0 A_ChangeFlag("INVISIBLE",1)
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 1 A_Wander
	TNT1 A 1 A_SentinelBob
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 1 A_Wander
	TNT1 A 1 A_SentinelBob
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 1 A_Wander
	TNT1 A 1 A_SentinelBob
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 1 A_Wander
	TNT1 A 0 A_FaceTarget
	SHWZ E 0 A_ChangeFlag("INVISIBLE",0)
	SHWZ E 1 A_SetTranslucent(0.1)
  	SHWZ E 1 A_SetTranslucent(0.2)
	SHWZ E 1 A_SetTranslucent(0.3)
	SHWZ D 1 A_SetTranslucent(0.4)
	SHWZ D 1 A_SetTranslucent(0.5)
	SHWZ D 1 A_SetTranslucent(0.6)
	SHWZ A 1 A_SetTranslucent(0.7)
	SHWZ A 1 A_SetTranslucent(0.8)
	SHWZ A 1 A_SetTranslucent(1)
	SHWZ A 4 A_FaceTarget
	SHWZ A 0 A_SetShootable
	SHWZ A 0 A_JumpIfInventory("PowerHalfProtection",1,1)
	Goto See
	SKWZ A 0 A_GiveInventory("MalisonGiver1",1)
	Goto See
    Pain:
        SHWZ C 4
        SHWZ C 4 A_Pain
	TNT1 A 0 A_Jump(90,"Teleport")
        Goto See
    Pain.HoldSpell:
	"####" "#" 0 A_SetTranslucent(1,0)
	"####" "#" 0 A_ChangeFlag("GHOST",0)
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_ChangeFlag("FLOAT",0)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("FLOAT",1)
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.LifeDrain:
	SHWZ C 4 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	SHWZ C 4 A_Pain
	Goto See
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	SHWZ C 4 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	SHWZ C 4 A_Pain
	Goto See
    Pain.ManaDrain:
	SHWZ C 4 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	SHWZ C 4 A_Pain
	Goto See
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.CE:
	TNT1 A 0 A_JumpIfInventory("DeadThing",1,1)
	Goto Pain
	TNT1 A 0 A_TakeFromTarget("RedeemedSoul",1)
	TNT1 A 0 A_PlaySound("weapons/redeemer/corpseexplode")
	TNT1 A 0 A_SpawnItemEx("CEGibSpawner",0,0,12,0,0,0,0,32,0)
	TNT1 A 0 A_Explode(random(1160,1240),128,0,0,128,0,0,"NoPuff","Player")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	Stop
    Pain.OKnight:
    Pain.NecroShot:
	TNT1 A 0 A_GiveToTarget("Health",random(40,60))
	Goto Pain
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Death:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	SHWZ G 6 Bright A_SetTranslucent(1)
	SHWZ H 6 Bright A_Scream
	SHWZ I 5 Bright A_NoBlocking
	SHWZ J 5 Bright A_Explode(random[BishopBoom](50,90))
	SHWZ K 5 Bright
	SHWZ LM 4 Bright
	SHWZ N 4 A_SpawnItemEx("BishopPuff", 0,0,40, 0,0,0.5)
	SHWZ O 4
	SHWZ P -1
	Stop
    Death.Redeemer:
	SHWZ G 0 A_PlaySound("weapons/redeemer/soulredeemed")
	SHWZ G 0 A_GiveToTarget("RedeemedSoul", 1)
	SHWZ G 0 A_GiveToTarget("RestoreHealth",random(7,11))
	SHWZ GGGGGGGGGGGGGGGG 0 A_SpawnItemEx("SoulFragment",frandom(-4,4),frandom(-4,4),frandom(8,32),frandom(0.6,1.4),frandom(0.6,1.4),frandom(0.8,2.0),random(0,360),128)
	Goto Death
    Death.Mojo:
	TNT1 A 0 A_GiveToTarget("Mojo",random(8,12))
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(8,12))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,48,0,0,0,0,32,0)
	Goto Death
    Death.MojoActive:
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.Defile:
	TNT1 A 0 A_SpawnItemEx("DefileSpawner",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.Frost:
	"####" "#" 2
	SHWZ G 1 A_IceGuyDie
	Stop
    Ice:
	"####" "#" 2
	SHWZ G 1 A_IceGuyDie
	Stop
    Raise:
	SHWZ ONML 4
	SHWZ KJI 5
	SHWZ HG 6
	TNT1 A 0 A_TakeInventory("DeadThing",1)
	Goto See
    }
}

ACTOR ShadowWizardNin : ShadowWizard
{
    Tag "Shadow Wizard"
    Health 1440
    States
    {
    See:
	SHWZ AA 2 A_Chase
	SHWZ A 1 A_Chase
	SHWZ BB 2 A_Chase
	SHWZ B 1 A_Chase
	SHWZ AA 2 A_Chase
	SHWZ A 1 A_Chase
	SHWZ BB 2 A_Chase
	SHWZ B 1 A_Chase
	SHWZ A 0 A_SentinelBob
	Loop
    Missile:
	SHWZ A 0 A_Jump(64,"Teleport")
	TNT1 A 0 A_PlaySound("castspell/fire")
	SHWZ ADE 3 Bright A_FaceTarget
	SHWZ F 0 Bright A_Jump(128,3)
	SHWZ F 8 Bright A_CustomMissile("ShadowWizardSpell",36,0,frandom(-5,5))
	SHWZ F 0 Bright A_Jump(256,2)
	SHWZ F 8 Bright A_CustomMissile("ShadowWizardSpellInv",36,0,frandom(-5,5))
	SHWZ E 2 Bright A_FaceTarget
	SHWZ D 3 Bright A_FaceTarget
	SHWZ A 3 A_FaceTarget
	SHWZ D 3 Bright A_FaceTarget
	SHWZ E 2 Bright A_FaceTarget
	SHWZ F 0 Bright A_Jump(128,3)
	SHWZ F 8 Bright A_CustomMissile("ShadowWizardSpell",36,0,frandom(-5,5))
	SHWZ F 0 Bright A_Jump(256,2)
	SHWZ F 8 Bright A_CustomMissile("ShadowWizardSpellInv",36,0,frandom(-5,5))
	SHWZ E 2 Bright A_FaceTarget
	SHWZ D 3 Bright A_FaceTarget
	SHWZ F 0 A_Jump(96,1)
	Goto Missile+11
	SKWZ A 3 A_FaceTarget
	Goto See
    Teleport:
	TNT1 A 0 A_UnSetShootable
	TNT1 A 0 A_PlaySound("shadowwizard/teleport")
	SHWZ A 4 A_FaceTarget
	SHWZ A 1 A_SetTranslucent(0.8)
	SHWZ A 1 A_SetTranslucent(0.7)
	SHWZ D 1 A_SetTranslucent(0.6)
	SHWZ D 1 A_SetTranslucent(0.5)
	SHWZ D 1 A_SetTranslucent(0.4)
	SHWZ E 1 A_SetTranslucent(0.3)
	SHWZ E 1 A_SetTranslucent(0.2)
	SHWZ E 1 A_SetTranslucent(0.1)
	SHWZ E 1 A_FadeOut(0.1,0)
	SHWZ E 0 A_ChangeFlag("INVISIBLE",1)
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 1 A_Wander
	TNT1 A 1 A_SentinelBob
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 1 A_Wander
	TNT1 A 1 A_SentinelBob
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 1 A_Wander
	TNT1 A 1 A_SentinelBob
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 1 A_Wander
	TNT1 A 0 A_FaceTarget
	SHWZ E 0 A_ChangeFlag("INVISIBLE",0)
	SHWZ E 1 A_SetTranslucent(0.1)
  	SHWZ E 1 A_SetTranslucent(0.2)
	SHWZ E 1 A_SetTranslucent(0.3)
	SHWZ D 1 A_SetTranslucent(0.4)
	SHWZ D 1 A_SetTranslucent(0.5)
	SHWZ D 1 A_SetTranslucent(0.6)
	SHWZ A 1 A_SetTranslucent(0.7)
	SHWZ A 1 A_SetTranslucent(0.8)
	SHWZ A 1 A_SetTranslucent(1)
	SHWZ A 4 A_FaceTarget
	SHWZ A 0 A_SetShootable
	SHWZ A 0 A_JumpIfInventory("PowerHalfProtection",1,1)
	Goto See
	SKWZ A 0 A_GiveInventory("MalisonGiver1",1)
	Goto See
    Pain:
        SHWZ C 4
        SHWZ C 4 A_Pain
	TNT1 A 0 A_Jump(90,"Teleport")
        Goto See
    Pain.HoldSpell:
	"####" "#" 0 A_SetTranslucent(1,0)
	"####" "#" 0 A_ChangeFlag("GHOST",0)
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_ChangeFlag("FLOAT",0)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("FLOAT",1)
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.LifeDrain:
	SHWZ C 4 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	SHWZ C 4 A_Pain
	Goto See
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	SHWZ C 4 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	SHWZ C 4 A_Pain
	Goto See
    Pain.ManaDrain:
	SHWZ C 4 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	SHWZ C 4 A_Pain
	Goto See
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.CE:
	TNT1 A 0 A_JumpIfInventory("DeadThing",1,1)
	Goto Pain
	TNT1 A 0 A_TakeFromTarget("RedeemedSoul",1)
	TNT1 A 0 A_PlaySound("weapons/redeemer/corpseexplode")
	TNT1 A 0 A_SpawnItemEx("CEGibSpawner",0,0,12,0,0,0,0,32,0)
	TNT1 A 0 A_Explode(random(1150,1220),128,0,0,128,0,0,"NoPuff","Player")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	Stop
    Pain.OKnight:
    Pain.NecroShot:
	TNT1 A 0 A_GiveToTarget("Health",random(40,60))
	Goto Pain
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Death:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	SHWZ G 6 Bright A_SetTranslucent(1)
	SHWZ H 6 Bright A_Scream
	SHWZ I 5 Bright A_NoBlocking
	SHWZ J 5 Bright A_Explode(random[BishopBoom](50,90))
	SHWZ K 5 Bright
	SHWZ LM 4 Bright
	SHWZ N 4 A_SpawnItemEx("BishopPuff", 0,0,40, 0,0,0.5)
	SHWZ O 4
	SHWZ P -1
	Stop
    Death.Redeemer:
	SHWZ G 0 A_PlaySound("weapons/redeemer/soulredeemed")
	SHWZ G 0 A_GiveToTarget("RedeemedSoul", 1)
	SHWZ G 0 A_GiveToTarget("RestoreHealth",random(7,11))
	SHWZ GGGGGGGGGGGGGGGG 0 A_SpawnItemEx("SoulFragment",frandom(-4,4),frandom(-4,4),frandom(8,32),frandom(0.6,1.4),frandom(0.6,1.4),frandom(0.8,2.0),random(0,360),128)
	Goto Death
    Death.Mojo:
	TNT1 A 0 A_GiveToTarget("Mojo",random(8,12))
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(8,12))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,48,0,0,0,0,32,0)
	Goto Death
    Death.MojoActive:
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.Defile:
	TNT1 A 0 A_SpawnItemEx("DefileSpawner",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.Frost:
	"####" "#" 2
	SHWZ G 1 A_IceGuyDie
	Stop
    Ice:
	"####" "#" 2
	SHWZ G 1 A_IceGuyDie
	Stop
    Raise:
	SHWZ ONML 4
	SHWZ KJI 5
	SHWZ HG 6
	TNT1 A 0 A_TakeInventory("DeadThing",1)
	Goto See
    }
}

ACTOR ShadowWizardSpell
{
    PROJECTILE
    -ACTIVATEPCROSS
    +SEEKERMISSILE
    +NOEXTREMEDEATH
    Speed 20
    Damage 6
    Radius 13
    Height 15
    RenderStyle Add
    Scale 0.5
    SeeSound "shadowwizard/castspell"
    DeathSound "shadowwizard/spell/explode"
    States
    {
    Spawn:
	PARS A 0 A_SeekerMissile(4,4,2)
	PARS A 0 Bright A_Weave(1,1,0.5,2.5)
	PARS A 1 Bright A_Weave(1,1,0.5,2.5)
	PARS A 0 Bright A_SpawnItem("ShadowWizardspellTrail",-2)
	PARS A 0 Bright A_Weave(1,1,0.5,2.5)
	PARS A 1 Bright A_Weave(1,1,0.5,2.5)
	PARS A 0 Bright A_SpawnItem("ShadowWizardspellTrail",-2)
	Loop
    Death:
	TNT1 A 0 A_Explode(50,96,0)
	TNT1 A 0 A_CustomMissile("ShadowSpellExplode",0,0,0)
	TNT1 A 0 A_SpawnItemEx("ShadowWizardSpell2",0,0,8,12,0,0,0+random(20,20),0)
	TNT1 A 0 A_SpawnItemEx("ShadowWizardSpell2",0,0,8,12,0,0,45+random(20,20),0)
	TNT1 A 0 A_SpawnItemEx("ShadowWizardSpell2",0,0,8,12,0,0,90+random(20,20),0)
	TNT1 A 0 A_SpawnItemEx("ShadowWizardSpell2",0,0,8,12,0,0,135+random(20,20),0)
	TNT1 A 0 A_SpawnItemEx("ShadowWizardSpell2",0,0,8,12,0,0,180+random(20,20),0)
	TNT1 A 0 A_SpawnItemEx("ShadowWizardSpell2",0,0,8,12,0,0,225+random(20,20),0)
	TNT1 A 0 A_SpawnItemEx("ShadowWizardSpell2",0,0,8,12,0,0,270+random(20,20),0)
	TNT1 A 0 A_SpawnItemEx("ShadowWizardSpell2",0,0,8,12,0,0,315+random(20,20),0)
	Stop
    }
}

ACTOR ShadowWizardSpellInv : ShadowWizardSpell
{
    WeaveIndexZ 63
}

Actor ShadowSpellExplode
{
    PROJECTILE
    -ACTIVATEPCROSS
    +NOCLIP
    Speed 0
    RenderStyle Add
    Scale 0.5
    States
    {
    Spawn:
	PARS BCDEFG 2 Bright A_FadeOut(0.06)
	Wait
    }
}

Actor ShadowWizardSpellTrail
{
    +NOINTERACTION
    RenderStyle Add
    Alpha 0.6
    Scale 0.5
    States
    {
    Spawn:
	PARS A 10 Bright
	PARS A 2 Bright A_FadeOut
	Wait
    }
}

ACTOR ShadowWizardSpell2
{
    PROJECTILE
    -ACTIVATEPCROSS
    +NOEXTREMEDEATH
    Speed 12
    Damage 2
    Radius 8
    Height 12
    RenderStyle Add
    Scale 0.25
    SeeSound "skullwizard/castspell"
    DeathSound "skullwizard/spell/explode"
    States
    {
    Spawn:
	IFX1 A 1 Bright A_SpawnItemEx("SkullSpellTrail2",0,0,0,0,random(2,-2),random(2,-2),0,0)
	TNT1 A 0 A_Weave(frandom(1.0,3.0),0,frandom(1.0,3.0),0)
	IFX1 A 1 Bright A_SpawnItemEx("SkullSpellTrail2",0,0,0,0,random(2,-2),random(2,-2),0,0)
	TNT1 A 0 A_Weave(frandom(1.0,3.0),0,frandom(1.0,3.0),0)
	TNT1 A 0 A_SpawnItemEx("SkullSpellTrail1",0,0,0,0,random(2,-2),random(2,-2),0,0)
	IFX1 B 1 Bright A_SpawnItemEx("SkullSpellTrail2",0,0,0,0,random(2,-2),random(2,-2),0,0)
	TNT1 A 0 A_Weave(frandom(1.0,3.0),0,frandom(1.0,3.0),0)
	IFX1 B 1 Bright A_SpawnItemEx("SkullSpellTrail2",0,0,0,0,random(2,-2),random(2,-2),0,0)
	TNT1 A 0 A_Weave(frandom(1.0,3.0),0,frandom(1.0,3.0),0)
	TNT1 A 0 A_SpawnItemEx("SkullSpellTrail1",0,0,0,0,random(2,-2),random(2,-2),0,0)
	Loop
    Death:
	TNT1 A 0 A_SpawnItemEx("SkullSpellExplode",0,0,0,0,0,0,0,0)
	TNT1 AAAAAA 0 A_SpawnItemEx("SkullSpellExpFX",0,0,0,random(2,-2),random(2,-2),random(2,-2),0,0)
	IFX1 IJKL 4 Bright
	Stop
    }
}

//----------------------------------------------------------

ACTOR ChaosMutant : Demon2 replaces Demon2
{
    Tag "Chaos Mutant"
    SpawnID 111
    Height 96
    Health 1100
    +MISSILEEVENMORE
    +NEVERFAST
    +NODAMAGETHRUST
    +NOINFIGHTSPECIES
//    +DONTHARMSPECIES
    DropItem GreenManaSpanwer 50
    DropItem ArtiHealth 25
    DropItem FoetidFlask 8
    DropItem SilverCoin 2
    Species "CSerpent"
    DamageFactor "Poison", 0
    DamageFactor "Pod", -0.25
    DamageFactor "PodExplode", 0.5
    DamageFactor "Serpent", 0.8
    DamageFactor "Ice", 1.0
    PainChance "Pod", 0
    PainChance "LifeDrain", 224
    PainChance "PGauntlets", 224
    PainChance "GManaDrain", 224
    PainChance "ManaDrain", 224
    PainChance "HellRain", 192
    PainChance "Charm", 256
    PainChance "CE", 256
    PoisonDamage 30
    States
    {
    See:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"SeeSlow")
	DEM2 A 0 A_StopSound(7)
	DEM2 ABCD 4 A_Chase
	Goto See+2
    SeeSlow:
	DEM2 A 0 A_StopSound(7)
	DEM2 ABCD 8 A_Chase
	Goto SeeSlow+1
    Melee:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MeleeSlow")
	DEM2 E 6 A_FaceTarget
	DEM2 F 8 A_FaceTarget
	DEM2 G 6 A_CustomMeleeAttack(random[DemonAttack1](1,8)*3)
	Goto See
    MeleeSlow:
	DEM2 E 12 A_FaceTarget
	DEM2 F 16 A_FaceTarget
	DEM2 G 12 A_CustomMeleeAttack(random[DemonAttack1](1,8)*3)
	Goto SeeSlow
    Missile:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MissileSlow")
	DEM2 B 0 Bright A_JumpIfCloser(300,"Breath")
	DEM2 E 5 A_FaceTarget
	DEM2 F 6 A_FaceTarget
	DEM2 G 5 A_CustomMissile("ChaosMutantFX",62,0)
	Goto See
    MissileSlow:
	DEM2 B 0 Bright A_JumpIfCloser(300,"BreathSlow")
	DEM2 E 10 A_FaceTarget
	DEM2 F 12 A_FaceTarget
	DEM2 G 10 A_CustomMissile("ChaosMutantFXSlow",62,0)
	Goto SeeSlow
    Breath:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"BreathSlow")
	DEM2 E 2 A_FaceTarget
	DEM2 F 2 A_FaceTarget
	DEM2 G 0 Bright A_PlaySound("SerpentFXContinuous", 7, 1.0, 1)
	DEM2 G 0 Bright A_FaceTarget
	DEM2 GGG 2 Bright A_CustomMissile("VenomBreath",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	DEM2 G 0 Bright A_FaceTarget
	DEM2 GGG 2 Bright A_CustomMissile("VenomBreath",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	DEM2 G 0 Bright A_FaceTarget
	DEM2 GGG 2 Bright A_CustomMissile("VenomBreath",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	DEM2 G 0 Bright A_FaceTarget
	DEM2 GGG 2 Bright A_CustomMissile("VenomBreath",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	DEM2 G 0 Bright A_FaceTarget
	DEM2 GGG 2 Bright A_CustomMissile("VenomBreath",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	DEM2 G 0 A_StopSound(7)
	Goto See
    BreathSlow:
	DEM2 E 4 A_FaceTarget
	DEM2 F 4 A_FaceTarget
	DEM2 G 0 Bright A_PlaySound("SerpentFXContinuous", 7, 1.0, 1)
	DEM2 G 0 Bright A_FaceTarget
	DEM2 GGG 4 Bright A_CustomMissile("VenomBreathSlow",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	DEM2 G 0 Bright A_FaceTarget
	DEM2 GGG 4 Bright A_CustomMissile("VenomBreathSlow",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	DEM2 G 0 Bright A_FaceTarget
	DEM2 G 0 Bright A_PlaySound("SerpentFXContinuous", 7, 1.0, 1)
	DEM2 GGG 4 Bright A_CustomMissile("VenomBreathSlow",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	DEM2 G 0 Bright A_FaceTarget
	DEM2 GGG 4 Bright A_CustomMissile("VenomBreathSlow",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	DEM2 G 0 Bright A_FaceTarget
	DEM2 G 0 Bright A_PlaySound("SerpentFXContinuous", 7, 1.0, 1)
	DEM2 GGG 4 Bright A_CustomMissile("VenomBreathSlow",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	DEM2 G 0 A_StopSound(7)
	Goto SeeSlow
    Pain:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"PainSlow")
	DEM2 E 4 A_StopSound(7)
	DEM2 E 4 A_Pain
	Goto See
    PainSlow:
	DEM2 E 8 A_StopSound(7)
	DEM2 E 8 A_Pain
	Goto SeeSlow
    Death.Frost:
	"####" "#" 2
	DEMN Q 1 A_IceGuyDie
	Stop
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.CE:
	TNT1 A 0 A_JumpIfInventory("DeadThing",1,1)
	Goto Pain
	TNT1 A 0 A_TakeFromTarget("RedeemedSoul",1)
	TNT1 A 0 A_PlaySound("weapons/redeemer/corpseexplode")
	TNT1 A 0 A_SpawnItemEx("CEGibSpawner",0,0,12,0,0,0,0,32,0)
	TNT1 A 1 A_Explode(random(1000,1050),128,0,0,128,0,0,"NoPuff","Player")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	Stop
    Pain.OKnight:
    Pain.NecroShot:
	TNT1 A 0 A_GiveToTarget("Health",random(40,60))
	Goto Pain
    Pain.HoldSpell:
	"####" "#" 0 A_StopSound(7)
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.LifeDrain:
	DEM2 E 0 A_StopSound(7)
	DEM2 E 4 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	DEM2 E 4 A_Pain
	Goto See
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	DEM2 E 0 A_StopSound(7)
	DEM2 E 4 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	DEM2 E 4 A_Pain
	Goto See
    Pain.ManaDrain:
	DEM2 E 0 A_StopSound(7)
	DEM2 E 4 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	DEM2 E 4 A_Pain
	Goto See
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Pain.Slow:
	TNT1 A 0 A_PlaySound("dsparil/slow/hit")
	TNT1 A 0 A_GiveInventory("SlowedMonster",1)
	Goto See
    Death.Redeemer:
	DEM2 H 0 A_PlaySound("weapons/redeemer/soulredeemed")
	DEM2 H 0 A_GiveToTarget("RedeemedSoul", 1)
	DEM2 H 0 A_GiveToTarget("RestoreHealth",random(7,11))
	DEM2 HHHHHHHHHHHHHHHH 0 A_SpawnItemEx("SoulFragment",frandom(-4,4),frandom(-4,4),frandom(8,32),frandom(0.6,1.4),frandom(0.6,1.4),frandom(0.8,2.0),random(0,360),128)
	Goto Death
    Death.Mojo:
	TNT1 A 0 A_GiveToTarget("Mojo",random(6,10))
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.MojoActive:
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.Defile:
	TNT1 A 0 A_SpawnItemEx("DefileSpawner",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	DEM2 H 0 A_StopSound(7)
	DEM2 HI 6
	DEM2 J 6 A_Scream
	DEM2 K 6 A_NoBlocking
	DEM2 L 6
	DEM2 MNO 6
	DEM2 P -1
	Stop
    XDeath:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	DEM2 H 0 A_StopSound(7)
	DEM2 H 6
	DEM2 I 0 A_SpawnItemEx("Demon2Chunk1", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
				1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 90)
	DEM2 I 0 A_SpawnItemEx("Demon2Chunk2", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
				1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
	DEM2 I 0 A_SpawnItemEx("Demon2Chunk3", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
				1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
	DEM2 I 0 A_SpawnItemEx("Demon2Chunk4", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
				1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
	DEM2 I 6 A_SpawnItemEx("Demon2Chunk5", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
				1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
	Goto Death+4
    Ice:
	"####" "#" 2
	DEMN Q 0 A_StopSound(7)
	DEMN Q 1 A_IceGuyDie
	Stop
    Raise:
	DEM2 ONMLKJIH 6
	TNT1 A 0 A_TakeInventory("DeadThing",1)
	Goto See
    }
}

ACTOR ChaosMutantNin : ChaosMutant
{
    Tag "Chaos Mutant"
    Health 1400
    Speed 16
    States
    {
    See:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"SeeSlow")
	DEM2 A 0 A_StopSound(7)
	DEM2 ABCD 3 A_Chase
	Goto See+2
    SeeSlow:
	DEM2 A 0 A_StopSound(7)
	DEM2 ABCD 6 A_Chase
	Goto SeeSlow+1
    Melee:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MeleeSlow")
	DEM2 E 6 A_FaceTarget
	DEM2 F 8 A_FaceTarget
	DEM2 G 6 A_CustomMeleeAttack(random[DemonAttack1](1,8)*3)
	Goto See
    MeleeSlow:
	DEM2 E 12 A_FaceTarget
	DEM2 F 16 A_FaceTarget
	DEM2 G 12 A_CustomMeleeAttack(random[DemonAttack1](1,8)*3)
	Goto SeeSlow
    Missile:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MissileSlow")
	DEM2 B 0 Bright A_JumpIfCloser(300,"Breath")
	DEM2 E 5 A_FaceTarget
	DEM2 F 6 A_FaceTarget
	DEM2 G 5 A_CustomMissile("ChaosMutantFXFast",62,0)
	Goto See
    MissileSlow:
	DEM2 B 0 Bright A_JumpIfCloser(300,"BreathSlow")
	DEM2 E 10 A_FaceTarget
	DEM2 F 12 A_FaceTarget
	DEM2 G 10 A_CustomMissile("ChaosMutantFXSlow",62,0)
	Goto SeeSlow
    Breath:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"BreathSlow")
	DEM2 E 2 A_FaceTarget
	DEM2 F 2 A_FaceTarget
	DEM2 G 0 Bright A_PlaySound("SerpentFXContinuous", 7, 1.0, 1)
	DEM2 G 0 Bright A_FaceTarget
	DEM2 GGG 2 Bright A_CustomMissile("VenomBreath",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	DEM2 G 0 Bright A_FaceTarget
	DEM2 GGG 2 Bright A_CustomMissile("VenomBreath",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	DEM2 G 0 Bright A_FaceTarget
	DEM2 GGG 2 Bright A_CustomMissile("VenomBreath",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	DEM2 G 0 Bright A_FaceTarget
	DEM2 GGG 2 Bright A_CustomMissile("VenomBreath",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	DEM2 G 0 Bright A_FaceTarget
	DEM2 GGG 2 Bright A_CustomMissile("VenomBreath",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	DEM2 G 0 A_StopSound(7)
	Goto See
    BreathSlow:
	DEM2 E 4 A_FaceTarget
	DEM2 F 4 A_FaceTarget
	DEM2 G 0 Bright A_PlaySound("SerpentFXContinuous", 7, 1.0, 1)
	DEM2 G 0 Bright A_FaceTarget
	DEM2 GGG 4 Bright A_CustomMissile("VenomBreathSlow",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	DEM2 G 0 Bright A_FaceTarget
	DEM2 GGG 4 Bright A_CustomMissile("VenomBreathSlow",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	DEM2 G 0 Bright A_FaceTarget
	DEM2 G 0 Bright A_PlaySound("SerpentFXContinuous", 7, 1.0, 1)
	DEM2 GGG 4 Bright A_CustomMissile("VenomBreathSlow",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	DEM2 G 0 Bright A_FaceTarget
	DEM2 GGG 4 Bright A_CustomMissile("VenomBreathSlow",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	DEM2 G 0 Bright A_FaceTarget
	DEM2 G 0 Bright A_PlaySound("SerpentFXContinuous", 7, 1.0, 1)
	DEM2 GGG 4 Bright A_CustomMissile("VenomBreathSlow",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	DEM2 G 0 A_StopSound(7)
	Goto SeeSlow
    Pain:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"PainSlow")
	DEM2 E 4 A_StopSound(7)
	DEM2 E 4 A_Pain
	Goto See
    PainSlow:
	DEM2 E 8 A_StopSound(7)
	DEM2 E 8 A_Pain
	Goto SeeSlow
    Death.Frost:
	"####" "#" 2
	DEMN Q 1 A_IceGuyDie
	Stop
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.CE:
	TNT1 A 0 A_JumpIfInventory("DeadThing",1,1)
	Goto Pain
	TNT1 A 0 A_TakeFromTarget("RedeemedSoul",1)
	TNT1 A 0 A_PlaySound("weapons/redeemer/corpseexplode")
	TNT1 A 0 A_SpawnItemEx("CEGibSpawner",0,0,12,0,0,0,0,32,0)
	TNT1 A 1 A_Explode(random(1000,1050),128,0,0,128,0,0,"NoPuff","Player")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	Stop
    Pain.OKnight:
    Pain.NecroShot:
	TNT1 A 0 A_GiveToTarget("Health",random(40,60))
	Goto Pain
    Pain.HoldSpell:
	"####" "#" 0 A_StopSound(7)
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.LifeDrain:
	DEM2 E 0 A_StopSound(7)
	DEM2 E 4 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	DEM2 E 4 A_Pain
	Goto See
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	DEM2 E 0 A_StopSound(7)
	DEM2 E 4 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	DEM2 E 4 A_Pain
	Goto See
    Pain.ManaDrain:
	DEM2 E 0 A_StopSound(7)
	DEM2 E 4 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	DEM2 E 4 A_Pain
	Goto See
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Pain.Slow:
	TNT1 A 0 A_PlaySound("dsparil/slow/hit")
	TNT1 A 0 A_GiveInventory("SlowedMonster",1)
	Goto See
    Death.Redeemer:
	DEM2 H 0 A_PlaySound("weapons/redeemer/soulredeemed")
	DEM2 H 0 A_GiveToTarget("RedeemedSoul", 1)
	DEM2 H 0 A_GiveToTarget("RestoreHealth",random(7,11))
	DEM2 HHHHHHHHHHHHHHHH 0 A_SpawnItemEx("SoulFragment",frandom(-4,4),frandom(-4,4),frandom(8,32),frandom(0.6,1.4),frandom(0.6,1.4),frandom(0.8,2.0),random(0,360),128)
	Goto Death
    Death.Mojo:
	TNT1 A 0 A_GiveToTarget("Mojo",random(6,10))
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.MojoActive:
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.Defile:
	TNT1 A 0 A_SpawnItemEx("DefileSpawner",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	DEM2 H 0 A_StopSound(7)
	DEM2 HI 6
	DEM2 J 6 A_Scream
	DEM2 K 6 A_NoBlocking
	DEM2 L 6
	DEM2 MNO 6
	DEM2 P -1
	Stop
    XDeath:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	DEM2 H 0 A_StopSound(7)
	DEM2 H 6
	DEM2 I 0 A_SpawnItemEx("Demon2Chunk1", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
				1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 90)
	DEM2 I 0 A_SpawnItemEx("Demon2Chunk2", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
				1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
	DEM2 I 0 A_SpawnItemEx("Demon2Chunk3", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
				1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
	DEM2 I 0 A_SpawnItemEx("Demon2Chunk4", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
				1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
	DEM2 I 6 A_SpawnItemEx("Demon2Chunk5", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
				1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
	Goto Death+4
    Ice:
	"####" "#" 2
	DEMN Q 0 A_StopSound(7)
	DEMN Q 1 A_IceGuyDie
	Stop
    Raise:
	DEM2 ONMLKJIH 6
	TNT1 A 0 A_TakeInventory("DeadThing",1)
	Goto See
    }
}

ACTOR VenomBreath
{
    Radius 12
    Height 8
    Speed 18
    Damage 3
    Alpha 0.2
    PROJECTILE
    -NOBLOCKMAP
    -ACTIVATEIMPACT
    -ACTIVATEPCROSS
    +SPAWNSOUNDSOURCE
    +RIPPER
    +BLOODLESSIMPACT
    +ADDITIVEPOISONDURATION
    +ADDITIVEPOISONDAMAGE
    +NODAMAGETHRUST
    PoisonDamage 5
    DamageType "Pod"
    RenderStyle Add
    States
    {
    Spawn:
	VBTH ABCABCABCABCABCABC 3 Bright
    Death:
    	TNT1 A 0
    	Stop
    }
}

ACTOR VenomBreathSlow : VenomBreath
{
    Speed 9
    States
    {
    Spawn:
	VBTH ABCABCABCABCABCABC 6 Bright
    Death:
    	TNT1 A 0
    	Stop
    }
}

ACTOR ChaosMutantFX : Demon2FX1 replaces Demon2FX1
{
    -FIREDAMAGE
    -ACTIVATEPCROSS
    PoisonDamage 40
    Damage 8
}

ACTOR ChaosMutantFXSlow : ChaosMutantFX
{
    Speed 7
}

ACTOR ChaosMutantFXFast : ChaosMutantFX
{
    Speed 27
}

//----------------------------------------------------------

ACTOR Hellion 7118
{
    Tag "Hellion"
    SpawnID 194
    Obituary "%o was singed by a hellion"
    Health 230
    Radius 20
    Height 56
    Mass 120
    Speed 20
    PainChance 32
    MONSTER
    +FLOORCLIP
    +NEVERFAST
    +NODAMAGETHRUST
    DropItem ManaSpawner 32
    DropItem MorphShield 8
    SeeSound "hellion/active"
    PainSound "hellion/pain"
    DeathSound "hellion/death"
    ActiveSound "hellion/active"
    PainChance "LifeDrain", 224
    PainChance "PGauntlets", 224
    PainChance "GManaDrain", 224
    PainChance "ManaDrain", 224
    PainChance "HellRain", 192
    PainChance "Charm", 256
    PainChance "CE", 256
    PainChance "Slow", 255
    DamageFactor "Sacred", 1.5
    DamageFactor "Holy", 1.2
    DamageFactor "Consecrate", 1.1
    DamageFactor "Hellrain", 1.1
    States
    {
    Pain.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	ETTN H 7 A_Pain
	Goto See
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	ETTN H 7 A_Pain
	Goto See
    Pain.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	ETTN H 7 A_Pain
	Goto See
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.HoldSpell:
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Pain.CE:
	TNT1 A 0 A_JumpIfInventory("DeadThing",1,1)
	Goto Pain
	TNT1 A 0 A_TakeFromTarget("RedeemedSoul",1)
	TNT1 A 0 A_PlaySound("weapons/redeemer/corpseexplode")
	TNT1 A 0 A_SpawnItemEx("CEGibSpawner",0,0,12,0,0,0,0,32,0)
	TNT1 A 0 A_Explode(random(170,200),128,0,0,128,0,0,"NoPuff","Player")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	Stop
    Pain.OKnight:
    Pain.NecroShot:
	TNT1 A 0 A_GiveToTarget("Health",random(40,60))
	Goto Pain
    Pain.Slow:
	TNT1 A 0 A_PlaySound("dsparil/slow/hit")
	TNT1 A 0 A_GiveInventory("SlowedMonster",1)
	Goto See
    Spawn:
	HELN AB 10 A_Look
	Loop
    See:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"SeeSlow")
	HELN ABCDEF 3 A_Chase
	Loop
    SeeSlow:
	HELN ABCDEF 6 A_Chase
	Loop
    Missile:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MissileSlow")
	HELN N 0 A_Jump(240-(10*(ACS_ExecuteWithResult(803,0,0,0,0))),"Fireball")
//	HELN N 0 A_ChangeFlag("NOPAIN",1)
	HELN N 0 Bright A_VileStart
	HELN N 0 Bright A_VileTarget("HellionTargeter")
	HELN NNNNNN 6 Bright A_FaceTarget
	HELN O 6 Bright A_FaceTarget
	HELN P 6 Bright A_FaceTarget
	HELN QQQ 6 Bright A_FaceTarget
	HELN R 0 A_JumpIfTargetInLOS("Morph",120)
	HELN R 6 Bright
//	HELN L 4 A_ChangeFlag("NOPAIN",0)
	Goto See
    Fireball:
	HELN G 0 Bright A_VileStart
	HELN GHIJK 6 Bright A_FaceTarget
	HELN K 0 Bright A_Jump(128,2)
	HELN K 2 Bright A_CustomMissile("HellionBall",32,0,frandom(-3,3),0,0)
	HELN K 2 Bright A_FaceTarget
	HELN K 0 Bright A_Jump(128,2)
	HELN K 2 Bright A_CustomMissile("HellionBall",32,0,frandom(-3,3),0,0)
	HELN K 2 Bright A_FaceTarget
	HELN K 0 Bright A_Jump(128,2)
	HELN K 2 Bright A_CustomMissile("HellionBall",32,0,frandom(-3,3),0,0)
	HELN K 2 Bright A_FaceTarget
	HELN K 2 Bright A_CustomMissile("HellionBall",32,0,frandom(-3,3),0,0)
	HELN K 2 Bright A_FaceTarget
	HELN K 2 Bright A_CustomMissile("HellionBall",32,0,frandom(-3,3),0,0)
	HELN K 2 Bright A_FaceTarget
	HELN K 2 Bright A_CustomMissile("HellionBall",32,0,frandom(-3,3),0,0)
	HELN K 2 Bright A_FaceTarget
	HELN L 2 Bright A_CustomMissile("HellionBall",32,0,frandom(-3,3),0,0)
	HELN L 2 Bright A_FaceTarget
	HELN L 2 Bright A_CustomMissile("HellionBall",32,0,frandom(-3,3),0,0)
	HELN L 2 Bright A_FaceTarget
	Goto See
    Morph:
	HELN R 0 Bright A_PlaySound("hellion/morph")
	HELN R 6 Bright A_VileTarget("HellionMorpher")
	HELN L 4
	Goto See
    MissileSlow:
	HELN N 0 A_Jump(200,"Fireball")
	HELN N 0 Bright A_VileStart
	HELN N 0 A_VileTarget("HellionTargeterSlow")
	HELN NNNNNNNNNNNN 6 Bright A_FaceTarget
	HELN OO 6 Bright A_FaceTarget
	HELN PP 6 Bright A_FaceTarget
	HELN QQQQQQ 6 Bright A_FaceTarget
	HELN R 0 Bright A_JumpIfTargetInLOS("Morph",120)
	HELN R 12 Bright
	HELN L 8
	Goto SeeSlow
    FireballSlow:
	HELN G 0 Bright A_VileStart
	HELN GGHHIIJJKK 6 Bright A_FaceTarget
	HELN K 0 Bright A_Jump(128,2)
	HELN K 4 Bright A_CustomMissile("HellionBallSlow",32,0,frandom(-3,3),0,0)
	HELN K 4 Bright A_FaceTarget
	HELN K 0 Bright A_Jump(128,2)
	HELN K 4 Bright A_CustomMissile("HellionBall",32,0,frandom(-3,3),0,0)
	HELN K 4 Bright A_FaceTarget
	HELN K 0 Bright A_Jump(128,2)
	HELN K 4 Bright A_CustomMissile("HellionBallSlow",32,0,frandom(-3,3),0,0)
	HELN K 4 Bright A_FaceTarget
	HELN K 4 Bright A_CustomMissile("HellionBallSlow",32,0,frandom(-3,3),0,0)
	HELN K 4 Bright A_FaceTarget
	HELN K 4 Bright A_CustomMissile("HellionBallSlow",32,0,frandom(-3,3),0,0)
	HELN K 4 Bright A_FaceTarget
	HELN K 4 Bright A_CustomMissile("HellionBallSlow",32,0,frandom(-3,3),0,0)
	HELN K 4 Bright A_FaceTarget
	HELN L 4 Bright A_CustomMissile("HellionBallSlow",32,0,frandom(-3,3),0,0)
	HELN L 4 Bright A_FaceTarget
	HELN L 4 Bright A_CustomMissile("HellionBallSlow",32,0,frandom(-3,3),0,0)
	HELN L 4 Bright A_FaceTarget
	Goto SeeSlow
    MorphSlow:
	HELN R 0 Bright A_PlaySound("hellion/morph")
	HELN R 12 Bright A_VileTarget("HellionMorpher")
	HELN L 8
	Goto SeeSlow
    Pain:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"PainSlow")
	HELN M 2
	HELN M 2 A_Pain
	Goto See
    PainSlow:
	HELN M 4
	HELN M 4 A_Pain
	Goto SeeSlow
    Death.Redeemer:
	HELD A 0 A_PlaySound("weapons/redeemer/soulredeemed")
	HELD A 0 A_GiveToTarget("RedeemedSoul", 1)
	HELD A 0 A_GiveToTarget("RestoreHealth",random(7,11))
	HELD AAAAAAAAAAAAAAAA 0 A_SpawnItemEx("SoulFragment",frandom(-4,4),frandom(-4,4),frandom(8,32),frandom(0.6,1.4),frandom(0.6,1.4),frandom(0.8,2.0),random(0,360),128)
	Goto Death
    Death.Mojo:
	TNT1 A 0 A_GiveToTarget("Mojo",random(6,10))
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,40,0,0,0,0,32,0)
	Goto Death
    Death.MojoActive:
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.Defile:
	TNT1 A 0 A_SpawnItemEx("DefileSpawner",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.Frost:
	"####" "#" 2
	HELN M 1 A_IceGuyDie
	Stop
    Death.Ice:
	"####" "#" 2
	HELN M 1 A_IceGuyDie
	Stop
    Death:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	HELD A 6
	HELD B 6 A_Scream
	HELD CDE 6
	HELD F 6 A_NoBlocking
	HELD G -1
	Stop
    XDeath:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	HELD H 5
	HELD I 5 A_PlaySound("hellion/death")
	HELD J 5
	HELD K 5 A_NoBlocking
	HELD LMNOP 5
	HELD P -1
	Stop
    Raise:
	HELD GFEDCBA 6
	TNT1 A 0 A_TakeInventory("DeadThing",1)
	Goto See
    }
}

ACTOR HellionNin : Hellion
{
    Tag "Hellion"
    Health 360
    States
    {
    Pain.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	ETTN H 7 A_Pain
	Goto See
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	ETTN H 7 A_Pain
	Goto See
    Pain.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	ETTN H 7 A_Pain
	Goto See
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.HoldSpell:
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Pain.CE:
	TNT1 A 0 A_JumpIfInventory("DeadThing",1,1)
	Goto Pain
	TNT1 A 0 A_TakeFromTarget("RedeemedSoul",1)
	TNT1 A 0 A_PlaySound("weapons/redeemer/corpseexplode")
	TNT1 A 0 A_SpawnItemEx("CEGibSpawner",0,0,12,0,0,0,0,32,0)
	TNT1 A 0 A_Explode(random(170,200),128,0,0,128,0,0,"NoPuff","Player")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	Stop
    Pain.OKnight:
    Pain.NecroShot:
	TNT1 A 0 A_GiveToTarget("Health",random(40,60))
	Goto Pain
    Pain.Slow:
	TNT1 A 0 A_PlaySound("dsparil/slow/hit")
	TNT1 A 0 A_GiveInventory("SlowedMonster",1)
	Goto See
    Spawn:
	HELN AB 10 A_Look
	Loop
    See:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"SeeSlow")
	HELN ABCDEF 2 A_Chase
	Loop
    SeeSlow:
	HELN ABCDEF 4 A_Chase
	Loop
    Missile:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MissileSlow")
	HELN N 0 A_Jump(240-(10*(ACS_ExecuteWithResult(803,0,0,0,0))),"Fireball")
//	HELN N 0 A_ChangeFlag("NOPAIN",1)
	HELN N 0 Bright A_VileStart
	HELN N 0 Bright A_VileTarget("HellionTargeter")
	HELN NNNNNN 6 Bright A_FaceTarget
	HELN O 6 Bright A_FaceTarget
	HELN P 6 Bright A_FaceTarget
	HELN QQQ 6 Bright A_FaceTarget
	HELN R 0 A_JumpIfTargetInLOS("Morph",120)
	HELN R 6 Bright
//	HELN L 4 A_ChangeFlag("NOPAIN",0)
	Goto See
    Fireball:
	HELN G 0 Bright A_VileStart
	HELN GHIJK 6 Bright A_FaceTarget
	HELN K 0 Bright A_Jump(128,2)
	HELN K 2 Bright A_CustomMissile("HellionBallFast",32,0,frandom(-3,3),0,0)
	HELN K 2 Bright A_FaceTarget
	HELN K 0 Bright A_Jump(128,2)
	HELN K 2 Bright A_CustomMissile("HellionBallFast",32,0,frandom(-3,3),0,0)
	HELN K 2 Bright A_FaceTarget
	HELN K 0 Bright A_Jump(128,2)
	HELN K 2 Bright A_CustomMissile("HellionBallFast",32,0,frandom(-3,3),0,0)
	HELN K 2 Bright A_FaceTarget
	HELN K 2 Bright A_CustomMissile("HellionBallFast",32,0,frandom(-3,3),0,0)
	HELN K 2 Bright A_FaceTarget
	HELN K 2 Bright A_CustomMissile("HellionBallFast",32,0,frandom(-3,3),0,0)
	HELN K 2 Bright A_FaceTarget
	HELN K 2 Bright A_CustomMissile("HellionBallFast",32,0,frandom(-3,3),0,0)
	HELN K 2 Bright A_FaceTarget
	HELN L 2 Bright A_CustomMissile("HellionBallFast",32,0,frandom(-3,3),0,0)
	HELN L 2 Bright A_FaceTarget
	HELN L 2 Bright A_CustomMissile("HellionBallFast",32,0,frandom(-3,3),0,0)
	HELN L 2 Bright A_FaceTarget
	Goto See
    Morph:
	HELN R 0 Bright A_PlaySound("hellion/morph")
	HELN R 6 Bright A_VileTarget("HellionMorpher")
	HELN L 4
	Goto See
    MissileSlow:
	HELN N 0 A_Jump(200,"Fireball")
	HELN N 0 Bright A_VileStart
	HELN N 0 A_VileTarget("HellionTargeterSlow")
	HELN NNNNNNNNNNNN 6 Bright A_FaceTarget
	HELN OO 6 Bright A_FaceTarget
	HELN PP 6 Bright A_FaceTarget
	HELN QQQQQQ 6 Bright A_FaceTarget
	HELN R 0 Bright A_JumpIfTargetInLOS("Morph",120)
	HELN R 12 Bright
	HELN L 8
	Goto SeeSlow
    FireballSlow:
	HELN G 0 Bright A_VileStart
	HELN GGHHIIJJKK 6 Bright A_FaceTarget
	HELN K 0 Bright A_Jump(128,2)
	HELN K 4 Bright A_CustomMissile("HellionBallSlow",32,0,frandom(-3,3),0,0)
	HELN K 4 Bright A_FaceTarget
	HELN K 0 Bright A_Jump(128,2)
	HELN K 4 Bright A_CustomMissile("HellionBall",32,0,frandom(-3,3),0,0)
	HELN K 4 Bright A_FaceTarget
	HELN K 0 Bright A_Jump(128,2)
	HELN K 4 Bright A_CustomMissile("HellionBallSlow",32,0,frandom(-3,3),0,0)
	HELN K 4 Bright A_FaceTarget
	HELN K 4 Bright A_CustomMissile("HellionBallSlow",32,0,frandom(-3,3),0,0)
	HELN K 4 Bright A_FaceTarget
	HELN K 4 Bright A_CustomMissile("HellionBallSlow",32,0,frandom(-3,3),0,0)
	HELN K 4 Bright A_FaceTarget
	HELN K 4 Bright A_CustomMissile("HellionBallSlow",32,0,frandom(-3,3),0,0)
	HELN K 4 Bright A_FaceTarget
	HELN L 4 Bright A_CustomMissile("HellionBallSlow",32,0,frandom(-3,3),0,0)
	HELN L 4 Bright A_FaceTarget
	HELN L 4 Bright A_CustomMissile("HellionBallSlow",32,0,frandom(-3,3),0,0)
	HELN L 4 Bright A_FaceTarget
	Goto SeeSlow
    MorphSlow:
	HELN R 0 Bright A_PlaySound("hellion/morph")
	HELN R 12 Bright A_VileTarget("HellionMorpher")
	HELN L 8
	Goto SeeSlow
    Pain:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"PainSlow")
	HELN M 2
	HELN M 2 A_Pain
	Goto See
    PainSlow:
	HELN M 4
	HELN M 4 A_Pain
	Goto SeeSlow
    Death.Redeemer:
	HELD A 0 A_PlaySound("weapons/redeemer/soulredeemed")
	HELD A 0 A_GiveToTarget("RedeemedSoul", 1)
	HELD A 0 A_GiveToTarget("RestoreHealth",random(7,11))
	HELD AAAAAAAAAAAAAAAA 0 A_SpawnItemEx("SoulFragment",frandom(-4,4),frandom(-4,4),frandom(8,32),frandom(0.6,1.4),frandom(0.6,1.4),frandom(0.8,2.0),random(0,360),128)
	Goto Death
    Death.Mojo:
	TNT1 A 0 A_GiveToTarget("Mojo",random(6,10))
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,40,0,0,0,0,32,0)
	Goto Death
    Death.MojoActive:
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.Defile:
	TNT1 A 0 A_SpawnItemEx("DefileSpawner",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.Frost:
	"####" "#" 2
	HELN M 1 A_IceGuyDie
	Stop
    Death.Ice:
	"####" "#" 2
	HELN M 1 A_IceGuyDie
	Stop
    Death:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	HELD A 6
	HELD B 6 A_Scream
	HELD CDE 6
	HELD F 6 A_NoBlocking
	HELD G -1
	Stop
    XDeath:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	HELD H 5
	HELD I 5 A_PlaySound("hellion/death")
	HELD J 5
	HELD K 5 A_NoBlocking
	HELD LMNOP 5
	HELD P -1
	Stop
    Raise:
	HELD GFEDCBA 6
	TNT1 A 0 A_TakeInventory("DeadThing",1)
	Goto See
    }
}

ACTOR HellionBall : CacodemonBall
{
    Damage 2
    Speed 20
    Alpha 0.80
    Scale 0.6
    DamageType Fire
    -ACTIVATEPCROSS
    +THRUGHOST
    +FORCEXYBILLBOARD
    SeeSound "hellion/attack"
    DeathSound "hellion/missile/hit"
    States
    {
    Spawn:
	HLBL A 0 Bright
	HLBL A 0 Bright A_Jump(128,3)
	HLBL A 0 Bright ThrustThingZ(0,frandom(0,2),0,1)
	HLBL A 0 Bright A_Jump(256,2)
	HLBL A 0 Bright ThrustThingZ(0,frandom(0,2),1,1)
	HLBL AB 2 Bright A_SpawnItemEx("HellionPuff",0,0,0,0,0,0)
	Goto Spawn+5
    Death:
	HLBL JKLMN 3 Bright
	Stop
    }
}

ACTOR HellionBallSlow : HellionBall
{
    Speed 10
    States
    {
    Spawn:
	HLBL A 0 Bright
	HLBL A 0 Bright A_Jump(128,3)
	HLBL A 0 Bright ThrustThingZ(0,frandom(0,2),0,1)
	HLBL A 0 Bright A_Jump(256,2)
	HLBL A 0 Bright ThrustThingZ(0,frandom(0,2),1,1)
	HLBL AB 4 Bright A_SpawnItemEx("HellionPuffSlow",0,0,0,0,0,0)
	Goto Spawn+5
    }
}

ACTOR HellionBallFast : HellionBall
{
    Speed 30
}

ACTOR HellionPuff
{   
    Radius 3
    Height 3
    RenderStyle Add
    Alpha 0.67
    Scale 0.6
    +NOGRAVITY
    +NOBLOCKMAP
    +DONTSPLASH
    +FORCEXYBILLBOARD
    States
    {
    Spawn:
	TNT1 A 3 Bright
	HLBL CDEFGHI 3 Bright
	Stop 
    }
}

ACTOR HellionPuffSlow : HellionPuff
{
    States
    {
    Spawn:
	TNT1 A 3 Bright
	HLBL CDEFGHI 6 Bright
	Stop 
    }
}

ACTOR HellionTargeter
{
    PROJECTILE
    +SEEKERMISSILE
    States
    {
    Spawn:
	TNT1 A 0
	TNT1 A 0 A_PlaySound("hellion/morphglitter")
	TNT1 A 0 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	Stop
    }
}

ACTOR HellionTargeterSlow : HellionTargeter
{
    States
    {
    Spawn:
	TNT1 A 0
	TNT1 A 0 A_PlaySound("hellion/morphglitter")
	TNT1 A 0 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 A 0 A_PlaySound("hellion/morphglitter")
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	TNT1 AA 1 A_Fire(40)
	TNT1 A 0 A_SpawnItemEx("HellionGlitter",-24,0,0,0,0,0,0,32,0)
	Stop
    }
}

ACTOR HellionGlitter : TeleGlitterGenerator1
{
    States
    {
    Spawn:
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("TeleGlitter1", random[TeleGlitter](0,31)-16, random[TeleGlitter](0,31)-16, 0, 0,0,0.25)
	Stop
    }
}

ACTOR HellionMorpher : MorphProjectile
{
    MorphProjectile.PlayerClass "PigPlayer"
    MorphProjectile.MonsterClass "PigMonster"
    MorphProjectile.Duration 700
    MorphProjectile.MorphStyle MRF_LOSEACTUALWEAPON|MRF_UNDOBYTOMEOFPOWER
    States
    {
    Spawn:
	TNT1 A 1
	Stop
    }
}

//----------------------------------------------------------

ACTOR Maulotaur : Minotaur 152
{
    Tag "Maulotaur"
    Game Hexen
    Health 9000
    Speed 24
    Radius 42
    Height 150
    Mass 3000
    SpawnID 163
    PainChance 10
    +BOSS
    +BOSSDEATH
    +DONTMORPH
    +NOFEAR
    +NOICEDEATH
    +EXTREMEDEATH
    +NEVERFAST
    -NORADIUSDMG
    Obituary "%o was destroyed by a maulotaur"
    HitObituary "%o was pulverized by a maulotaur"
    DropItem LargeManaSpawner
    DropItem MysticUrn 24
    DropItem FireResistance 24
    Damage 8
    PainChance "Pod", 0
    PainChance "HellRain", 48
    DamageFactor "Sacred", 1.25
    DamageFactor "Meteor", 0.25
    DamageFactor "FireWave", 0.0
    DamageFactor "Dragon", 0.25
    DamageFactor "Lantern", 0.25
    DamageFactor "QuietusTrail", 0.4
    DamageFactor "Quietus", 0.4
    DamageFactor "Melee", 0.2
    DamageFactor "DSparil", 0.5
    DamageFactor "Serpent", 0.5
    DamageFactor "Fire", 0.8
    DamageFactor "Mojo", 0.75
    DamageFactor "MojoActive", 0.75
    DamageFactor "Defile", 0.75
    DamageFactor "Iron", 0.55
    DamageFactor "Loric", 0.35
    DamageFactor "Cube", 0.3
    DamageFactor "Frost", 0.8
    DamageFactor "Ice", 0.8
    DamageFactor "PodExplode", 0.8
    DamageFactor "Sword", 0.8
    MeleeDamage 15
    MeleeRange 144
    Scale 1.5
    States
    {
    Spawn:
	MNTR AB 10 A_Look
	Loop
    See:
	MNTR A 0 A_UnSetInvulnerable
	MNTR A 0 A_TakeInventory("ChargeCount",30)
	MNTR ABCD 5 A_Chase
	Loop
    Melee:
	MNTR G 6 A_FaceTarget
	MNTR H 7 A_FaceTarget
	MNTR I 0 A_MinotaurAtk1
	MNTR I 12 A_MeleeAttack
	Goto See
    Missile:
	MNTR G 0 A_Jump(112,"Fireballs")
	MNTR G 0 A_Jump(112,"Hammer")
	MNTR G 0 A_Jump(80,"Floor")
	MNTR G 0 A_Jump(72,"Charge")
	Loop
    Fireballs:
	MNTR G 6 A_FaceTarget
	MNTR J 4 A_FaceTarget
	MNTR K 0 A_PlaySound("minotaur/attack2")
	MNTR K 0 A_CustomMissile("MaulotaurFireball",80,0,0)
	MNTR K 0 A_CustomMissile("MaulotaurFireball",80,0,2.5)
	MNTR K 0 A_CustomMissile("MaulotaurFireball",80,0,-2.5)
	MNTR K 0 A_CustomMissile("MaulotaurFireball",80,0,5)
	MNTR K 0 A_CustomMissile("MaulotaurFireball",80,0,-5)
	MNTR K 0 A_CustomMissile("MaulotaurFireball",80,0,7.5)
	MNTR K 0 A_CustomMissile("MaulotaurFireball",80,0,-7.5)
	MNTR K 0 A_CustomMissile("MaulotaurFireball",80,0,10)
	MNTR K 12 A_CustomMissile("MaulotaurFireball",80,0,-10)
	MNTR K 0 A_Jump(192,2)
	Goto See
	MNTR G 6 A_FaceTarget
	MNTR J 4 A_FaceTarget
	MNTR K 0 A_PlaySound("minotaur/attack2")
	MNTR K 0 A_CustomMissile("MaulotaurFireball",80,0,0)
	MNTR K 0 A_CustomMissile("MaulotaurFireball",80,0,2.5)
	MNTR K 0 A_CustomMissile("MaulotaurFireball",80,0,-2.5)
	MNTR K 0 A_CustomMissile("MaulotaurFireball",80,0,5)
	MNTR K 0 A_CustomMissile("MaulotaurFireball",80,0,-5)
	MNTR K 0 A_CustomMissile("MaulotaurFireball",80,0,7.5)
	MNTR K 0 A_CustomMissile("MaulotaurFireball",80,0,-7.5)
	MNTR K 0 A_CustomMissile("MaulotaurFireball",80,0,10)
	MNTR K 12 A_CustomMissile("MaulotaurFireball",80,0,-10)
	Goto See
    Hammer:
	MNTR G 6 A_FaceTarget
	MNTR J 4 A_FaceTarget
	MNTR K 0 A_PlaySound("minotaur/attack2")
	MNTR K 9 A_CustomMissile("MaulotaurHammerMissile",80,0,0)
	MNTR G 6 A_FaceTarget
	MNTR J 4 A_FaceTarget
	MNTR K 0 A_PlaySound("minotaur/attack2")
	MNTR K 9 A_CustomMissile("MaulotaurHammerMissile",80,0,0)
	MNTR G 6 A_FaceTarget
	MNTR J 4 A_FaceTarget
	MNTR K 0 A_PlaySound("minotaur/attack2")
	MNTR K 9 A_CustomMissile("MaulotaurHammerMissile",80,0,0)
	MNTR G 6 A_FaceTarget
	MNTR J 4 A_FaceTarget
	MNTR K 0 A_PlaySound("minotaur/attack2")
	MNTR K 9 A_CustomMissile("MaulotaurHammerMissile",80,0,0)
	MNTR K 0 A_Jump(192,1)
	Goto See
	MNTR G 6 A_FaceTarget
	MNTR J 4 A_FaceTarget
	MNTR K 0 A_PlaySound("minotaur/attack2")
	MNTR K 9 A_CustomMissile("MaulotaurHammerMissile",80,0,0)
	MNTR K 0 A_Jump(192,1)
	Goto See
    Floor:
	MNTR G 6 A_FaceTarget
	MNTR H 7 A_FaceTarget
	MNTR I 0 A_PlaySound("minotaur/attack1")
	MNTR I 0 A_CustomMissile("MaulotaurFloorFire2",0,0,0)
	MNTR I 0 A_CustomMissile("MaulotaurFloorFire1",0,0,-12)
	MNTR I 12 A_CustomMissile("MaulotaurFloorFire3",0,0,12)
	MNTR I 0 A_Jump(192,1)
	Goto See
	MNTR G 6 A_FaceTarget
	MNTR H 7 A_FaceTarget
	MNTR I 0 A_PlaySound("minotaur/attack1")
	MNTR I 0 A_CustomMissile("MaulotaurFloorFire2",0,0,0)
	MNTR I 0 A_CustomMissile("MaulotaurFloorFire3",0,0,-12)
	MNTR I 12 A_CustomMissile("MaulotaurFloorFire1",0,0,12)
	Goto See
    Charge:
	MNTR F 0 A_SetInvulnerable
	MNTR F 2 A_SkullAttack(35)
	MNTR F 2 A_GiveInventory("ChargeCount",1)
	MNTR F 0 A_JumpIfInventory("ChargeCount",10,1)
	Goto Charge+2
	MNTR F 0 A_Stop
	Goto See
    Death:
	MNTR L 6 A_MinotaurDeath
	MNTR M 5
	MNTR N 6 A_Scream
	MNTR O 5
	MNTR P 6
	MNTR Q 5
	MNTR R 6
	MNTR S 5 A_NoBlocking
	MNTR T 6
	MNTR U 5
	MNTR V 6
	MNTR W 5
	MNTR X 6
	MNTR Y 5
	MNTR Z -1 A_BossDeath
	Stop
    }
}

ACTOR MaulotaurNin : Maulotaur
{
    Tag "Maulotaur"
    Health 11000
}

ACTOR MaulotaurFireball : MinotaurFX1
{
    Scale 2
    Radius 12
    Height 8
    Speed 22
    Damage 2
    DamageType Fire
    PROJECTILE
    -ACTIVATEIMPACT
    -ACTIVATEPCROSS
    DeathSound "DemonMissileExplode"
    RenderStyle Add
    States
    {
    Spawn:
	FX12 AB 6 Bright
	Loop
    Death:
	FX12 CDEFGH 5 Bright
	Stop
    }
}

ACTOR MaulotaurFireballFast : MaulotaurFireball
{
    Speed 33
}

ACTOR MaulotaurHammerMissile
{
    Scale 2
    Speed 24
    Radius 14
    Height 20
    Damage 20
    DamageType "Fire"
    PROJECTILE
    -ACTIVATEPCROSS
    DeathSound "FighterHammerExplode"
    States
    {
    Spawn:
	FHFX A 2 Bright
	FHFX B 2 Bright A_PlaySound("FighterHammerContinuous")
	FHFX CDEFGH 2 Bright
	Loop
    Death:
	FHFX I 0 Bright A_SetTranslucent(1,1)
	FHFX I 3 Bright A_Explode(200,180,0)
	FHFX J 3 Bright
	FHFX K 3 Bright
	FHFX LM 3 Bright
	FHFX N 3 Bright
	FHFX OPQR 3 Bright
	Stop
    }
}

ACTOR MaulotaurHammerMissileFast : MaulotaurHammerMissile
{
    Speed 36
}

ACTOR MaulotaurFloorFire1 : FlameCentaurFX1
{
    Radius 18
    Height 26
    Speed 18
    States
    {
    Spawn:
	TNT1 A 1 A_SpawnItemEx("MaulotaurFloorFireFX",0,0,0,0,0,0,0,32,0)
	TNT1 A 0 A_Weave(4,0,6.0,0)
	Loop
    }
}

ACTOR MaulotaurFloorFire2 : FlameCentaurFX1
{
    Radius 18
    Height 26
    Speed 18
    States
    {
    Spawn:
	TNT1 A 1 A_SpawnItemEx("MaulotaurFloorFireFX",0,0,0,0,0,0,0,32,0)
	Loop
    }
}

ACTOR MaulotaurFloorFire3 : FlameCentaurFX1
{
    WeaveIndexXY 32
    Radius 18
    Height 26
    Speed 18
    States
    {
    Spawn:
	TNT1 A 1 A_SpawnItemEx("MaulotaurFloorFireFX",0,0,0,0,0,0,0,32,0)
	TNT1 A 0 A_Weave(4,0,6.0,0)
	Loop
    }
}

ACTOR MaulotaurFloorFire1Fast : MaulotaurFloorFire1
{
    Speed 27
}

ACTOR MaulotaurFloorFire2Fast : MaulotaurFloorFire2
{
    Speed 27
}

ACTOR MaulotaurFloorFire3Fast : MaulotaurFloorFire3
{
    Speed 27
}

ACTOR MaulotaurFloorFireFX : FlameCentaurFX2
{
    Radius 10
    Height 20
    Damage 4
    Scale 2
}

//----------------------------------------------------------

ACTOR FullDemon1 : Demon1 7116
{
    Tag "Big Chaos Serpent"
    SpawnID 189
    Height 110
    Radius 36
    Health 4000
    Speed 30
    PainChance 8
    Scale 1.25
    DropItem ManaSpawner
    DropItem ManaSpawner 64
    DropItem ManaSpawner 128
    DropItem CombinedManaSpawner 32
    DropItem MysticUrn 16
    DropItem Defender 8
    DropItem CrystalCoin 2
    Species "CSerpent"
    PainChance "Pod", 0
    PainChance "CE", 0
    PainChance "HellRain", 96
    DamageFactor "Sacred", 1.25
    DamageFactor "Meteor", 0.4
    DamageFactor "FireWave", 0.0
    DamageFactor "QuietusTrail", 0.3
    DamageFactor "Quietus", 0.3
    DamageFactor "Dragon", 0.35
    DamageFactor "Lantern", 0.35
    DamageFactor "DSparil", 0.5
    DamageFactor "Serpent", 0.5
    DamageFactor "Mojo", 0.75
    DamageFactor "MojoActive", 0.75
    DamageFactor "Defile", 0.75
    DamageFactor "Iron", 0.5
    DamageFactor "Fire", 0.666
    DamageFactor "Loric", 0.7
    DamageFactor "Cube", 0.3
    DamageFactor "PodExplode", 0.8
    DamageFactor "Sword", 0.8
    DamageFactor "Serpent", 0.8
    Mass 1200
    +BOSS
    +BOSSDEATH
    +NOFEAR
    +DONTMORPH
    +NOICEDEATH
    +MISSILEMORE
    +MISSILEEVENMORE
    +NEVERFAST
    -NODAMAGETHRUST
    Translation "186:202=%[0.0,0.0,0.0]:[0.7,1.1,0.5]","51:66=%[0.0,0.0,0.0]:[0.7,1.1,0.5]","0:50=%[0.0,0.0,0.0]:[0.7,1.1,0.5]"
    States
    {
    Melee:
    Missile:
	DEMN E 5 A_FaceTarget
	DEMN F 6 A_FaceTarget
	DEMN F 0 A_JumpIfCloser(1000,6)
	DEMN G 0 A_CustomMissile("FDemon1FX1",72,0,0,33,0)
	DEMN G 0 A_CustomMissile("FDemon1FX1",72,0,4,33,0)
	DEMN G 0 A_CustomMissile("FDemon1FX1",72,0,-4,33,0)
	DEMN G 0 A_CustomMissile("FDemon1FX1",72,0,8,33,0)
	DEMN G 5 A_CustomMissile("FDemon1FX1",72,0,-8,33,0)
	Goto See
	DEMN F 0 A_JumpIfCloser(384,6)
	DEMN G 0 A_CustomMissile("FDemon1FX1",72,0,0,33,-2)
	DEMN G 0 A_CustomMissile("FDemon1FX1",72,0,4,33,-2)
	DEMN G 0 A_CustomMissile("FDemon1FX1",72,0,-4,33,-2)
	DEMN G 0 A_CustomMissile("FDemon1FX1",72,0,8,33,-2)
	DEMN G 5 A_CustomMissile("FDemon1FX1",72,0,-8,33,-2)
	Goto See
	DEMN G 0 A_CustomMissile("FDemon1FX1",72,0,0,33,-4)
	DEMN G 0 A_CustomMissile("FDemon1FX1",72,0,4,33,-4)
	DEMN G 0 A_CustomMissile("FDemon1FX1",72,0,-4,33,-4)
	DEMN G 0 A_CustomMissile("FDemon1FX1",72,0,8,33,-4)
	DEMN G 0 A_CustomMissile("FDemon1FX1",72,5,-8,33,-4)
	Goto See
    Pain.CE:
	Goto Pain
    XDeath:
    Death.Redeemer:
    Death.Mojo:
    Death.MojoActive:
    Death.Defile:
	Goto Death
    }
}

ACTOR FullDemon1Nin : FullDemon1
{
    Tag "Big Chaos Serpent"
    Health 5280
}

ACTOR FDemon1FX1 : Demon1FX1
{
    -ACTIVATEPCROSS
    Scale 1.25
    Damage 12
    Speed 20
}

ACTOR FDemon1FX1Fast : FDemon1FX1
{
    Speed 30
}

//----------------------------------------------------------

Actor RedDemon : Demon1 153
{
    Tag "Magma Serpent"
    SpawnID 128
    Health 1700
    Radius 32
    Height 96
    DropItem GoldManaSpawner 40
    DropItem Regeneration 25
    DropItem GoldCoin 2
    BloodColor "Orange"
    Species "CSerpent"
    DamageFactor "Fire", 0.125
    DamageFactor "Ice", 1.2
    DamageFactor "Dragon", 0.75
    DamageType "Fire"
    DamageFactor "Serpent", 0.8
    PainChance "Pod", 0
    PainChance "LifeDrain", 224
    PainChance "PGauntlets", 224
    PainChance "GManaDrain", 224
    PainChance "ManaDrain", 224
    PainChance "HellRain", 160
    PainChance "Charm", 256
    PainChance "CE", 256
    +MISSILEMORE
    +NOINFIGHTING
    +NEVERFAST
    +NODAMAGETHRUST
    SeeSound "DemonSight"
    Obituary "%o was blasted by a magma serpent"
    HitObituary "%o was swallowed by a magma serpent"
    States
    {
    Spawn:
	RDMN AA 10 A_Look
	Loop
    See:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"SeeSlow")
	RDMN A 0 A_StopSound(7)
	RDMN ABCD 4 A_Chase
	Goto See+2
    SeeSlow:
	RDMN A 0 A_StopSound(7)
	RDMN ABCD 8 A_Chase
	Goto SeeSlow+1
    Pain:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"PainSlow")
	RDMN E 4 A_StopSound(7)
	RDMN E 4 A_Pain
	Goto See
    PainSlow:
	RDMN E 8 A_StopSound(7)
	RDMN E 8 A_Pain
	Goto SeeSlow
    Pain.HoldSpell:
	"####" "#" 0 A_StopSound(7)
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Pain.CE:
	TNT1 A 0 A_JumpIfInventory("DeadThing",1,1)
	Goto Pain
	TNT1 A 0 A_TakeFromTarget("RedeemedSoul",1)
	TNT1 A 0 A_PlaySound("weapons/redeemer/corpseexplode")
	TNT1 A 0 A_SpawnItemEx("CEGibSpawner",0,0,12,0,0,0,0,32,0)
	TNT1 A 1 A_Explode(random(1520,1600),128,0,0,128,0,0,"NoPuff","Player")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	Stop
    Pain.OKnight:
    Pain.NecroShot:
	TNT1 A 0 A_GiveToTarget("Health",random(40,60))
	Goto Pain
    Pain.Slow:
	TNT1 A 0 A_PlaySound("dsparil/slow/hit")
	TNT1 A 0 A_GiveInventory("SlowedMonster",1)
	Goto See
    Pain.LifeDrain:
	RDMN E 0 A_StopSound(7)
	RDMN E 4 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	RDMN E 4 A_Pain
	Goto See
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	RDMN E 0 A_StopSound(7)
	RDMN E 4 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	RDMN E 4 A_Pain
	Goto See
    Pain.ManaDrain:
	RDMN E 0 A_StopSound(7)
	RDMN E 4 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	RDMN E 4 A_Pain
	Goto See
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Missile:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MissileSlow")
	RDMN E 2 A_FaceTarget
	RDMN F 2 A_FaceTarget
	RDMN E 0 A_JumpIfCloser(300,"Breath")
	RDMN G 5 Bright A_CustomMissile("RedDemonFX",64,0,0,0)
	Goto See
    MissileSlow:
	RDMN E 4 A_FaceTarget
	RDMN F 4 A_FaceTarget
	RDMN E 0 A_JumpIfCloser(300,"BreathSlow")
	RDMN G 10 Bright A_CustomMissile("RedDemonFXSlow",64,0,0,0)
	Goto SeeSlow
    Breath:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"BreathSlow")
	RDMN G 0 Bright A_PlaySound("FlameBreath",7,1.0,1)
	RDMN G 0 Bright A_FaceTarget
	RDMN GGG 2 Bright A_CustomMissile("FireBreath",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	RDMN G 0 Bright A_FaceTarget
	RDMN GGG 2 Bright A_CustomMissile("FireBreath",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	RDMN G 0 Bright A_FaceTarget
	RDMN GGG 2 Bright A_CustomMissile("FireBreath",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	RDMN G 0 Bright A_FaceTarget
	RDMN GGG 2 Bright A_CustomMissile("FireBreath",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	RDMN G 0 Bright A_FaceTarget
	RDMN GGG 2 Bright A_CustomMissile("FireBreath",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	RDMN G 0 A_StopSound(7)
	Goto See
    BreathSlow:
	RDMN G 0 Bright A_PlaySound("FlameBreath",7,1.0,1)
	RDMN G 0 Bright A_FaceTarget
	RDMN GGG 4 Bright A_CustomMissile("FireBreathSlow",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	RDMN G 0 Bright A_FaceTarget
	RDMN GGG 4 Bright A_CustomMissile("FireBreathSlow",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	RDMN G 0 Bright A_FaceTarget
	RDMN G 0 Bright A_PlaySound("FlameBreath",7,1.0,1)
	RDMN GGG 4 Bright A_CustomMissile("FireBreathSlow",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	RDMN G 0 Bright A_FaceTarget
	RDMN GGG 4 Bright A_CustomMissile("FireBreathSlow",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	RDMN G 0 Bright A_FaceTarget
	RDMN G 0 Bright A_PlaySound("FlameBreath",7,1.0,1)
	RDMN GGG 4 Bright A_CustomMissile("FireBreathSlow",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	RDMN G 0 A_StopSound(7)
	Goto SeeSlow
    Melee:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"SeeSlow")
	RDMN E 6 A_FaceTarget
	RDMN F 8 A_FaceTarget
	RDMN G 6 A_CustomMeleeAttack(random[DemonAttack1](1,8)*5)
	Goto See
    MeleeSlow:
	RDMN E 12 A_FaceTarget
	RDMN F 16 A_FaceTarget
	RDMN G 12 A_CustomMeleeAttack(random[DemonAttack1](1,8)*5)
	Goto SeeSlow
    Death:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	RDMN H 0 A_StopSound(7)
	RDMN HI 6
	RDMN J 6 A_Scream
	RDMN K 6 A_NoBlocking
	RDMN L 6
	RDMN MNO 6
	RDMN P -1
	Stop
    XDeath:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	RDMN H 0 A_NoBlocking
	RDMN H 0 A_StopSound(7)
	RDMN H 6
	RDMN I 0 A_SpawnItemEx("MagmaChunk1", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
				1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 90)
	RDMN I 0 A_SpawnItemEx("MagmaChunk2", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
				1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
	RDMN I 0 A_SpawnItemEx("MagmaChunk3", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
				1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
	RDMN I 0 A_SpawnItemEx("MagmaChunk4", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
				1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
	RDMN I 6 A_SpawnItemEx("MagmaChunk5", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
				1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
	Goto Death+5
    Ice:
	"####" "#" 2
	DEMN Q 0 A_StopSound(7)
	DEMN Q 1 A_IceGuyDie
	Stop
    Death.Redeemer:
	RDMN H 0 A_PlaySound("weapons/redeemer/soulredeemed")
	RDMN H 0 A_GiveToTarget("RedeemedSoul", 1)
	RDMN H 0 A_GiveToTarget("RestoreHealth",random(7,11))
	RDMN HHHHHHHHHHHHHHHH 0 A_SpawnItemEx("SoulFragment",frandom(-4,4),frandom(-4,4),frandom(8,32),frandom(0.6,1.4),frandom(0.6,1.4),frandom(0.8,2.0),random(0,360),128)
	Goto Death
    Death.Mojo:
	TNT1 A 0 A_GiveToTarget("Mojo",random(6,10))
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.MojoActive:
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.Defile:
	TNT1 A 0 A_SpawnItemEx("DefileSpawner",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.Frost:
	"####" "#" 2
	DEMN Q 0 A_StopSound(7)
	DEMN Q 1 A_IceGuyDie
	Stop
    Raise:
	RDMN ONMLKJIH 6
	TNT1 A 0 A_TakeInventory("DeadThing",1)
	Goto See	
    }
}

ACTOR RedDemonNin : RedDemon
{
    Tag "Magma Serpent"
    Health 2100
    Speed 16
    States
    {
    Spawn:
	RDMN AA 10 A_Look
	Loop
    See:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"SeeSlow")
	RDMN A 0 A_StopSound(7)
	RDMN ABCD 3 A_Chase
	Goto See+2
    SeeSlow:
	RDMN A 0 A_StopSound(7)
	RDMN ABCD 6 A_Chase
	Goto SeeSlow+1
    Pain:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"PainSlow")
	RDMN E 4 A_StopSound(7)
	RDMN E 4 A_Pain
	Goto See
    PainSlow:
	RDMN E 8 A_StopSound(7)
	RDMN E 8 A_Pain
	Goto SeeSlow
    Pain.HoldSpell:
	"####" "#" 0 A_StopSound(7)
	"####" "#" 0 A_ChangeFlag("NOPAIN",1)
	"####" "#" 0 A_Stop
	"####" "#" 350
	"####" "#" 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Pain.Charm:
	TNT1 A 0 A_PlaySound("Teleport")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	TNT1 A 0 A_GiveInventory("RedeemedByCharmSpell",1)
	Goto See
    Pain.Curse:
	TNT1 A 0 A_PlaySound("ironlich/curse/hit")
	TNT1 A 0 A_GiveInventory("Cursed1",1)
	TNT1 A 0 A_GiveInventory("Cursed2",1)
	Goto See
    Pain.CE:
	TNT1 A 0 A_JumpIfInventory("DeadThing",1,1)
	Goto Pain
	TNT1 A 0 A_TakeFromTarget("RedeemedSoul",1)
	TNT1 A 0 A_PlaySound("weapons/redeemer/corpseexplode")
	TNT1 A 0 A_SpawnItemEx("CEGibSpawner",0,0,12,0,0,0,0,32,0)
	TNT1 A 1 A_Explode(random(1520,1600),128,0,0,128,0,0,"NoPuff","Player")
	TNT1 A 0 A_ChangeFlag("FRIENDLY",1)
	Stop
    Pain.OKnight:
    Pain.NecroShot:
	TNT1 A 0 A_GiveToTarget("Health",random(40,60))
	Goto Pain
    Pain.Slow:
	TNT1 A 0 A_PlaySound("dsparil/slow/hit")
	TNT1 A 0 A_GiveInventory("SlowedMonster",1)
	Goto See
    Pain.LifeDrain:
	RDMN E 0 A_StopSound(7)
	RDMN E 4 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	RDMN E 4 A_Pain
	Goto See
    Death.LifeDrain:
	TNT1 A 0 A_SpawnItemEx("LifeDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Pain.GManaDrain:
	RDMN E 0 A_StopSound(7)
	RDMN E 4 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	RDMN E 4 A_Pain
	Goto See
    Pain.ManaDrain:
	RDMN E 0 A_StopSound(7)
	RDMN E 4 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	RDMN E 4 A_Pain
	Goto See
    Death.GManaDrain:
	TNT1 A 0 A_SpawnItemEx("GManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.ManaDrain:
	TNT1 A 0 A_SpawnItemEx("ManaDrainGiver",0,0,0,0,0,0,0,32,0)
	Goto Death
    Missile:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"MissileSlow")
	RDMN E 2 A_FaceTarget
	RDMN F 2 A_FaceTarget
	RDMN E 0 A_JumpIfCloser(300,"Breath")
	RDMN G 5 Bright A_CustomMissile("RedDemonFXFast",64,0,0,0)
	Goto See
    MissileSlow:
	RDMN E 4 A_FaceTarget
	RDMN F 4 A_FaceTarget
	RDMN E 0 A_JumpIfCloser(300,"BreathSlow")
	RDMN G 10 Bright A_CustomMissile("RedDemonFXSlow",64,0,0,0)
	Goto SeeSlow
    Breath:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"BreathSlow")
	RDMN G 0 Bright A_PlaySound("FlameBreath",7,1.0,1)
	RDMN G 0 Bright A_FaceTarget
	RDMN GGG 2 Bright A_CustomMissile("FireBreath",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	RDMN G 0 Bright A_FaceTarget
	RDMN GGG 2 Bright A_CustomMissile("FireBreath",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	RDMN G 0 Bright A_FaceTarget
	RDMN GGG 2 Bright A_CustomMissile("FireBreath",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	RDMN G 0 Bright A_FaceTarget
	RDMN GGG 2 Bright A_CustomMissile("FireBreath",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	RDMN G 0 Bright A_FaceTarget
	RDMN GGG 2 Bright A_CustomMissile("FireBreath",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	RDMN G 0 A_StopSound(7)
	Goto See
    BreathSlow:
	RDMN G 0 Bright A_PlaySound("FlameBreath",7,1.0,1)
	RDMN G 0 Bright A_FaceTarget
	RDMN GGG 4 Bright A_CustomMissile("FireBreathSlow",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	RDMN G 0 Bright A_FaceTarget
	RDMN GGG 4 Bright A_CustomMissile("FireBreathSlow",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	RDMN G 0 Bright A_FaceTarget
	RDMN G 0 Bright A_PlaySound("FlameBreath",7,1.0,1)
	RDMN GGG 4 Bright A_CustomMissile("FireBreathSlow",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	RDMN G 0 Bright A_FaceTarget
	RDMN GGG 4 Bright A_CustomMissile("FireBreathSlow",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	RDMN G 0 Bright A_FaceTarget
	RDMN G 0 Bright A_PlaySound("FlameBreath",7,1.0,1)
	RDMN GGG 4 Bright A_CustomMissile("FireBreathSlow",72,0,frandom(-3,3),CMF_CHECKTARGETDEAD)
	RDMN G 0 A_StopSound(7)
	Goto SeeSlow
    Melee:
	TNT1 A 0 A_JumpIfInventory("SlowedMonster",1,"SeeSlow")
	RDMN E 6 A_FaceTarget
	RDMN F 8 A_FaceTarget
	RDMN G 6 A_CustomMeleeAttack(random[DemonAttack1](1,8)*5)
	Goto See
    MeleeSlow:
	RDMN E 12 A_FaceTarget
	RDMN F 16 A_FaceTarget
	RDMN G 12 A_CustomMeleeAttack(random[DemonAttack1](1,8)*5)
	Goto SeeSlow
    Death:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	RDMN H 0 A_StopSound(7)
	RDMN HI 6
	RDMN J 6 A_Scream
	RDMN K 6 A_NoBlocking
	RDMN L 6
	RDMN MNO 6
	RDMN P -1
	Stop
    XDeath:
	TNT1 A 0 A_GiveInventory("DeadThing",1)
	TNT1 A 0 A_TakeInventory("SlowedMonster",1)
	RDMN H 0 A_NoBlocking
	RDMN H 0 A_StopSound(7)
	RDMN H 6
	RDMN I 0 A_SpawnItemEx("MagmaChunk1", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
				1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 90)
	RDMN I 0 A_SpawnItemEx("MagmaChunk2", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
				1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
	RDMN I 0 A_SpawnItemEx("MagmaChunk3", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
				1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
	RDMN I 0 A_SpawnItemEx("MagmaChunk4", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
				1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
	RDMN I 6 A_SpawnItemEx("MagmaChunk5", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
				1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
	Goto Death+4
    Ice:
	"####" "#" 2
	DEMN Q 0 A_StopSound(7)
	DEMN Q 1 A_IceGuyDie
	Stop
    Death.Redeemer:
	RDMN H 0 A_PlaySound("weapons/redeemer/soulredeemed")
	RDMN H 0 A_GiveToTarget("RedeemedSoul", 1)
	RDMN H 0 A_GiveToTarget("RestoreHealth",random(7,11))
	RDMN HHHHHHHHHHHHHHHH 0 A_SpawnItemEx("SoulFragment",frandom(-4,4),frandom(-4,4),frandom(8,32),frandom(0.6,1.4),frandom(0.6,1.4),frandom(0.8,2.0),random(0,360),128)
	Goto Death
    Death.Mojo:
	TNT1 A 0 A_GiveToTarget("Mojo",random(6,10))
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.MojoActive:
	TNT1 A 0 A_PlaySound("weapons/totem/drain")
	TNT1 I 0 A_GiveToTarget("RestoreHealth",random(6,10))
	TNT1 A 0 A_SpawnItemEx("MojoEffect",0,0,64,0,0,0,0,32,0)
	Goto Death
    Death.Defile:
	TNT1 A 0 A_SpawnItemEx("DefileSpawner",0,0,0,0,0,0,0,32,0)
	Goto Death
    Death.Frost:
	"####" "#" 2
	DEMN Q 0 A_StopSound(7)
	DEMN Q 1 A_IceGuyDie
	Stop
    Raise:
	RDMN ONMLKJIH 6
	TNT1 A 0 A_TakeInventory("DeadThing",1)
	Goto See
    }
}

ACTOR MagmaChunk1 : DemonChunk
{
    States
    {
    Spawn:
	RDMA A 4
	RDMA A 10
	RDMA A 20
	Wait
    Death:
	RDMA A -1
	Stop
    }
}

ACTOR MagmaChunk2 : DemonChunk
{
    States
    {
    Spawn:
	RDMB A 4
	RDMB A 10
	RDMB A 20
	Wait
    Death:
	RDMB A -1
	Stop
    }
}

ACTOR MagmaChunk3 : DemonChunk
{
  States
  {
  Spawn:
    RDMC A 4
    RDMC A 10
    RDMC A 20
    Wait
  Death:
    RDMC A -1
    Stop
  }
}

ACTOR MagmaChunk4 : DemonChunk
{
    States
    {
    Spawn:
	RDMD A 4
	RDMD A 10
	RDMD A 20
	Wait
    Death:
	RDMD A -1
	Stop
    }
}

ACTOR MagmaChunk5 : DemonChunk
{
    States
    {
    Spawn:
	RDME A 4
	RDME A 10
	RDME A 20
	Wait
    Death:
	RDME A -1
	Stop
    }
}

ACTOR RedDemonFX : VolcanoBlast
{
    Radius 10
    Height 12
    Speed 24
    Damage 10
    Scale 1.1
    SeeSound "DemonMissileFire"
    DeathSound "MageStaffExplode"
    -ACTIVATEPCROSS
    +NOBLOCKMAP
    +MISSILE
    +NOTELEPORT
    +NOGRAVITY
    States
    {
    Spawn:
	RDFX A 0 Bright A_SpawnItemEx("RedDemonSmoke",frandom(-5,5),frandom(-5,5),frandom(-5,5),frandom(-2,2),frandom(-2,2),frandom(-2,2),0,0,0)
	RDFX A 1 Bright A_SpawnItemEx("RedDemonSmoke",frandom(-5,5),frandom(-5,5),frandom(-5,5),frandom(-2,2),frandom(-2,2),frandom(-2,2),0,0,0)
	RDFX A 0 Bright A_SpawnItemEx("RedDemonSmoke",frandom(-5,5),frandom(-5,5),frandom(-5,5),frandom(-2,2),frandom(-2,2),frandom(-2,2),0,0,0)
	RDFX A 1 Bright A_SpawnItemEx("RedDemonSmoke",frandom(-5,5),frandom(-5,5),frandom(-5,5),frandom(-2,2),frandom(-2,2),frandom(-2,2),0,0,0)
	RDFX A 0 Bright A_SpawnItemEx("RedDemonSmoke",frandom(-5,5),frandom(-5,5),frandom(-5,5),frandom(-2,2),frandom(-2,2),frandom(-2,2),0,0,0)
	RDFX A 1 Bright A_SpawnItemEx("RedDemonSmoke",frandom(-5,5),frandom(-5,5),frandom(-5,5),frandom(-2,2),frandom(-2,2),frandom(-2,2),0,0,0)
	RDFX A 0 Bright A_SpawnItemEx("RedDemonSmoke",frandom(-5,5),frandom(-5,5),frandom(-5,5),frandom(-2,2),frandom(-2,2),frandom(-2,2),0,0,0)
	RDFX A 1 Bright A_SpawnItemEx("RedDemonSmoke",frandom(-5,5),frandom(-5,5),frandom(-5,5),frandom(-2,2),frandom(-2,2),frandom(-2,2),0,0,0)
	RDFX B 0 Bright A_SpawnItemEx("RedDemonSmoke",frandom(-5,5),frandom(-5,5),frandom(-5,5),frandom(-2,2),frandom(-2,2),frandom(-2,2),0,0,0)
	RDFX B 1 Bright A_SpawnItemEx("RedDemonSmoke",frandom(-5,5),frandom(-5,5),frandom(-5,5),frandom(-2,2),frandom(-2,2),frandom(-2,2),0,0,0)
	RDFX B 0 Bright A_SpawnItemEx("RedDemonSmoke",frandom(-5,5),frandom(-5,5),frandom(-5,5),frandom(-2,2),frandom(-2,2),frandom(-2,2),0,0,0)
	RDFX B 1 Bright A_SpawnItemEx("RedDemonSmoke",frandom(-5,5),frandom(-5,5),frandom(-5,5),frandom(-2,2),frandom(-2,2),frandom(-2,2),0,0,0)
	RDFX B 0 Bright A_SpawnItemEx("RedDemonSmoke",frandom(-5,5),frandom(-5,5),frandom(-5,5),frandom(-2,2),frandom(-2,2),frandom(-2,2),0,0,0)
	RDFX B 1 Bright A_SpawnItemEx("RedDemonSmoke",frandom(-5,5),frandom(-5,5),frandom(-5,5),frandom(-2,2),frandom(-2,2),frandom(-2,2),0,0,0)
	RDFX B 0 Bright A_SpawnItemEx("RedDemonSmoke",frandom(-5,5),frandom(-5,5),frandom(-5,5),frandom(-2,2),frandom(-2,2),frandom(-2,2),0,0,0)
	RDFX B 1 Bright A_SpawnItemEx("RedDemonSmoke",frandom(-5,5),frandom(-5,5),frandom(-5,5),frandom(-2,2),frandom(-2,2),frandom(-2,2),0,0,0)
	RDFX C 0 Bright A_SpawnItemEx("RedDemonSmoke",frandom(-5,5),frandom(-5,5),frandom(-5,5),frandom(-2,2),frandom(-2,2),frandom(-2,2),0,0,0)
	RDFX C 1 Bright A_SpawnItemEx("RedDemonSmoke",frandom(-5,5),frandom(-5,5),frandom(-5,5),frandom(-2,2),frandom(-2,2),frandom(-2,2),0,0,0)
	RDFX C 0 Bright A_SpawnItemEx("RedDemonSmoke",frandom(-5,5),frandom(-5,5),frandom(-5,5),frandom(-2,2),frandom(-2,2),frandom(-2,2),0,0,0)
	RDFX C 1 Bright A_SpawnItemEx("RedDemonSmoke",frandom(-5,5),frandom(-5,5),frandom(-5,5),frandom(-2,2),frandom(-2,2),frandom(-2,2),0,0,0)
	RDFX C 0 Bright A_SpawnItemEx("RedDemonSmoke",frandom(-5,5),frandom(-5,5),frandom(-5,5),frandom(-2,2),frandom(-2,2),frandom(-2,2),0,0,0)
	RDFX C 1 Bright A_SpawnItemEx("RedDemonSmoke",frandom(-5,5),frandom(-5,5),frandom(-5,5),frandom(-2,2),frandom(-2,2),frandom(-2,2),0,0,0)
	RDFX C 0 Bright A_SpawnItemEx("RedDemonSmoke",frandom(-5,5),frandom(-5,5),frandom(-5,5),frandom(-2,2),frandom(-2,2),frandom(-2,2),0,0,0)
	RDFX C 1 Bright A_SpawnItemEx("RedDemonSmoke",frandom(-5,5),frandom(-5,5),frandom(-5,5),frandom(-2,2),frandom(-2,2),frandom(-2,2),0,0,0)
	RDFX D 0 Bright A_SpawnItemEx("RedDemonSmoke",frandom(-5,5),frandom(-5,5),frandom(-5,5),frandom(-2,2),frandom(-2,2),frandom(-2,2),0,0,0)
	RDFX D 1 Bright A_SpawnItemEx("RedDemonSmoke",frandom(-5,5),frandom(-5,5),frandom(-5,5),frandom(-2,2),frandom(-2,2),frandom(-2,2),0,0,0)
	RDFX D 0 Bright A_SpawnItemEx("RedDemonSmoke",frandom(-5,5),frandom(-5,5),frandom(-5,5),frandom(-2,2),frandom(-2,2),frandom(-2,2),0,0,0)
	RDFX D 1 Bright A_SpawnItemEx("RedDemonSmoke",frandom(-5,5),frandom(-5,5),frandom(-5,5),frandom(-2,2),frandom(-2,2),frandom(-2,2),0,0,0)
	RDFX D 0 Bright A_SpawnItemEx("RedDemonSmoke",frandom(-5,5),frandom(-5,5),frandom(-5,5),frandom(-2,2),frandom(-2,2),frandom(-2,2),0,0,0)
	RDFX D 1 Bright A_SpawnItemEx("RedDemonSmoke",frandom(-5,5),frandom(-5,5),frandom(-5,5),frandom(-2,2),frandom(-2,2),frandom(-2,2),0,0,0)
	RDFX D 0 Bright A_SpawnItemEx("RedDemonSmoke",frandom(-5,5),frandom(-5,5),frandom(-5,5),frandom(-2,2),frandom(-2,2),frandom(-2,2),0,0,0)
	RDFX D 1 Bright A_SpawnItemEx("RedDemonSmoke",frandom(-5,5),frandom(-5,5),frandom(-5,5),frandom(-2,2),frandom(-2,2),frandom(-2,2),0,0,0)
	Loop
    Death:
	XPL1 A 0 Bright A_Scream
	XPL1 A 4 Bright A_SpawnItemEx("RedDemonFXExplode",0,0,0,0,0,0,0,32,0)
	XPL1 B 4 Bright A_Explode(40,64,0)
	XPL1 CDEF 4 Bright
	Stop
    }
}

ACTOR RedDemonFXFast : RedDemonFX
{
    Speed 36
}

ACTOR RedDemonSmoke : Puffy
{
    Scale 1.25
}

ACTOR RedDemonFXSlow : RedDemonFX
{
    Speed 12
    States
    {
    Spawn:
	RDFX AAAABBBBCCCC 2 Bright A_SpawnItemEx("RedDemonSmoke", random2[BeastPuff]()*0.015625, random2[BeastPuff]()*0.015625, 
					random2[BeastPuff]()*0.015625, 0, 0, 0, 0, SXF_ABSOLUTEPOSITION, 64)
	Loop
    }
}

ACTOR FireBreathSlow : FireBreath
{
    Speed 9
    States
    {
    Spawn:
	FRBS EFGEFGEFGEFGEFGEFG 6
    Death:
    	TNT1 A 0
    	Stop
    }
}

ACTOR RedDemonFX2
{
    Radius 8
    Height 6
    Speed 2
    Damage 2
    DamageType "Fire"
    Gravity 0.125
    -ACTIVATEPCROSS
    +NOBLOCKMAP
    +MISSILE
    +DROPOFF
    +NOTELEPORT
    DeathSound "world/volcano/blast"
    States
    {
    Spawn:
	VTFB AB 4 Bright
	Loop
    Death:
	SFFI C 0 Bright A_Scream
	SFFI CBABCDE 4 Bright
	Stop
    }
}

ACTOR RedDemonFXExplode
{
    States
    {
    Spawn:
	TNT1 A 0
	TNT1 A 0 A_Burst("RedDemonFX2")
	Stop
    }
}

//====================================================================
//
// D'Sparil
//
//====================================================================

ACTOR DSparilBody 156
{
    +FLOORCLIP
    +DORMANT
    +NONSHOOTABLE
    +NOTARGET
    +CANTSEEK
    +SOLID
    +NEVERFAST
    +NOINTERACTION
    -SHOOTABLE
    -COUNTKILL
    MONSTER
    Mass 0xffffff
    States
    {
    Spawn:
	SOR2 A 3 A_Look
	Loop
    See:
	SOR2 A 25
	SCPS A 0 A_PlaySound("dsparil/zap", CHAN_BODY, 1.0, 0, ATTN_NONE)
	SCPS AB 5 Bright
	SCPS C 4 Bright
	SOR2 A 20
	SCPS A 0 A_PlaySound("dsparil/zap", CHAN_BODY, 1.0, 0, ATTN_NONE)
	SCPS AB 5 Bright
	SCPS C 4 Bright
	SOR2 A 9
	SOR2 A 1 A_SpawnItemEx("DSparilRise",0,0,0,0,0,0,0,32,0)
	SOR2 A 1 A_ChangeFlag("FRIENDLY",1)
	SOR2 A 1 A_UnSetSolid
	SOR2 A -1
	Stop 
    }
}

ACTOR DSparilRise
{
    RenderStyle Add
    States
    {
    Spawn:
	SOR2 AB 4
	SOR2 C 4 A_PlaySound("dsparil/rise", CHAN_BODY, 1.0, 0, ATTN_NONE)
	SOR2 DEF 4
	SOR2 G 12 //A_PlaySound("dsparil/sight", CHAN_BODY, 1.0, 0, ATTN_NONE)
	SOR2 G 1 A_SpawnItemEx("DSparilGhost",0,0,0,0,0,0,0,32,0)
	Stop
    }
}

ACTOR DSparilGhost : Sorcerer2 157
{
    Tag "D'Sparil's Ghost"
    +FLOORCLIP
    +DONTMORPH
    +NOFEAR
    +MISSILEMORE
    +MISSILEEVENMORE
    +BRIGHT
    +NOICEDEATH
//    +DONTRIP
    +NEVERFAST
    -NORADIUSDMG
    RenderStyle Add
    Health 12000
    DropItem GoldManaSpawner
    DropItem GoldManaSpawner 64
    DropItem GoldManaSpawner 128
    DropItem StaffOfDSparil
    Species "DSparil"
    PainChance "Fire", 0
    PainChance "Pod", 0
    PainChance "HellRain", 64
    DamageFactor "Sacred", 1.25
    DamageFactor "Pod", 0
    DamageFactor "FireWave", 0.0
    DamageFactor "Meteor", 0.33
    DamageFactor "Dragon", 0.25
    DamageFactor "QuietusTrail", 0.3
    DamageFactor "Quietus", 0.3
    DamageFactor "Melee", 0.2
    DamageFactor "Frost", 0.6
    DamageFactor "Mojo", 0.75
    DamageFactor "MojoActive", 0.75
    DamageFactor "Defile", 0.75
    DamageFactor "Lantern", 0.2
    DamageFactor "DSparil", 0.2
    DamageFactor "Serpent", 0.5
    DamageFactor "Fire", 0.8
    DamageFactor "Loric", 0.666
    DamageFactor "Cube", 0.3
    DamageFactor "PodExplode", 0.75
    DamageFactor "Sword", 0.75
    DamageFactor "Iron", 0.55
    States
    {
    See:
	SOR2 M 0 A_TakeInventory("DSparilLightningCheck",50)
	SOR2 MNOP 4 A_Chase
	Goto See+1
    Missile:
	SOR2 R 0 A_JumpIfHealthLower(4000,"Missile2")
	SOR2 R 0 A_Jump(96,"Summon","Teleport","Slow")
    Lightning:
	SOR2 R 9
	SOR2 S 9 A_FaceTarget
	SOR2 T 0 A_PlaySoundEx("dsparil/attack","Voice",0,2)
	SOR2 T 20 A_CustomMissile("FSorcerer2FX1",52,0)
	Goto See
    Summon:
	SOR2 R 0 A_JumpIf(3 <= (ACS_ExecuteWithResult(806,0,0,0,0)),"Missile")
	SOR2 R 9
	SOR2 S 9 A_FaceTarget
	SOR2 T 0 A_PlaySoundEx("dsparil/attack","Voice",0,2)
	SOR2 T 0 A_CustomMissile("DiscipleSummoner",48,0,-45,1)
	SOR2 T 20 A_CustomMissile("DiscipleSummoner",48,0,45,1)
	Goto See
    Teleport:
	SOR2 G 0 A_UnSetShootable
	SOR2 GHIJKL 4
	SOR2 L 0 A_PlaySound("misc/teleport")
	TNT1 A 5
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	TNT1 A 5
	SOR2 L 0 A_PlaySound("misc/teleport")
	SOR2 LKJIHG 4
	SOR2 G 0 A_SetShootable
	Goto See
    Missile2:
	SOR2 R 0 A_JumpIfInventory("DSparilScriptCheck",1,3)
	SOR2 R 0 ACS_Execute(200,0,0,0,0)
	SOR2 R 0 A_GiveInventory("DSparilScriptCheck",1)
	SOR2 R 0 A_Jump(128,"SummonPW","Teleport","Slow")
    LightningPW:
	SOR2 R 9
	SOR2 S 2 A_FaceTarget
	SOR2 R 0 A_JumpIfInventory("DSparilLightningCheck",20,"See")
	SOR2 R 0 A_PlaySound("dsparil/lightning")
	SOR2 T 0 A_FaceTarget
	SOR2 T 2 Bright A_CustomMissile("DSparilLightning",52,0,frandom(-4,4))
	SOR2 T 0 A_Jump(50,2)
	SOR2 T 0 A_GiveInventory("DSparilLightningCheck",1)
	Goto LightningPW+2
	SOR2 T 0 A_GiveInventory("DSparilLightningCheck",2)
	Goto LightningPW+2
    SummonPW:
	SOR2 R 0 A_JumpIf(5 <= (ACS_ExecuteWithResult(806,0,0,0,0)),"Missile")
	SOR2 R 9
	SOR2 S 9 A_FaceTarget
	SOR2 T 0 A_PlaySoundEx("dsparil/attack","Voice",0,2)
	SOR2 T 0 A_Jump(220,5)
	SOR2 R 0 A_JumpIf(1 <= (ACS_ExecuteWithResult(807,0,0,0,0)),4)
	SOR2 T 0 A_Jump(128,2)
	SOR2 T 20 A_CustomMissile("SkullWizardSummoner",48,0,-45,1)
	Goto See
	SOR2 T 20 A_CustomMissile("SkullWizardSummoner",48,0,45,1)
	Goto See
	SOR2 T 0 A_CustomMissile("DiscipleSummoner",48,0,-45,1)
	SOR2 T 20 A_CustomMissile("DiscipleSummoner",48,0,45,1)
	Goto See
    Slow:
	SOR2 R 9
	SOR2 S 9 A_FaceTarget
	SOR2 T 0 A_PlaySoundEx("dsparil/attack","Voice",0,2)
	SOR2 T 20 A_CustomMissile("SlowSpell",52,0)
	Goto See
    Death:
	SDTH A 0 ACS_Execute(199,0,0,0,0)
	SDTH A 0 A_PlaySound("dsparil/scream")
	SDTH AA 0 Thing_Destroy(8888,0,0)
	SDTH ABC 5 Bright
	SDTH DEFDEF 6 Bright
	SDTH DEFDEF 6 Bright
	SDTH DEFDEF 6 Bright
	SDTH A 0 A_PlaySound("dsparil/explode")
	SDTH A 0 Thing_Destroy(8888,0,0)
	SDTH A 0 Thing_Destroy(8889,0,0)
	TNT1 AAAAAAAAAAAAAA 0 A_TossGib
	SDTH G 9 Bright A_Fall
	SDTH H 6 Bright
	SDTH IJK 6
	SDTH A 0 A_PlaySound("dsparil/bones")
	SDTH LMN 6
	SDTH O -1
	Stop
    }
}

ACTOR DSparilGhostNin : DSparilGhost
{
    Tag "D'Sparil's Ghost"
    Health 15000
}

Actor FSorcerer2FX1 : Sorcerer2FX1 replaces Sorcerer2FX1
{
    SpawnID 0
    DamageType "Electric"
    Speed 24
    Damage 75
    +EXTREMEDEATH
    +ACTIVATEIMPACT
    -ACTIVATEPCROSS
    States
    {
    Death:
	FX16 G 0 Bright A_PlaySound("dsparil/lightning/hit")
	FX16 G 5 Bright A_Explode(random(250,300),128,0)
	FX16 HIJKL 5 Bright
	Stop
    }
}

ACTOR FSorcerer2FX1Fast : FSorcerer2FX1
{
    Speed 36
}

ACTOR DSparilLightning
{
    Radius 2
    Height 2
    Speed 40
    Damage 3
    +SEEKERMISSILE
    -ACTIVATEPCROSS
    DamageType "Electric"
    Projectile
    DeathSound "weapons/lightningend"
    States
    {
    Spawn:
	TNT1 A 0
	TNT1 AAAAAA 1 A_SpawnItemEx("LightningTrail",0,0,0,0,0,0,0,32)
	TNT1 A 0 A_ChangeVelocity(0,frandom(-6,6),frandom(-6,6),1)
//	TNT1 A 0 A_CustomMissile("DSparilLightning",0,0,frandom(-8,8),230,frandom(-8,8))
	TNT1 AAAAA 1 A_SpawnItemEx("LightningTrail",0,0,0,0,0,0,0,32)
	TNT1 A 0 A_SeekerMissile(15,15)
	Loop
//	Stop
    Death:
	TNT1 A 0
	TNT1 A 1 A_Scream
	Stop
    }
}

ACTOR DSparilLightningFast : DSparilLightning
{
    Speed 60
}

Actor LightningTrail
{
    +NOINTERACTION
    RenderStyle Add
    Scale 0.5
    Alpha 1
    States
    {
    Spawn:
	FAXE TUVWX 2 Bright
	Stop
    }
}

ACTOR DSparilScriptCheck : Inventory
{
    Inventory.Amount 1
    Inventory.MaxAmount 50
}

ACTOR DSparilLightningCheck : Inventory
{
    Inventory.Amount 1
    Inventory.MaxAmount 20
}

ACTOR DiscipleSummoner : SorcFX3 replaces SorcFX3
{
    -ACTIVATEPCROSS
    SeeSound ""
    Translation "0:255=%[0.0,0.0,0.0]:[1.2,0.0,1.2]"
    States
    {
    Death:
	SBS3 A 4 Bright
	SBS3 A 0 Bright A_SpawnItemEx("DiscipleRise")
	Stop
    }
}

ACTOR DiscipleRise
{
    States
    {
    Spawn:
    Death:
	TNT1 A 0
	BISH P 0 Bright A_PlaySound("SorcererBishopSpawn")
	BISH P 4 Bright A_SpawnItemEx("DiscipleSummonFX")
	BISH ON 4 Bright
	BISH MLKJIH 3 Bright
	BISH G 3 Bright A_SpawnItemEx("DiscipleChecker")
	Stop
    }
}

ACTOR DiscipleChecker
{
    MONSTER
    -COUNTKILL
    Radius 18
    Height 68
    States
    {
    Spawn:
	TNT1 A 0
	TNT1 A 0 A_UnSetSolid
	TNT1 A 0 A_SpawnItemEx("Disciple",0,0,0,0,0,0,0,0,0,8888)
	Stop
    }
}

ACTOR DiscipleSummonFX : SorcFX3Explosion
{
    Translation "0:255=%[0.0,0.0,0.0]:[1.2,0.0,1.2]"
}

ACTOR SkullWizardSummoner : SorcFX3
{
    -ACTIVATEPCROSS
    SeeSound ""
    Translation "0:255=%[0.0,0.0,0.0]:[1.0,0.25,0.2]"
    States
    {
    Death:
	SBS3 A 4 Bright
	SBS3 A 0 Bright A_SpawnItemEx("SkullWizardRise")
	Stop
    }
}

ACTOR SkullWizardRise
{
    Scale 1.15
    States
    {
    Spawn:
    Death:
	TNT1 A 0
	SKWZ P 0 Bright A_PlaySound("SorcererBishopSpawn")
	SKWZ P 4 Bright A_SpawnItemEx("SkullWizardSummonFX")
	SKWZ ON 4 Bright
	SKWZ MLKJIH 3 Bright
	SKWZ G 3 Bright A_SpawnItemEx("SkullWizardChecker")
	Stop
    }
}

ACTOR SkullWizardChecker
{
    MONSTER
    -COUNTKILL
    Radius 18
    Height 68
    States
    {
    Spawn:
	TNT1 A 0
	TNT1 A 0 A_UnSetSolid
	TNT1 A 0 A_SpawnItemEx("SkullWizard",0,0,0,0,0,0,0,0,0,8889)
	Stop
    }
}

ACTOR SkullWizardSummonFX : SorcFX3Explosion
{
    Translation "0:255=%[0.0,0.0,0.0]:[1.0,0.25,0.2]"
}

ACTOR SlowSpell
{
    Height 5
    Radius 5
    Speed 22
    Damage 1
    PROJECTILE
    -ACTIVATEPCROSS
    +STRIFEDAMAGE
    +BLOODLESSIMPACT
    +DONTREFLECT
    +SEEKERMISSILE
    +FORCEPAIN
    RenderStyle Add
    DamageType "Slow"
    Alpha 0.8
    States
    {
    Spawn:
	SLOW A 0
	SLOW A 0 A_PlaySound("ironlich/curse/active", CHAN_AUTO, 1.0, 1)
	SLOW A 0 A_SeekerMissile(8,8,2)
	SLOW AAA 1 Bright A_SpawnItemEx("SlowSpellTrail",8,0,0,0,0,0,0,32,0)
	SLOW A 0 A_BishopMissileWeave
	SLOW B 0 A_SeekerMissile(8,8,2)
	SLOW BBB 1 Bright A_SpawnItemEx("SlowSpellTrail",8,0,0,0,0,0,0,32,0)
	SLOW B 0 A_BishopMissileWeave
	SLOW C 0 A_SeekerMissile(8,8,2)
	SLOW CCC 1 Bright A_SpawnItemEx("SlowSpellTrail",8,0,0,0,0,0,0,32,0)
	SLOW C 0 A_BishopMissileWeave
	SLOW D 0 A_SeekerMissile(8,8,2)
	SLOW DDD 1 Bright A_SpawnItemEx("SlowSpellTrail",8,0,0,0,0,0,0,32,0)
	SLOW D 0 A_BishopMissileWeave
	SLOW E 0 A_SeekerMissile(8,8,2)
	SLOW EEE 1 Bright A_SpawnItemEx("SlowSpellTrail",8,0,0,0,0,0,0,32,0)
	SLOW E 0 A_BishopMissileWeave
	SLOW F 0 A_SeekerMissile(8,8,2)
	SLOW FFF 1 Bright A_SpawnItemEx("SlowSpellTrail",8,0,0,0,0,0,0,32,0)
	SLOW F 0 A_BishopMissileWeave
	Loop
    Death:
	TNT1 A 0 A_SpawnItemEx("SlowSpellExplode",0,0,0,0,0,0,0,32,0)
	Stop
    }
}

ACTOR SlowSpellNM : SlowSpell
{
    DamageType "SlowNM"
}

ACTOR SlowSpellExplode
{
    Height 5
    Radius 5
    RenderStyle Add
    Alpha 0.8
    Scale 1.35
    PROJECTILE
    -ACTIVATEPCROSS
    States
    {
    Spawn:
	TNT1 A 0
	SLOW G 4 Bright A_PlaySound("dsparil/slow/explode")
	SLOW HIJK 4 Bright A_FadeOut
	Wait
    }
}

ACTOR SlowSpellTrail
{
    Radius 10
    Height 6
    Speed 0
    Scale 0.6
    +NOGRAVITY
    +NONSHOOTABLE
    +NOTELEPORT
    +NOCLIP
    +NOBLOCKMAP
    RenderStyle Add
    Alpha 0.6
    States
    {
    Spawn:
        TNT1 A 2
        OKFX JKLMN 5 A_FadeOut
        Stop
    }
}

ACTOR PowerHalfSpeed : PowerSpeed
{
    Speed 0.5
    Inventory.Icon ""
}

//====================================================================
//
// Hub 3 Bosses
//
//====================================================================

//----------------------------------------------------------
// Citadel Boss
//----------------------------------------------------------

ACTOR FBerserker 201
{
    Tag "Berserker"
    Health 3600
    Radius 36
    Height 96
    Mass 2000
    Speed 22
    Scale 1.5
    PainChance 20
    DamageFactor "Normal", 0.5
    DamageFactor "Meteor", 0.2
    DamageFactor "FireWave", 0.15
    DamageFactor "Dragon", 0.25
    DamageFactor "Lantern", 0.25
    DamageFactor "QuietusTrail", 0.2
    DamageFactor "Quietus", 0.2
    DamageFactor "Melee", 0.4
    DamageFactor "Sword", 0.5
    DamageFactor "Holy", 0.45
    DamageFactor "Sacred", 0.5
    DamageFactor "Iron", 0.55
    DamageFactor "Bloodscourge", 0.4
    DamageFactor "Cube", 0.3
    PainChance "GreenGas", 0
    PainChance "BloodScourge", 0
    MONSTER
    +BOSS
    +BOSSDEATH
    +DONTMORPH
    +NOFEAR
    +NOICEDEATH
    +NEVERFAST
    +NOTARGET
//    +MISSILEMORE
    +MISSILEEVENMORE
    +EXTREMEDEATH
//    +NORADIUSDMG
    MeleeRange 108
    SeeSound "berserker/see"
    PainSound "berserker/pain"
    DeathSound "berserker/death"
    ActiveSound "berserker/active"
    Obituary "%o was hammered by a berserker"
    HitObituary "%o had %p block knocked off by a berserker"
    States
    {
    Spawn:
	BSRK AAAABBBB 3 A_Look
	Loop
    See:
	BSRK A 0 A_SpawnItemEx("BerserkerImageA",0,0,0,0,0,0,0,32,0)
	BSRK A 2 A_Chase
	BSRK A 0 A_SpawnItemEx("BerserkerImageA",0,0,0,0,0,0,0,32,0)
	BSRK A 2 A_Chase
	BSRK A 0 A_SpawnItemEx("BerserkerImageA",0,0,0,0,0,0,0,32,0)
	BSRK A 0 A_PlaySound("berserker/step", CHAN_6)
	BSRK A 2 A_Chase
	BSRK B 0 A_SpawnItemEx("BerserkerImageA",0,0,0,0,0,0,0,32,0)
	BSRK B 2 A_Chase
	BSRK B 0 A_SpawnItemEx("BerserkerImageA",0,0,0,0,0,0,0,32,0)
	BSRK B 2 A_Chase
	BSRK B 0 A_SpawnItemEx("BerserkerImageA",0,0,0,0,0,0,0,32,0)
	BSRK B 2 A_Chase
	BSRK C 0 A_SpawnItemEx("BerserkerImageA",0,0,0,0,0,0,0,32,0)
	BSRK C 2 A_Chase
	BSRK C 0 A_SpawnItemEx("BerserkerImageA",0,0,0,0,0,0,0,32,0)
	BSRK C 2 A_Chase
	BSRK C 0 A_SpawnItemEx("BerserkerImageA",0,0,0,0,0,0,0,32,0)
	BSRK C 0 A_PlaySound("berserker/step", CHAN_6)
	BSRK C 2 A_Chase
	BSRK D 0 A_SpawnItemEx("BerserkerImageA",0,0,0,0,0,0,0,32,0)
	BSRK D 2 A_Chase
	BSRK D 0 A_SpawnItemEx("BerserkerImageA",0,0,0,0,0,0,0,32,0)
	BSRK D 2 A_Chase
	BSRK D 0 A_SpawnItemEx("BerserkerImageA",0,0,0,0,0,0,0,32,0)
	BSRK D 2 A_Chase
	Loop
    Melee:
    Missile:
	BSRK E 0 A_PlaySound("berserker/attack",CHAN_6,0.4)
	BSRK EF 6 A_FaceTarget
	BSRK G 0 A_FaceTarget
	BSRK G 2 Bright A_PlaySound("berserker/swing",CHAN_5)
	BSRK G 8 Bright A_CustomComboAttack("HomingNapalmHammer",64,50,"berserker/hit")
	BSRK G 0 A_Jump(64,1)
	Goto See
	BSRK E 0 A_PlaySound("berserker/attack",CHAN_6,0.4)
	BSRK EF 6 A_FaceTarget
	BSRK G 0 A_FaceTarget
	BSRK G 2 Bright A_PlaySound("berserker/swing",CHAN_5)
	BSRK G 8 Bright A_CustomComboAttack("HomingNapalmHammer",64,50,"berserker/hit")
	Goto See
    Pain:
	BSRK H 2
	BSRK H 2 A_Pain
	Goto See
    Death:
	BSRK I 6 A_Scream
	BSRK JKLMN 6
	BSRK O 6 A_NoBlocking
	BSRK P 6
	BSRK Q -1
	Stop
    }
}

ACTOR BerserkerNin : FBerserker
{
    Tag "Berserker"
    Health 4000
}

ACTOR BerserkerImageA
{
    Scale 1.5
    RenderStyle Add
    Alpha 0.7
    +NOINTERACTION
    States
    {
    Spawn:
	BSRK A 1 A_FadeOut(0.06)
	Wait
    }
}

ACTOR BerserkerImageB
{
    Scale 1.5
    RenderStyle Add
    Alpha 0.7
    +NOINTERACTION
    States
    {
    Spawn:
	BSRK B 1 A_FadeOut(0.06)
	Wait
    }
}

ACTOR BerserkerImageC
{
    Scale 1.5
    RenderStyle Add
    Alpha 0.7
    +NOINTERACTION
    States
    {
    Spawn:
	BSRK C 1 A_FadeOut(0.06)
	Wait
    }
}

ACTOR BerserkerImageD
{
    Scale 1.5
    RenderStyle Add
    Alpha 0.7
    +NOINTERACTION
    States
    {
    Spawn:
	BSRK D 1 A_FadeOut(0.06)
	Wait
    }
}

ACTOR BerserkerPuff
{
    +EXTREMEDEATH
    +NOINTERACTION
}

//----------------------------------------------------------
// Cathedral Boss
//----------------------------------------------------------

ACTOR OblivionKnight 202
{
    Tag "Oblivion Knight"
    Health 3400
    Radius 36
    Height 96
    Mass 2000
    Speed 16
    Scale 1.3
    Species "OblivionKnight"
    PainThreshold 150
    PainChance 40
    PainChance "GreenGas", 0
    PainChance "BloodScourge", 0
    PainChance "Pod", 0
    PainChance "HellRain", 50
    DamageFactor "Normal", 0.6
    DamageFactor "Sacred", 1.25
    DamageFactor "Holy", 1.2
    DamageFactor "Meteor", 0.25
    DamageFactor "FireWave", 0.15
    DamageFactor "Dragon", 0.25
    DamageFactor "Lantern", 0.25
    DamageFactor "QuietusTrail", 0.15
    DamageFactor "Quietus", 0.15
    DamageFactor "Melee", 0.4
    DamageFactor "DSparil", 0.5
    DamageFactor "Serpent", 0.5
    DamageFactor "Bloodscourge", 0.5
    DamageFactor "Iron", 0.55
    DamageFactor "Fire", 0.8
    DamageFactor "Mojo", 0.75
    DamageFactor "MojoActive", 0.75
    DamageFactor "Defile", 0.75
    DamageFactor "Loric", 0.35
    DamageFactor "Cube", 0.3
    DamageFactor "Frost", 0.8
    DamageFactor "Ice", 0.8
    DamageFactor "PodExplode", 0.8
    DamageFactor "Sword", 0.25
    MeleeRange 116
    MONSTER
    +BOSS
    +BOSSDEATH
    +NOBLOOD
    +DONTMORPH
    +NOFEAR
    +NOICEDEATH
    +NEVERFAST
    +NOTARGET
    +NOTARGETSWITCH
    +MISSILEMORE
    +MISSILEEVENMORE
    +NOINFIGHTSPECIES
    +DONTHARMSPECIES
    SeeSound "oknight/sight"
    PainSound "oknight/pain"
    DeathSound "oknight/death"
    ActiveSound "oknight/active"
    Obituary "%o was haunted by an oblivion knight"
    States
    {
    Spawn:
	OKNI AB 10 A_Look
	Loop
    See:
	OKNI ABCD 5 A_VileChase
	Loop
    Melee:
	OKNI E 4 A_FaceTarget
	OKNI F 5 A_FaceTarget
	OKNI G 5 A_CustomMeleeAttack(6*random(1,8),"oknight/hit","oknight/swing","OKnight",1)
	Goto See
    Missile:
	OKNI G 0 A_Jump(256,"Spear","Necro","Summon","Curse")
    Spear:
	OKNI E 4 A_FaceTarget
	OKNI F 5 A_FaceTarget
	OKNI G 0 A_PlaySound("oknight/spear",CHAN_WEAPON,1.0,0)
	OKNI G 5 A_CustomMissile("WormwoodSpear",48,0,0)
	OKNI G 8 A_FaceTarget
	OKNI E 4 A_FaceTarget
	OKNI F 5 A_FaceTarget
	OKNI G 0 A_PlaySound("oknight/spear",CHAN_WEAPON,1.0,0)
	OKNI G 0 A_CustomMissile("WormwoodSpear",48,0,-8)
	OKNI G 5 A_CustomMissile("WormwoodSpear",48,0,8)
	OKNI G 8 A_FaceTarget
	OKNI E 4 A_FaceTarget
	OKNI F 5 A_FaceTarget
	OKNI G 0 A_PlaySound("oknight/spear",CHAN_WEAPON,1.0,0)
	OKNI G 0 A_CustomMissile("WormwoodSpear",48,0,-16)
	OKNI G 5 A_CustomMissile("WormwoodSpear",48,0,16)
	OKNI G 8 A_FaceTarget
	OKNI G 0 A_Jump(128,1)
	Goto See
    Necro:
	OKNI E 4 A_FaceTarget
	OKNI F 5 A_FaceTarget
	OKNI G 0 A_PlaySound("oknight/necro",CHAN_WEAPON,1.0,0)
	OKNI G 0 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 1 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 0 A_FaceTarget
	OKNI G 0 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 1 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 0 A_FaceTarget
	OKNI G 0 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 1 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 0 A_FaceTarget
	OKNI G 0 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 1 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 0 A_FaceTarget
	OKNI G 0 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 1 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 0 A_FaceTarget
	OKNI G 0 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 1 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 0 A_FaceTarget
	OKNI G 0 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 1 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 0 A_FaceTarget
	OKNI G 0 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 1 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 0 A_FaceTarget
	OKNI G 0 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 1 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 0 A_FaceTarget
	OKNI G 0 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 1 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 0 A_FaceTarget
	OKNI G 0 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 1 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 0 A_FaceTarget
	OKNI G 0 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 1 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 0 A_FaceTarget
	OKNI G 0 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 1 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 0 A_FaceTarget
	OKNI G 0 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 1 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 0 A_FaceTarget
	OKNI G 0 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 1 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 0 A_FaceTarget
	OKNI G 0 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 1 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 0 A_FaceTarget
	OKNI G 0 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 1 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 0 A_FaceTarget
	OKNI G 0 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 1 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 0 A_FaceTarget
	OKNI G 0 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 1 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 0 A_FaceTarget
	OKNI G 0 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 1 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 0 A_FaceTarget
	OKNI G 0 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 1 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 0 A_FaceTarget
	OKNI G 0 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 1 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 0 A_FaceTarget
	OKNI G 0 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 1 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 0 A_FaceTarget
	OKNI G 0 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 1 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 0 A_FaceTarget
	OKNI G 0 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 1 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 0 A_FaceTarget
	OKNI G 0 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 1 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 0 A_FaceTarget
	OKNI G 0 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 1 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 0 A_FaceTarget
	OKNI G 0 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 1 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 0 A_FaceTarget
	OKNI G 0 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 1 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 0 A_FaceTarget
	OKNI G 0 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	OKNI G 1 A_CustomMissile("NecroShot",random(44,52),random(-8,8),random(-20,20))
	Goto See
    Summon:
	OKNI E 4 A_FaceTarget
	OKNI F 5 A_FaceTarget
	OKNI G 0 A_CustomMissile("OKnightSummoner",0,0,frandom(-50,50)) //A_SpawnItemEx("OKnightSummoner",0,0,0,frandom(80,120),0,0,frandom(-50,50),48,0) //A_CustomMissile("OKnightSummoner",0,0,frandom(-50,50))
	OKNI G 5 A_CustomMissile("OKnightSummoner",0,0,frandom(-50,50)) //A_SpawnItemEx("OKnightSummoner",0,0,0,frandom(80,120),0,0,frandom(-50,50),48,0) //A_CustomMissile("OKnightSummoner",0,0,frandom(-50,50))
	Goto See
    Curse:
	OKNI G 0 A_Jump(256,"Weak","Gravity","Blindness","Confusion","BloodMana","Slow")
    Weak:
	OKNI E 4 A_FaceTarget
	OKNI F 5 A_FaceTarget
	OKNI G 0 A_PlaySound("oknight/curse",CHAN_WEAPON,1.0,0)
	OKNI G 5 A_CustomMissile("CurseSpell",48,0,0)
	Goto See
    Gravity:
	OKNI E 4 A_FaceTarget
	OKNI F 5 A_FaceTarget
	OKNI G 0 A_PlaySound("oknight/curse",CHAN_WEAPON,1.0,0)
	OKNI G 5 A_CustomMissile("NoJumpSpell",48,0,0)
	Goto See
    Blindness:
	OKNI E 4 A_FaceTarget
	OKNI F 5 A_FaceTarget
	OKNI G 0 A_PlaySound("oknight/curse",CHAN_WEAPON,1.0,0)
	OKNI G 5 A_CustomMissile("DimVisionSpell",48,0,0)
	Goto See
    Confusion:
	OKNI E 4 A_FaceTarget
	OKNI F 5 A_FaceTarget
	OKNI G 0 A_PlaySound("oknight/curse",CHAN_WEAPON,1.0,0)
	OKNI G 5 A_CustomMissile("ConfuseSpell",48,0,0)
	Goto See
    BloodMana:
	OKNI E 4 A_FaceTarget
	OKNI F 5 A_FaceTarget
	OKNI G 0 A_PlaySound("oknight/curse",CHAN_WEAPON,1.0,0)
	OKNI G 5 A_CustomMissile("BloodManaSpell",48,0,0)
	Goto See
    Slow:
	OKNI E 4 A_FaceTarget
	OKNI F 5 A_FaceTarget
	OKNI G 0 A_PlaySound("oknight/curse",CHAN_WEAPON,1.0,0)
	OKNI G 5 A_CustomMissile("SlowSpell",48,0,0)
	Goto See
    Pain:
	OKNI H 3
	OKNI H 3 A_Pain
	Goto See
    Heal:
	OKNI G 0 A_SpawnItemEx("ResurrectionFlame",16,0,0,0,0,0,32,0)
	OKNI G 10
	Goto See
    Death:
	OKNI I 0 A_KillChildren("Normal",3)
	OKNI I 6 A_Scream
	OKNI J 6
	OKNI K 6 A_NoBlocking
	OKNI LMNO 6
	OKNI O -1
	Stop
    }
}

ACTOR OblivionKnightNin : OblivionKnight
{
    Tag "Oblivion Knight"
    Health 3800
}

ACTOR WormwoodSpear
{
    Scale 0.35
    Radius 4
    Height 4
    Speed 26
    Damage 5
    PoisonDamage 15
    PROJECTILE
    +RIPPER
    +MTHRUSPECIES
    +NODAMAGETHRUST
    -NOEXTREMEDEATH
    States
    {
    Spawn:
	TNT1 A 0 A_SpawnItemEx("PodPoison",0,0,0,0,0,0,0,48,0)
	TNT1 A 0 A_SpawnItemEx("PodPoison",-8,0,0,0,0,0,0,48,0)
	TNT1 A 1 A_SpawnItemEx("PodPoison",-16,0,0,0,0,0,0,48,0)
	Loop
    Death:
	TNT1 A 0
	Stop
    }
}

ACTOR NecroShot
{
    Scale 0.55
    Radius 4
    Height 4
    Speed 15
    Damage 5
    DamageType "NecroShot"
    RenderStyle Add
    PROJECTILE
    +NOEXTREMEDEATH
    +MTHRUSPECIES
    +FORCEPAIN
    States
    {
    Spawn:
	NCRO A 0
	NCRO A 0 A_Jump(127,3)
	NCRO A 0 ThrustThingZ(0,frandom(0,6),0,1)
	NCRO A 0 A_Jump(256,2)
	NCRO A 0 ThrustThingZ(0,frandom(0,6),1,1)
	NCRO AAABBBCCCDDD 1 Bright A_Weave(3,3,1.0,1.0)
	Goto Spawn+5
    Death:
	NCRO E 0 A_SetScale(0.2)
	NCRO E 0 A_PlaySound("oknight/necro/miss")
	NCRO EFGHIJKLMNO 3
	Stop
    XDeath:
	NCRO E 0 A_SetScale(0.2)
	NCRO E 0 A_PlaySound("oknight/necro/hit")
	NCRO EFGHIJKLMNO 3
	Stop
    }
}

ACTOR OblivionDrain : PowerupGiver
{
    Powerup.Type "OblivionDrain"
    Powerup.Duration 2147483647
    Inventory.MaxAmount 0
    +INVENTORY.AUTOACTIVATE
}

ACTOR PowerOblivionDrain : PowerDrain
{
    Powerup.Strength 2.0
    Powerup.Duration 2147483647
}

ACTOR OKnightSummonSpot
{
    Radius 24
    Height 78
    +FLOORHUGGER
    +NOCLIP
    +DONTSPLASH
    PROJECTILE
    States
    {
    Spawn:
	TNT1 A 0
	TNT1 A 0 A_PlaySound("oknight/summon")
	TNT1 A 0 A_CustomMissile("OKnightSummonStarter",0,0,0,2)
	TNT1 A 0 A_CustomMissile("OKnightSummonStarter",0,0,51.43,2)
	TNT1 A 0 A_CustomMissile("OKnightSummonStarter",0,0,102.86,2)
	TNT1 A 0 A_CustomMissile("OKnightSummonStarter",0,0,154.29,2)
	TNT1 A 0 A_CustomMissile("OKnightSummonStarter",0,0,205.72,2)
	TNT1 A 0 A_CustomMissile("OKnightSummonStarter",0,0,257.15,2)
	TNT1 A 0 A_CustomMissile("OKnightSummonStarter",0,0,308.58,2)
	TNT1 A 35
	TNT1 A 0 A_SpawnItemEx("OKMinion",0,0,0,0,0,0,0,48,0)
	Stop
    Death:
	TNT1 A 0
	Stop
    }
}

ACTOR OKnightSummonStarter
{
    Radius 0
    Height 32
    Speed 60
    RenderStyle None
    Alpha 0.85
    PROJECTILE
    +FLOORHUGGER
    +NOCLIP
    +DONTSPLASH
    SeeSound "weapons/diasht"
    States
    {
    Spawn:
	TNT1 A 1
	TNT1 A 0 A_SpawnItemEx("OKnightSummonFlame",0,0,0,0,0,0,0,32,0)
	TNT1 A 0 A_CustomMissile("OKnightSummonLine",0,0,167.14,2)
	Stop
    }
}

ACTOR OKnightSummonLine
{
    Radius 0
    Height 32
    Speed 5
    RenderStyle None
    Alpha 0.85
    PROJECTILE
    +FLOORHUGGER
    +NOCLIP
    +DONTSPLASH
    States
    {
    Spawn:
	TNT1 AAAAAAAAAAAAAAA 1 A_SpawnItem("OKnightSummonFlame",0,0)
	TNT1 AAAAAAAAAAAAAAA 1 A_SpawnItem("OKnightSummonFlame",0,0)
	Stop
    }
}

ACTOR OKnightSummonFlame
{
    Radius 0
    Height 32
    Speed 0
    RenderStyle Add
    Alpha 0.85
    ReactionTime 3
    PROJECTILE
    +FLOORHUGGER
    -NOGRAVITY
    +DONTSPLASH
    States
    {
    Spawn:
	OBKF ABCDABCDABCD 3 Bright
	OBKF A 0 Bright A_CountDown
	Loop
    Death:
	OBKF ABCD 3 Bright A_FadeOut
	Loop
    }
}

ACTOR OKnightSummoner
{
    Radius 24
    Height 32
    Speed 100
    RenderStyle None
    Alpha 0.85
    PROJECTILE
    +FLOORHUGGER
    +NOCLIP
    +DONTSPLASH
    SeeSound "weapons/diasht"
    States
    {
    Spawn:
	TNT1 A 0
	TNT1 A 1 A_Jump(256,1,2,3,4)
	TNT1 AAAA 1 
	TNT1 A 0 A_SpawnItemEx("OKnightSummonSpot",0,0,0,0,0,0,0,48,0)
	Stop
    Death:
	TNT1 A 0
	Stop
    }
}

ACTOR UndeadAxe
{
    PROJECTILE
    -ACTIVATEPCROSS
    +NOEXTREMEDEATH
    +FORCERADIUSDMG
    Radius 10
    Height 10
    Speed 20
    Damage 8//(random(35,60))
    Scale 0.65
    DeathSound "weapons/thrownaxe/hit"
    DamageType "Axe"
    States
    {
    Spawn:
	THAX ABC 2 Bright
	THAX D 2 Bright A_PlaySound("FighterHammerContinuous")
	THAX EFG 2 Bright
	THAX H 2 Bright A_PlaySound("FighterHammerContinuous")
	Loop
    Death:
	TNT1 A 0 A_SpawnItemEx("UndeadAxePuffGlow",0,0,0,0,0,0,0,32,0)
	TNT1 A 0 A_Scream
	TNT1 A 0 A_Explode(48,64,0)
	Stop
    }
}

ACTOR UndeadRedAxe : UndeadAxe
{
    Scale 0.75
    +SEEKERMISSILE
    +NOEXTREMEDEATH
    Damage 12//(random(80,100))
    Translation "217:217=173:173","218:219=175:176","146:163=164:185"
    States
    {
    Spawn:
	THAX A 0 Bright A_SpawnItemEx("UndeadRedAxeTrail1",0,0,0,0,0,0,0,32,0)
	THAX A 1 Bright
	THAX A 0 Bright A_SpawnItemEx("UndeadRedAxeTrail1",0,0,0,0,0,0,0,32,0)
	THAX A 1 Bright A_SeekerMissile(4,4,3,80)
	THAX B 0 Bright A_SpawnItemEx("UndeadRedAxeTrail2",0,0,0,0,0,0,0,32,0)
	THAX B 1 Bright
	THAX B 0 Bright A_SpawnItemEx("UndeadRedAxeTrail2",0,0,0,0,0,0,0,32,0)
	THAX B 1 Bright A_SeekerMissile(4,4,3,80)
	THAX C 0 Bright A_SpawnItemEx("UndeadRedAxeTrail3",0,0,0,0,0,0,0,32,0)
	THAX C 1 Bright
	THAX C 0 Bright A_SpawnItemEx("UndeadRedAxeTrail3",0,0,0,0,0,0,0,32,0)
	THAX C 1 Bright A_SeekerMissile(4,4,3,80)
	THAX D 0 Bright A_PlaySound("FighterHammerContinuous")
	THAX D 0 Bright A_SpawnItemEx("UndeadRedAxeTrail4",0,0,0,0,0,0,0,32,0)
	THAX D 1 Bright
	THAX D 0 Bright A_SpawnItemEx("UndeadRedAxeTrail4",0,0,0,0,0,0,0,32,0)
	THAX D 1 Bright A_SeekerMissile(4,4,3,80)
	THAX E 0 Bright A_SpawnItemEx("UndeadRedAxeTrail5",0,0,0,0,0,0,0,32,0)
	THAX E 1 Bright
	THAX E 0 Bright A_SpawnItemEx("UndeadRedAxeTrail5",0,0,0,0,0,0,0,32,0)
	THAX E 1 Bright A_SeekerMissile(4,4,3,80)
	THAX F 0 Bright A_SpawnItemEx("UndeadRedAxeTrail6",0,0,0,0,0,0,0,32,0)
	THAX F 1 Bright
	THAX F 0 Bright A_SpawnItemEx("UndeadRedAxeTrail6",0,0,0,0,0,0,0,32,0)
	THAX F 1 Bright A_SeekerMissile(4,4,3,80)
	THAX G 0 Bright A_SpawnItemEx("UndeadRedAxeTrail7",0,0,0,0,0,0,0,32,0)
	THAX G 1 Bright
	THAX G 0 Bright A_SpawnItemEx("UndeadRedAxeTrail7",0,0,0,0,0,0,0,32,0)
	THAX G 1 Bright A_SeekerMissile(4,4,3,80)
	THAX H 0 Bright A_PlaySound("FighterHammerContinuous")
	THAX H 0 Bright A_SpawnItemEx("RedAxeTrail8",0,0,0,0,0,0,0,32,0)
	THAX H 1 Bright
	THAX H 0 Bright A_SpawnItemEx("UndeadRedAxeTrail8",0,0,0,0,0,0,0,32,0)
	THAX H 1 Bright A_SeekerMissile(4,4,3,80)
	Loop
    Death:
	TNT1 A 0 A_SpawnItemEx("UndeadRedAxePuff",0,0,0,0,0,0,0,32,0)
	TNT1 A 0 A_Scream
	TNT1 A 0 A_Explode(100,96,0)
	Stop
    }
}


ACTOR UndeadRedAxeTrail1
{
    RenderStyle Add
    Translation "217:217=173:173","218:219=175:176","146:163=164:185"
    Scale 0.75
    Alpha 0.75
    PROJECTILE
    -ACTIVATEPCROSS
    States
    {
    Spawn:
	THAX A 2 Bright A_FadeOut(0.04)
	Loop
    }
}

ACTOR UndeadRedAxeTrail2 : UndeadRedAxeTrail1
{
    States
    {
    Spawn:
	THAX B 2 Bright A_FadeOut(0.04)
	Loop
    }
}

ACTOR UndeadRedAxeTrail3 : UndeadRedAxeTrail1
{
    States
    {
    Spawn:
	THAX C 2 Bright A_FadeOut(0.04)
	Loop
    }
}

ACTOR UndeadRedAxeTrail4 : UndeadRedAxeTrail1
{
    States
    {
    Spawn:
	THAX D 2 Bright A_FadeOut(0.04)
	Loop
    }
}

ACTOR UndeadRedAxeTrail5 : UndeadRedAxeTrail1
{
    States
    {
    Spawn:
	THAX E 2 Bright A_FadeOut(0.04)
	Loop
    }
}

ACTOR UndeadRedAxeTrail6 : UndeadRedAxeTrail1
{
    States
    {
    Spawn:
	THAX F 2 Bright A_FadeOut(0.04)
	Loop
    }
}

ACTOR UndeadRedAxeTrail7 : UndeadRedAxeTrail1
{
    States
    {
    Spawn:
	THAX G 2 Bright A_FadeOut(0.04)
	Loop
    }
}

ACTOR UndeadRedAxeTrail8 : UndeadRedAxeTrail1
{
    States
    {
    Spawn:
	THAX H 2 Bright A_FadeOut(0.04)
	Loop
    }
}

ACTOR UndeadAxePuffGlow : AxePuffGlow
{
    +NOEXTREMEDEATH
    DamageType "AxeHit"
    States
    {
    Spawn:
	FAXE RSTUVWX 4 Bright
	Stop
    }
}

ACTOR UndeadRedAxePuffGlow : UndeadAxePuffGlow
{
    -NOEXTREMEDEATH
    +PUFFONACTORS
    RenderStyle Add
    Alpha 1
    States
    {
    Spawn:
	RAXP ABCDEF 4 Bright
	Stop
    }
}

ACTOR UndeadRedAxePuff : UndeadAxePuffGlow
{
    -NOEXTREMEDEATH
    +PUFFONACTORS
    RenderStyle Add
    Alpha 1
    States
    {
    Spawn:
	RAXE ABCDEF 4 Bright
	Stop
    }
}

// --- Curses ---

ACTOR DimVisionSpell
{
    PROJECTILE
    -ACTIVATEPCROSS
    +SEEKERMISSILE
    +FORCEPAIN
    +BLOODLESSIMPACT
    +THRUGHOST
    RenderStyle Add
    Damage 0
    DamageType "Blindness"
    Speed 22
    Radius 10
    Height 6
    States
    {
    Spawn:
	DMVS A 0
	DMVS A 0 A_PlaySound("ironlich/curse/active", CHAN_AUTO, 1.0, 1)
	DMVS ABCDEF 3 Bright A_SeekerMissile(12,12,2)
	Loop
    Death:
	DMVS G 0 A_PlaySound("dsparil/slow/explode", CHAN_AUTO, 1.0)
	DMVS G 0 A_SetScale(0.55)
	DMVS GHIJKLMNOPQ 2 Bright A_FadeOut(0.08)
	Stop
    }
}

ACTOR PowerBlindness: PowerProtection
{
    DamageFactor 1.0
    DamageFactor "Pod", 1.0
    DamageFactor "PoisonCloud", 1.0
}

ACTOR Blindness : PowerupGiver
{
    -INVENTORY.INVBAR
    +INVENTORY.AUTOACTIVATE
    Inventory.MaxAmount 0
    Powerup.Type "Blindness"
    Powerup.Duration 280
}

ACTOR NoJumpSpell
{
    PROJECTILE
    -ACTIVATEPCROSS
    +SEEKERMISSILE
    +FORCEPAIN
    +BLOODLESSIMPACT
    +THRUGHOST
    RenderStyle Add
    Damage 0
    DamageType "Gravity"
    Speed 22
    Radius 10
    Height 6
    States
    {
    Spawn:
	GRAV A 0
	GRAV A 0 A_PlaySound("ironlich/curse/active", CHAN_AUTO, 1.0, 1)
	GRAV ABCDEFGHIJKL 3 Bright A_SeekerMissile(12,12,2)
	Loop
    Death:
	GRAV G 0 A_PlaySound("dsparil/slow/explode", CHAN_AUTO, 1.0)
//	GRAV G 0 A_SetScale(0.75)
	GRAV MNOPQRSTUVWX 2 Bright A_FadeOut(0.08)
	Stop
    }
}

ACTOR PowerHighGravity : PowerHighJump
{
    Powerup.Strength 0.01
}

ACTOR HighGravity : PowerupGiver
{
    -INVENTORY.INVBAR
    +INVENTORY.AUTOACTIVATE
    Inventory.MaxAmount 0
    Powerup.Type "HighGravity"
    Powerup.Duration 280
}

ACTOR ConfuseSpell
{
    PROJECTILE
    -ACTIVATEPCROSS
    +SEEKERMISSILE
    +FORCEPAIN
    +BLOODLESSIMPACT
    +THRUGHOST
    RenderStyle Add
    Damage 0
    DamageType "Confuse"
    Speed 22
    Radius 10
    Height 6
    States
    {
    Spawn:
	CONF A 0
	CONF A 0 A_PlaySound("ironlich/curse/active", CHAN_AUTO, 1.0, 1)
	CONF ABCDEFGHIJKLMNO 2 Bright A_SeekerMissile(12,12,2)
	Loop
    Death:
	CONF P 0 A_StopSound(CHAN_AUTO)
	CONF P 0 A_PlaySound("dsparil/slow/explode", CHAN_AUTO, 1.0)
//	CONF P 0 A_SetScale(0.75)
	CONF PQRSTUVWXYZ 2 Bright A_FadeOut(0.08)
	Stop
    }
}

ACTOR PowerConfusion: PowerSpeed
{
    Speed -1.0
    Inventory.Icon ""
}

ACTOR Confusion : PowerupGiver
{
    -INVENTORY.INVBAR
    +INVENTORY.AUTOACTIVATE
    Inventory.MaxAmount 0
    Powerup.Type "Confusion"
    Powerup.Duration 210
}

ACTOR BloodManaSpell
{
    PROJECTILE
    -ACTIVATEPCROSS
    +SEEKERMISSILE
    +FORCEPAIN
    +BLOODLESSIMPACT
    +THRUGHOST
    RenderStyle Add
    Damage 0
    DamageType "BloodMana"
    Speed 22
    Radius 10
    Height 6
    States
    {
    Spawn:
	BLDM A 0
	BLDM A 0 A_PlaySound("ironlich/curse/active", CHAN_AUTO, 1.0, 1)
	BLDM ABCDEFGHIJKL 3 Bright A_SeekerMissile(12,12,2)
	Loop
    Death:
	BLDM G 0 A_PlaySound("dsparil/slow/explode", CHAN_AUTO, 1.0)
	BLDM G 0 A_SetScale(0.75)
	BLDM MNOPQRSTUV 2 Bright A_FadeOut(0.08)
	Stop
    }
}

ACTOR BloodMana : PowerupGiver
{
    -INVENTORY.INVBAR
    +INVENTORY.AUTOACTIVATE
    Inventory.MaxAmount 0
    Powerup.Type "BloodMana"
    Powerup.Duration 280
}

//----------------

ACTOR UndeadKnight 204
{
    Tag "Undead Knight"
    Health 520
    Radius 24
    Height 78
    Mass 450
    Speed 12
    PainChance 40
    MeleeRange 100
    Species "OblivionKnight"
    DamageFactor "Sacred", 1.5
    DamageFactor "Holy", 1.4
    DamageFactor "Consecrate", 1.25
    DamageFactor "Hellrain", 1.25
    DamageFactor "Electric", 1.25
    DamageFactor "Iron", 1.1
    MONSTER
    +FLOORCLIP
    +NOINFIGHTSPECIES
    +DONTHARMSPECIES
    PainChance 50
    SeeSound "uknight/sight"
    AttackSound "uknight/attack"
    PainSound "uknight/pain"
    DeathSound "uknight/death"
    ActiveSound "uknight/sight"
    Obituary "$OB_BONEKNIGHT"
    HitObituary "$OB_BONEKNIGHTHIT"
    States
    {
    Spawn:
	UNDK AB 15 A_Look
	Loop
    See:
	UNDK ABCD 4 A_Chase
	Loop
    Melee:
    Missile:
	UNDK G 0 A_Jump(216,6)
	UNDK E 10 A_FaceTarget
	UNDK F 8 A_FaceTarget
	UNDK G 2 A_PlaySound("uknight/attack",CHAN_5)
	UNDK G 6 A_CustomComboAttack("UndeadRedAxe",36,6*random(1,8),"uknight/attack2")
	UNDK G 0 A_Jump(256,5)
	UNDK E 10 A_FaceTarget
	UNDK F 8 A_FaceTarget
	UNDK G 2 A_PlaySound("uknight/attack",CHAN_5)
	UNDK G 6 A_CustomComboAttack("UndeadAxe",36,3*random(1,8),"uknight/attack2")
	UNDK G 0 A_Jump(216,6)
	UNDK E 10 A_FaceTarget
	UNDK F 8 A_FaceTarget
	UNDK G 2 A_PlaySound("uknight/attack",CHAN_5)
	UNDK G 6 A_CustomComboAttack("UndeadRedAxe",36,6*random(1,8),"uknight/attack2")
	UNDK G 0 A_Jump(256,5)
	UNDK E 10 A_FaceTarget
	UNDK F 8 A_FaceTarget
	UNDK G 2 A_PlaySound("uknight/attack",CHAN_5)
	UNDK G 6 A_CustomComboAttack("UndeadAxe",36,3*random(1,8),"uknight/attack2")
	UNDK G 0
	Goto See
    Pain:
	UNDK H 3
	UNDK H 3 A_Pain
	Goto See
    Death:
	UNDK I 6
	UNDK J 6 A_Scream
	UNDK K 6
	UNDK L 6 A_NoBlocking
	UNDK MN 6
	UNDK O 200
	UNDK O 2 A_FadeOut(0.05)
	Wait
    Death.Frost:
	"####" "#" 2
	UNDK I 1 A_IceGuyDie
	Stop
    Ice:
	"####" "#" 2
	UNDK I 1 A_IceGuyDie
	Stop
    }
}

//----------------------------------------------------------
// Library Boss
//----------------------------------------------------------

ACTOR Abomination : FireDemon 203
{
    Tag "Abomination"
    Health 3200
    Radius 36
    Height 96
    Mass 2000
    Speed 16
    Scale 1.3
    BloodColor "MediumPurple4"
    PainThreshold 150
    PainChance 40
    PainChance "GreenGas", 0
    PainChance "BloodScourge", 0
    PainChance "Pod", 0
    PainChance "HellRain", 50
    DamageFactor "Normal", 0.7
    DamageFactor "Sacred", 1.2
    DamageFactor "Holy", 1.1
    DamageFactor "Meteor", 0.25
    DamageFactor "FireWave", 0.15
    DamageFactor "Dragon", 0.25
    DamageFactor "Lantern", 0.25
    DamageFactor "QuietusTrail", 0.15
    DamageFactor "Quietus", 0.15
    DamageFactor "Melee", 0.4
    DamageFactor "DSparil", 0.5
    DamageFactor "Serpent", 0.5
    DamageFactor "Bloodscourge", 0.75
    DamageFactor "Fire", 0.8
    DamageFactor "Mojo", 0.75
    DamageFactor "MojoActive", 0.75
    DamageFactor "Defile", 0.75
    DamageFactor "Iron", 0.55
    DamageFactor "Loric", 0.35
    DamageFactor "Cube", 0.3
    DamageFactor "Frost", 0.8
    DamageFactor "Ice", 0.8
    DamageFactor "PodExplode", 0.8
    DamageFactor "Sword", 0.25
    MONSTER
    +BOSS
    +BOSSDEATH
    +DONTMORPH
    +NOFEAR
    +NOICEDEATH
    +NEVERFAST
    +NOTARGET
    +NOGRAVITY
    +FLOAT
    +MISSILEEVENMORE
    -INVULNERABLE
    SeeSound "abomination/sight"
    PainSound "abomination/pain"
    DeathSound "abomination/death"
    ActiveSound "abomination/active"
    Obituary "%o was stupefied by an abomination"
    States
    {
    Spawn:
	ABMN AAAABBBB 3 A_Look
	Loop
    See:
	ABMN A 3 A_FireDChase
	ABMN A 4 A_FireDChase
	ABMN A 3 A_FireDChase
	ABMN A 4 A_FireDChase
	ABMN B 3 A_FireDChase
	ABMN B 4 A_FireDChase
	ABMN B 3 A_FireDChase
	ABMN B 4 A_FireDChase
	Loop
    Missile:
	ABMN C 0 A_JumpIfCloser(300,1)
	Goto Decide
	ABMN C 0 A_JumpIfInventory("PsionShieldCheck",1,2)
	ABMN C 0 A_Jump(200,"Psion")
	ABMN C 0 A_Jump(200,"Blast")
    Decide:
	ABMN C 0 A_JumpIfInventory("PsionShieldCheck",1,2)
	ABMN C 0 A_Jump(200,"Psion")
	ABMN C 0 A_Jump(96,"Weave")
	ABMN C 0 A_Jump(128,"Madness")
	ABMN C 0 A_Jump(192,"Seeker")
	Goto Missile
    Weave:
	ABMN CCCC 2 A_FaceTarget
	ABMN D 0 A_PlaySound("abomination/attack1")
	ABMN D 3 Bright A_CustomMissile("AbominationWeaveShot",48,8,0,1)
	ABMN CCCC 2 A_FaceTarget
	ABMN D 0 A_PlaySound("abomination/attack1")
	ABMN D 3 Bright A_CustomMissile("AbominationWeaveShot",48,8,0,1)
	ABMN CCCC 2 A_FaceTarget
	ABMN D 0 A_PlaySound("abomination/attack1")
	ABMN D 3 Bright A_CustomMissile("AbominationWeaveShot",48,8,0,1)
	ABMN CCCC 2 A_FaceTarget
	ABMN D 0 A_PlaySound("abomination/attack1")
	ABMN D 3 Bright A_CustomMissile("AbominationWeaveShot",48,8,0,1)
	ABMN CCCC 2 A_FaceTarget
	ABMN D 0 A_PlaySound("abomination/attack1")
	ABMN D 3 Bright A_CustomMissile("AbominationWeaveShot",48,8,0,1)
	ABMN CCCC 2 A_FaceTarget
	ABMN C 0 A_Jump(192,1)
	Goto See
	ABMN D 0 A_PlaySound("abomination/attack1")
	ABMN D 3 Bright A_CustomMissile("AbominationWeaveShot",48,8,0,1)
	ABMN CCCC 2 A_FaceTarget
	ABMN C 0 A_Jump(192,1)
	Goto See
	ABMN D 0 A_PlaySound("abomination/attack1")
	ABMN D 3 Bright A_CustomMissile("AbominationWeaveShot",48,8,0,1)
	ABMN CCCC 2 A_FaceTarget
	ABMN C 0 A_Jump(192,1)
	Goto See
	ABMN D 0 A_PlaySound("abomination/attack1")
	ABMN D 3 Bright A_CustomMissile("AbominationWeaveShot",48,8,0,1)
	ABMN CCCC 2 A_FaceTarget
	ABMN C 0 A_Jump(192,1)
	Goto See
	ABMN D 0 A_PlaySound("abomination/attack1")
	ABMN D 3 Bright A_CustomMissile("AbominationWeaveShot",48,8,0,1)
	ABMN CCCC 2 A_FaceTarget
	ABMN C 0 A_Jump(192,1)
	Goto See
	ABMN D 0 A_PlaySound("abomination/attack1")
	ABMN D 3 Bright A_CustomMissile("AbominationWeaveShot",48,8,0,1)
	ABMN CCCC 2 A_FaceTarget
	ABMN C 0 A_Jump(128,1)
	Goto See
	ABMN D 0 A_PlaySound("abomination/attack1")
	ABMN D 3 Bright A_CustomMissile("AbominationWeaveShot",48,8,0,1)
	ABMN CCCC 2 A_FaceTarget
	ABMN C 0 A_Jump(128,1)
	Goto See
	ABMN D 0 A_PlaySound("abomination/attack1")
	ABMN D 3 Bright A_CustomMissile("AbominationWeaveShot",48,8,0,1)
	ABMN CCCC 2 A_FaceTarget
	Goto See
   Seeker:
	ABMN C 0 A_Stop
	ABMN C 0 A_ChangeFlag("NOPAIN",1)
	ABMN C 0 A_ChangeFlag("FLOAT",0)
	ABMN C 0 A_PlaySound("abomination/charge")
	ABMN CC 3 A_FaceTarget
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSBall1",136,16,40,0,0,0,0,48,0) // ABMN C 26
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSBall2",136,16,40,0,0,0,0,48,0) // ABMN C 24
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,20,64,16,-1,-4,0,48,0)
	FLYR C 0 Bright A_SpawnItemEx("AbominationDSLaser",72,32,48,16,-4,0,0,48,0)
	ABMN C 1 Bright A_SpawnItemEx("AbominationDSLaser",72,0,32,16,4,4,0,48,0)
	ABMN C 7 Bright
	ABMN D 0 Bright A_PlaySound("abomination/attack2")
	ABMN D 4 Bright A_SpawnItemEx("AbominationDSBallShot",136,12,40,12,0,0,0,1072,0)
	ABMN C 0 A_ChangeFlag("FLOAT",1)
	ABMN C 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Psion:
	ABMN C 0 A_GiveInventory("PsionShieldCheck",1)
	ABMN C 0 A_ChangeFlag("NOPAIN",1)
	ABMN C 2 A_FaceTarget
	ABMN C 0 ACS_ExecuteAlways(813,0,0,0,0)
	ABMN C 0 A_PlaySound("abomination/shieldon")
	ABMN CCCC 4 A_FaceTarget
	ABMN D 4 A_SpawnItemEx("AbominationPsionShield",0,0,48,0,0,0,0,48,0)
	ABMN C 0 A_ChangeFlag("NOPAIN",0)
	Goto See
    Madness:
	ABMN C 0 A_JumpIfCloser(1600,1)
	Goto Decide
	ABMN CCCC 3 A_FaceTarget
	ABMN D 0 A_PlaySound("abomination/attack3")
	ABMN D 0 Bright A_CustomMissile("AbominationMadnessShot",48,8,frandom(-8,8))
	ABMN D 0 Bright A_CustomMissile("AbominationMadnessShot",48,8,frandom(-8,8))
	ABMN D 2 Bright A_CustomMissile("AbominationMadnessShot",48,8,frandom(-8,8))
	ABMN D 2 A_FaceTarget
	ABMN D 0 Bright A_CustomMissile("AbominationMadnessShot",48,8,frandom(-8,8))
	ABMN D 0 Bright A_CustomMissile("AbominationMadnessShot",48,8,frandom(-8,8))
	ABMN D 2 Bright A_CustomMissile("AbominationMadnessShot",48,8,frandom(-8,8))
	ABMN D 2 A_FaceTarget
	ABMN D 0 Bright A_CustomMissile("AbominationMadnessShot",48,8,frandom(-8,8))
	ABMN D 0 Bright A_CustomMissile("AbominationMadnessShot",48,8,frandom(-8,8))
	ABMN D 2 Bright A_CustomMissile("AbominationMadnessShot",48,8,frandom(-8,8))
	ABMN D 2 A_FaceTarget
	ABMN D 0 Bright A_CustomMissile("AbominationMadnessShot",48,8,frandom(-8,8))
	ABMN D 0 Bright A_CustomMissile("AbominationMadnessShot",48,8,frandom(-8,8))
	ABMN D 2 Bright A_CustomMissile("AbominationMadnessShot",48,8,frandom(-8,8))
	ABMN D 3 A_FaceTarget
	Goto See
    Blast:
	ABMN CCCC 3 A_FaceTarget
	ABMN D 5 Bright A_Blast(2,300,350,30)
	ABMN CC 3 A_FaceTarget
	Goto See
    Pain:
	ABMN E 6 A_Pain
	Goto See
    Crash:
	ABMN F 0 A_KillChildren("Normal",2)
	ABMN F 0 A_JumpIfInventory("AbominationDeathCheck",7,22)
	ABMN F 0 A_JumpIfInventory("AbominationDeathCheck",6,19)
	ABMN F 0 A_JumpIfInventory("AbominationDeathCheck",5,16)
	ABMN F 0 A_JumpIfInventory("AbominationDeathCheck",4,13)
	ABMN F 0 A_JumpIfInventory("AbominationDeathCheck",3,10)
	ABMN F 0 A_JumpIfInventory("AbominationDeathCheck",2,7)
	ABMN F 0 A_JumpIfInventory("AbominationDeathCheck",1,4)
    XDeath:
    Death:
	ABMN F 0 A_GiveInventory("DeadThing",1)
	ABMN F 0 A_KillChildren("Normal",2)
	ABMN F 0 Bright A_Scream
	ABMN F 6 Bright
	ABMN G 6 Bright A_GiveInventory("AbominationDeathCheck")
	ABMN H 6 Bright A_GiveInventory("AbominationDeathCheck")
	ABMN H 0 Bright
	ABMN I 6 Bright A_GiveInventory("AbominationDeathCheck")
	ABMN I 0 Bright
	ABMN J 6 Bright A_GiveInventory("AbominationDeathCheck")
	ABMN J 0 Bright A_NoBlocking
	ABMN K 6 Bright A_GiveInventory("AbominationDeathCheck")
	ABMN K 0 Bright
	ABMN L 6 Bright A_GiveInventory("AbominationDeathCheck")
	ABMN L 0 Bright
	ABMN M 6 Bright A_GiveInventory("AbominationDeathCheck")
	ABMN M -1 A_SetFloorClip
	Stop
    }
}

ACTOR AbominationNin : Abomination
{
    Tag "Abomination"
    Health 3600
}

ACTOR AbominationDeathCheck : Inventory
{
    Inventory.Amount 1
    Inventory.MaxAmount 7
}

ACTOR AbominationWeaveShot
{
    Speed 20
    Radius 8
    Height 10
    Damage 6
    RenderStyle Add
    Scale 0.8
    RenderStyle Subtract
    Alpha 0.25
    PROJECTILE
    -ACTIVATEPCROSS
    +SEEKERMISSILE
    +NOEXTREMEDEATH
    DeathSound "abomination/attack1/impact"
    States
    {
    Spawn:
	TNT1 A 0 A_Weave(frandom(1,5),frandom(1,5),frandom(0.0,3.0),frandom(0.0,3.0))
	TNT1 A 0 A_SeekerMissile(2,2,3)
	TNT1 A 1 A_SpawnItemEx("AbominationWeaveTrail",0,0,0,0,0,0,0,32,0)
	Loop
    Death:
	TNT1 AAAAAAAAAAAAAAAA 0 A_SpawnItemEx("AbominationWeaveBall",0,0,0,frandom(-4,4),frandom(-4,4),frandom(-4,4),frandom(1,360),32,0)
	CSFX OPQRST 3
	Stop
    }
}

ACTOR AbominationWeaveTrail
{
    PROJECTILE
    -ACTIVATEPCROSS
    Scale 0.35
    RenderStyle Subtract
    Alpha 0.25
    States
    {
    Spawn:
	TNT1 A 0
	TNT1 A 0 A_Jump(256,1,2,3,4)
	CSFX BCDEFGHIJKLMN 3 A_FadeOut(0.02)
	Stop
    }
}

ACTOR AbominationWeaveBall
{
    +NOINTERACTION
    RenderStyle Subtract
    Scale 0.2
    Alpha 0.75
    Speed 7
    States
    {
    Spawn:
	PYBU M 0 A_SpawnItemEx("AbominationWeaveParticle",0,0,0,frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,359),0)
	PYBU M 1 A_FadeOut(0.02)
	Loop
    }
}

ACTOR AbominationWeaveParticle
{
    Radius 1
    Height 1
    +NOGRAVITY
    +NOINTERACTION
    RenderStyle Add
    Alpha 0.5
    Scale 0.08
    Translation "0:255=%[0.0,0.0,0.0]:[1.0,0.2,0.0]"
    States
    {
    Spawn:
	TNT1 A 0
	CBLT M 4 A_FadeOut(0.18)
	Loop
    }
}

ACTOR AbominationDSLaser : FastProjectile
{
    RenderStyle Add
    MissileType "AbominationDSLaserTrail"
    +NOINTERACTION
    States
    {
    Spawn:
	TNT1 AAAA 1
	Stop
    }
}

ACTOR AbominationDSLaserTrail
{
    +NOINTERACTION
    RenderStyle Add
    Scale 0.8
    Alpha 0.5
    Translation "0:255=%[0.2,0.4,0.1]:[0.5,0.7,0.3]"
    States
    {
    Spawn:
	PUF2 AAAAA 3 A_FadeOut(0.05)
	Stop 
    }
}

ACTOR AbominationDSBall1
{
    +NOINTERACTION
    RenderStyle Add
    Alpha 0.05
    Scale 0.05
    States
    {
    Spawn:
	AYX1 X 1 Bright A_SetScale(0.075)
	AYX1 X 0 Bright A_SetTranslucent(0.07,1)
	AYX1 Y 1 Bright A_SetScale(0.1)
	AYX1 Y 0 Bright A_SetTranslucent(0.09,1)
	AYX1 A 1 Bright A_SetScale(0.125)
	AYX1 A 0 Bright A_SetTranslucent(0.11,1)
	AYX1 B 1 Bright A_SetScale(0.15)
	AYX1 B 0 Bright A_SetTranslucent(0.13,1)
	AYX1 C 1 Bright A_SetScale(0.175)
	AYX1 C 0 Bright A_SetTranslucent(0.15,1)
	AYX1 D 1 Bright A_SetScale(0.2)
	AYX1 D 0 Bright A_SetTranslucent(0.17,1)
	AYX1 E 1 Bright A_SetScale(0.225)
	AYX1 E 0 Bright A_SetTranslucent(0.19,1)
	AYX1 F 1 Bright A_SetScale(0.25)
	AYX1 F 0 Bright A_SetTranslucent(0.21,1)
	AYX1 G 1 Bright A_SetScale(0.275)
	AYX1 G 0 Bright A_SetTranslucent(0.23,1)
	AYX1 H 1 Bright A_SetScale(0.3)
	AYX1 H 0 Bright A_SetTranslucent(0.25,1)
	AYX1 I 1 Bright A_SetScale(0.325)
	AYX1 I 0 Bright A_SetTranslucent(0.27,1)
	AYX1 J 1 Bright A_SetScale(0.35)
	AYX1 J 0 Bright A_SetTranslucent(0.29,1)
	AYX1 K 1 Bright A_SetScale(0.375)
	AYX1 K 0 Bright A_SetTranslucent(0.31,1)
	AYX1 L 1 Bright A_SetScale(0.4)
	AYX1 L 0 Bright A_SetTranslucent(0.33,1)
	AYX1 M 1 Bright A_SetScale(0.425)
	AYX1 M 0 Bright A_SetTranslucent(0.35,1)
	AYX1 N 1 Bright A_SetScale(0.45)
	AYX1 N 0 Bright A_SetTranslucent(0.37,1)
	AYX1 O 1 Bright A_SetScale(0.475)
	AYX1 O 0 Bright A_SetTranslucent(0.39,1)
	AYX1 P 1 Bright A_SetScale(0.5)
	AYX1 P 0 Bright A_SetTranslucent(0.41,1)
	AYX1 Q 1 Bright A_SetScale(0.525)
	AYX1 Q 0 Bright A_SetTranslucent(0.43,1)
	AYX1 R 1 Bright A_SetScale(0.55)
	AYX1 R 0 Bright A_SetTranslucent(0.45,1)
	AYX1 S 1 Bright A_SetScale(0.575)
	AYX1 S 0 Bright A_SetTranslucent(0.47,1)
	AYX1 T 1 Bright A_SetScale(0.6)
	AYX1 T 0 Bright A_SetTranslucent(0.49,1)
	AYX1 U 1 Bright A_SetScale(0.625)
	AYX1 U 0 Bright A_SetTranslucent(0.51,1)
	AYX1 V 1 Bright A_SetScale(0.65)
	AYX1 V 0 Bright A_SetTranslucent(0.53,1)
	AYX1 W 1 Bright A_SetScale(0.675)
	AYX1 W 0 Bright A_SetTranslucent(0.55,1)
	AYX1 X 1 Bright A_SetScale(0.7)
	AYX1 X 0 Bright A_SetTranslucent(0.57,1)
	AYX1 Y 1 Bright A_SetScale(0.725)
	AYX1 Y 0 Bright A_SetTranslucent(0.59,1)
	AYX1 A 1 Bright A_SetScale(0.75)
	AYX1 A 0 Bright A_SetTranslucent(0.61,1)
	AYX1 B 1 Bright A_SetScale(0.775)
	AYX1 B 0 Bright A_SetTranslucent(0.63,1)
	AYX1 C 1 Bright A_SetScale(0.8)
	AYX1 C 0 Bright A_SetTranslucent(0.65,1)
	AYX1 D 1 Bright A_SetScale(0.825)
	AYX1 D 0 Bright A_SetTranslucent(0.67,1)
	AYX1 E 1 Bright A_SetScale(0.85)
	AYX1 E 0 Bright A_SetTranslucent(0.69,1)
	AYX1 F 1 Bright A_SetScale(0.875)
	AYX1 F 0 Bright A_SetTranslucent(0.71,1)
	AYX1 G 1 Bright A_SetScale(0.9)
	AYX1 G 0 Bright A_SetTranslucent(0.73,1)
	AYX1 H 1 Bright A_SetScale(0.925)
	AYX1 H 0 Bright A_SetTranslucent(0.75,1)
	AYX1 I 1 Bright A_SetScale(0.95)
	AYX1 J 1 Bright A_SetScale(0.975)
	AYX1 K 1 Bright A_SetScale(1.0)
	AYX1 L 1 Bright A_SetScale(1.025)
	AYX1 M 1 Bright A_SetScale(1.05)
	AYX1 N 1 Bright A_SetScale(1.075)
	AYX1 O 1 Bright A_SetScale(1.1)
	AYX1 P 1 Bright A_SetScale(1.125)
	AYX1 Q 1 Bright A_SetScale(1.15)
	AYX1 R 1 Bright A_SetScale(1.175)
	AYX1 S 1 Bright A_SetScale(1.2)
	AYX1 T 1 Bright A_SetScale(1.225)
	AYX1 U 1 Bright A_SetScale(1.25)
	AYX1 V 1 Bright A_SetScale(1.275)
	AYX1 W 1 Bright A_SetScale(1.3)
	AYX1 X 1 Bright A_SetScale(1.25)
	AYX1 Y 1 Bright A_SetScale(1.35)
	AYX1 A 1 Bright
	Stop
    }
}

ACTOR AbominationDSBall2
{
    +NOINTERACTION
    RenderStyle Add
    Alpha 0.75
    Scale 1.35
    States
    {
    Spawn:
	AYX1 BCDEFGHIJKLMNOPQRSTUVWXY 1 Bright
	Stop
    }
}

ACTOR AbominationDSBallShot
{
    MONSTER
    -COUNTKILL
    +NOTONAUTOMAP
    Obituary "%o was stupefied by an abomination"
    States
    {
    Spawn:
	TNT1 A 0
	TNT1 A 0 A_LookEx(2,0,96,0,360)
    See:
	TNT1 A 150 A_CustomMissile("AbominationDSBallShot2",0,0,0,6)
	Stop
    }
}

ACTOR AbominationDSBallShot2
{
    Speed 12
    Radius 8
    Height 10
    Damage 20
    RenderStyle Add
    Scale 1.1
    Alpha 0.75
    DeathSound "abomination/attack2/impact"
    Obituary "%o was stupefied by an abomination"
    PROJECTILE
    -ACTIVATEPCROSS
    +SEEKERMISSILE
    +EXTREMEDEATH
    States
    {
    Spawn:
	AYX1 A 0 Bright
	AYX1 A 0 Bright A_PlaySound("abomination/attack2/effect",CHAN_7,0.6,1)
	AYX1 ABCDEFGHIJKLMNOPQRSTUVWXY 1 Bright A_SeekerMissile(5,5,2)
	AYX1 A 0 Bright A_PlaySound("abomination/attack2/effect",CHAN_7,0.6,1)
	AYX1 ABCDEFGHIJKLMNOPQRSTUVWXY 1 Bright A_SeekerMissile(5,5,2)
	AYX1 M 0 Bright A_PlaySound("abomination/attack2/split",CHAN_6)
	AYX1 AAAAAAAAAAAAAAAAAA 0 Bright A_CustomMissile("AbominationDSBallShot3",8,0,frandom(-20,20),6,frandom(-15,15))
	AYX2 A 0 A_StopSound(CHAN_7)
	AYX2 A 0 A_SetScale(1.6)
	AYX2 ABCDEFGHIJKLM 2 Bright A_FadeOut(0.05)
	Stop
    Death:
	AYX2 A 0 A_StopSound(CHAN_7)
	AYX2 A 0 A_SetScale(1.6)
	AYX2 A 0 A_Explode(240,320)
	AYX2 ABCDEFGHIJKLM 2 Bright A_FadeOut(0.05)
	Stop
    }
}

ACTOR AbominationDSBallShot3 : AbominationDSBallShot2
{
    -EXTREMEDEATH
    Obituary "%o was stupefied by an abomination"
    Scale 0.3
    Speed 8
    Damage 8
    States
    {
    Spawn:
	AYX1 A 0
	AYX1 A 0 A_PlaySound("abomination/attack2/effect",CHAN_7,0.6,1)
	AYX1 ABCDEFGHIJKLMNOPQRSTUVWXY 1 Bright A_ScaleVelocity(frandom(1.04,1.08))
	Loop
    Death:
	AYX2 A 0 A_StopSound(CHAN_7)
	AYX2 A 0 A_SetScale(0.75)
	AYX2 A 0 A_Explode(128,160)
	AYX2 ABCDEFGHIJKLM 2 Bright A_FadeOut(0.05)
	Stop
    }
}

ACTOR AbominationPsionShield
{
    Speed 12
    Radius 8
    Height 10
    Damage 12
    RenderStyle Add
    Scale 1.1
    Alpha 0.05
    PROJECTILE
    +NOINTERACTION
    -ACTIVATEPCROSS
    States
    {
    Spawn:
	PSIO L 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO L 0 A_FadeIn(0.08)
	PSIO L 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO L 0 A_FadeIn(0.08)
	PSIO M 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO M 0 A_FadeIn(0.08)
	PSIO M 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO M 0 A_FadeIn(0.08)
	PSIO N 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO N 0 A_FadeIn(0.08)
	PSIO N 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO N 0 A_FadeIn(0.08)
	PSIO O 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO O 0 A_FadeIn(0.08)
	PSIO O 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO O 0 A_FadeIn(0.08)
	PSIO P 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO P 0 A_FadeIn(0.08)
	PSIO P 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO P 0 A_FadeIn(0.08)
	PSIO AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPP 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPP 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPP 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPP 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPP 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPP 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPP 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPP 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPP 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPP 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPP 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPP 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPP 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPP 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPP 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPP 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPP 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPP 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPP 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPP 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPP 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO AABBCCDDEEFFGGHHIIJJKKLLMMNNOO 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
    Death:
	PSIO P 0 A_PlaySound("abomination/shieldoff")
	PSIO P 0 A_FadeOut(0.08)
	PSIO P 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO P 0 A_FadeOut(0.08)
	PSIO P 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO A 0 A_FadeOut(0.08)
	PSIO A 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO A 0 A_FadeOut(0.08)
	PSIO A 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO B 0 A_FadeOut(0.08)
	PSIO B 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO B 0 A_FadeOut(0.08)
	PSIO B 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO C 0 A_FadeOut(0.08)
	PSIO C 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO C 0 A_FadeOut(0.08)
	PSIO C 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO D 0 A_FadeOut(0.08)
	PSIO D 1 A_Warp(AAPTR_TARGET,0,0,48,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	PSIO D 0 A_FadeOut(0.08)
	Stop
    }
}

ACTOR PsionShieldCheck : Inventory
{
    Inventory.Amount 1
    Inventory.MaxAmount 1
}

ACTOR AbominationMadnessShot
{
    Speed 24
    Radius 14	
    Height 16
    Damage 6
    RenderStyle Add
    Scale 0.6
    Alpha 0.8
    DamageType "Madness"
    DeathSound "abomination/attack3/impact"
    PROJECTILE
    +FORCEPAIN
    +NOEXTREMEDEATH
    +NODAMAGETHRUST
    -ACTIVATEPCROSS
    States
    {
    Spawn:
	R047 A 0
	R047 A 0 A_Jump(128,3)
	R047 A 0 ThrustThingZ(0,frandom(0,8),0,1)
	R047 A 0 A_Jump(256,2)
	R047 A 0 ThrustThingZ(0,frandom(0,8),1,1)
	R047 A 4 A_FadeOut(0.04)
	R047 A 0 A_GiveInventory("MadnessCheck",1)
	R047 B 4 A_FadeOut(0.04)
	R047 B 0 A_GiveInventory("MadnessCheck",1)
	R047 C 4 A_FadeOut(0.04)
	R047 C 0 A_GiveInventory("MadnessCheck",1)
	R047 D 4 A_FadeOut(0.04)
	R047 D 0 A_GiveInventory("MadnessCheck",1)
	R047 E 4 A_FadeOut(0.04)
	R047 E 0 A_GiveInventory("MadnessCheck",1)
	R047 F 4 A_FadeOut(0.04)
	R047 F 0 A_GiveInventory("MadnessCheck",1)
	R047 G 4 A_FadeOut(0.04)
	R047 G 0 A_GiveInventory("MadnessCheck",1)
	R047 H 4 A_FadeOut(0.04)
	R047 H 0 A_GiveInventory("MadnessCheck",1)
	R047 I 4 A_FadeOut(0.04)
	R047 I 0 A_GiveInventory("MadnessCheck",1)
	R047 J 4 A_FadeOut(0.04)
	R047 J 0 A_GiveInventory("MadnessCheck",1)
	R047 K 4 A_FadeOut(0.04)
	R047 K 0 A_GiveInventory("MadnessCheck",1)
	R047 L 4 A_FadeOut(0.04)
	R047 L 0 A_GiveInventory("MadnessCheck",1)
	R047 M 4 A_FadeOut(0.04)
	R047 M 0 A_GiveInventory("MadnessCheck",1)
	R047 N 4 A_FadeOut(0.04)
	R047 N 0 A_GiveInventory("MadnessCheck",1)
	R047 O 4 A_FadeOut(0.04)
	R047 O 0 A_GiveInventory("MadnessCheck",1)
	R047 P 4 A_FadeOut(0.04)
	R047 P 0 A_GiveInventory("MadnessCheck",1)
	R047 Q 4 A_FadeOut(0.04)
	R047 Q 0 A_GiveInventory("MadnessCheck",1)
	R047 R 4 A_FadeOut(0.04)
	R047 R 0 A_GiveInventory("MadnessCheck",1)
	R047 S 4 A_FadeOut(0.04)
	R047 S 0 A_GiveInventory("MadnessCheck",1)
	R047 T 4 A_FadeOut(0.04)
	Stop
    Death:
	R047 A 0 A_Explode(40,128,0)
	R047 A 0 A_JumpIfInventory("MadnessCheck",19,38)
	R047 A 0 A_JumpIfInventory("MadnessCheck",18,36)
	R047 A 0 A_JumpIfInventory("MadnessCheck",17,34)
	R047 A 0 A_JumpIfInventory("MadnessCheck",16,32)
	R047 A 0 A_JumpIfInventory("MadnessCheck",15,30)
	R047 A 0 A_JumpIfInventory("MadnessCheck",14,28)
	R047 A 0 A_JumpIfInventory("MadnessCheck",13,26)
	R047 A 0 A_JumpIfInventory("MadnessCheck",12,24)
	R047 A 0 A_JumpIfInventory("MadnessCheck",11,22)
	R047 A 0 A_JumpIfInventory("MadnessCheck",10,20)
	R047 A 0 A_JumpIfInventory("MadnessCheck",9,18)
	R047 A 0 A_JumpIfInventory("MadnessCheck",8,16)
	R047 A 0 A_JumpIfInventory("MadnessCheck",7,14)
	R047 A 0 A_JumpIfInventory("MadnessCheck",6,12)
	R047 A 0 A_JumpIfInventory("MadnessCheck",5,10)
	R047 A 0 A_JumpIfInventory("MadnessCheck",4,8)
	R047 A 0 A_JumpIfInventory("MadnessCheck",3,6)
	R047 A 0 A_JumpIfInventory("MadnessCheck",2,4)
	R047 A 0 A_JumpIfInventory("MadnessCheck",1,2)
	R047 ABCDEFGHIJKLMNOPQRST 1 A_FadeOut(0.04)
	Stop
    }
}

ACTOR MadnessCheck : Inventory
{
    Inventory.Amount 1
    Inventory.MaxAmount 19
}

//====================================================================
//
// Korax
//
//====================================================================

//----------------------------------------------------------
// Real Korax
//----------------------------------------------------------

ACTOR RealKorax : Korax 10201
{
    Tag "Korax"
    Health 50000
    PainChance 5
    Speed 10
    Radius 95
    Height 170
    Mass 2000
    Damage 15
    Scale 1.5
    MONSTER
    +BOSS
    +FLOORCLIP
    +TELESTOMP
    +DONTMORPH
    +NOTARGET
    +NOICEDEATH
    +DONTHARMSPECIES
    Species "Korax"
    PainChance "Fire", 0
    PainChance "Pod", 0
    PainChance "GreenGas", 0
    PainChance "BloodScourge", 0
    PainChance "Holy", 0
    PainChance "Quietus", 0
    PainChance "QuietusTrail", 0
    DamageFactor "Sacred", 1.25
    DamageFactor "Holy", 1.25
    DamageFactor "Pod", 0
    DamageFactor "FireWave", 0.0
    DamageFactor "Meteor", 0.33
    DamageFactor "Dragon", 0.25
    DamageFactor "QuietusTrail", 0.2
    DamageFactor "Quietus", 0.2
    DamageFactor "Melee", 0.2
    DamageFactor "Mojo", 0.75
    DamageFactor "MojoActive", 0.75
    DamageFactor "Defile", 0.75
    DamageFactor "Iron", 0.5
    DamageFactor "Lantern", 0.2
    DamageFactor "DSparil", 0.2
    DamageFactor "Serpent", 0.5
    DamageFactor "Fire", 0.8
    DamageFactor "Loric", 0.666
    DamageFactor "Cube", 0.3
    DamageFactor "PodExplode", 0.75
    DamageFactor "Sword", 0.75
    BloodColor "#6B8E23"
    SeeSound "KoraxSight"
    AttackSound "KoraxAttack"
    PainSound "KoraxPain"
    DeathSound "KoraxDeath"
    ActiveSound "korax/active"
    Obituary "$OB_KORAX" // "%o was swept from the board by Korax"
    States
    {
    Spawn:
	KORX A 5 A_Look
	Loop
    See:
	KORX AAA 3 A_KoraxChase
	KORX B 3 A_Chase
	KORX BBB 3 A_KoraxChase
	KORX C 0 A_PlaySound("KoraxStep")
	KORX C 0 A_Jump(200,2)
	KORX C 0 A_PlaySound("korax/active", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KORX C 3 A_Chase
	KORX CCC 3 A_KoraxChase
	KORX D 3 A_Chase
	KORX DDD 3 A_KoraxChase
	KORX A 0 A_PlaySound("KoraxStep")
	KORX A 0 A_Jump(200,2)
	KORX A 0 A_PlaySound("korax/active", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KORX A 3 A_Chase
	Loop
    Pain:
	KORX H 5 A_Pain
	KORX H 5
	Goto See
    Missile:
	KORX E 2 A_FaceTarget
	KORX E 5 A_KoraxDecide
	Wait
/*
    Teleport:
	TNT1 A 35
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece1",0,0,0,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece2",0,0,0,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece3",0,0,0,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece4",0,0,0,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece5",0,0,0,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece6",0,0,0,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece7",0,0,0,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece8",0,0,0,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece9",0,0,0,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece10",0,0,0,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece11",0,0,0,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece12",0,0,0,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece13",0,0,0,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece14",0,0,0,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece15",0,0,0,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece16",0,0,0,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece17",0,0,0,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece18",0,0,0,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece19",0,0,0,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece20",0,0,0,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece21",0,0,0,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece22",0,0,0,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece23",0,0,0,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece24",0,0,0,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece25",0,0,0,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece26",0,0,0,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece27",0,0,0,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece28",0,0,0,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece29",0,0,0,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece30",0,0,0,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece31",0,0,0,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece32",0,0,0,0,0,0,0,32,0)
	TNT1 A 42//26
	TNT1 A 0 A_SpawnItemEx("RealKorax",0,0,0,0,0,0,0,32,0)
	Stop
*/


    Attack:
	KORX E 0 A_Jump(80,"Normal")
	KORX E 0 A_Jump(100,"Rapid")
	KORX E 0 A_Jump(220,"Strong")


// Skullbomb
    Skullbomb:
	KORX E 0 A_ChangeFlag("NOPAIN",1)
	KORX E 0 A_PlaySound("korax/charge", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KORX E 2 Bright A_FaceTarget
	KRX2 GHIHG 2 Bright A_FaceTarget
	KORX E 2 Bright A_FaceTarget
	KRX2 GHIHG 2 Bright A_FaceTarget
	KORX E 2 Bright A_FaceTarget
	KRX2 GHIHG 2 Bright A_FaceTarget
	KORX E 6 Bright A_FaceTarget
	KRX2 GHIJKL 8 Bright A_FaceTarget
	KRX2 M 0 Bright A_PlaySound("korax/skullfire", CHAN_5, 0.6, 0, ATTN_NONE)
	KRX2 MMMMMMMMMMMMMMM 0 Bright A_SpawnItemEx("SkullbombSpawner",frandom(64,-8),frandom(-32,32),frandom(80,180),frandom(-2,15),frandom(-15,15),frandom(3,10),frandom(56,200),32,0)
	KRX2 N 0 A_Jump(64,2)
	KRX2 MM 0 Bright A_SpawnItemEx("SkullbombSpawner",frandom(64,-8),frandom(-32,32),frandom(80,180),frandom(-2,15),frandom(-15,15),frandom(3,10),frandom(56,200),32,0)
	KRX2 N 0 A_Jump(128,2)
	KRX2 MM 0 Bright A_SpawnItemEx("SkullbombSpawner",frandom(64,-8),frandom(-32,32),frandom(80,180),frandom(-2,15),frandom(-15,15),frandom(3,10),frandom(56,200),32,0)
	KRX2 N 0 A_Jump(192,2)
	KRX2 M 0 Bright A_SpawnItemEx("SkullbombSpawner",frandom(64,-8),frandom(-32,32),frandom(80,180),frandom(-2,15),frandom(-15,15),frandom(3,10),frandom(56,200),32,0)
	KRX2 N 4 Bright
	KRX2 O 4 Bright
	KRX2 P 35 Bright
	KRX2 Q 4 Bright A_PlaySound("korax/spike", CHAN_VOICE, 1.0, 0)
	KORX E 15 Bright
	KORX E 5
	KORX E 0 A_ChangeFlag("NOPAIN",0)
	Goto See

// Normal
    Normal:
	KORX E 0 A_Jump(256,"LSerpent","SerpentBolt")
    LSerpent:
	KORX E 4 A_FaceTarget
	KORX E 0 Bright A_FaceTarget
	KORX F 0 Bright A_PlaySound("FighterHammerMiss", CHAN_5, 0.6, 0, ATTN_NONE)
	KORX F 0 Bright A_SpawnProjectile("LavaSerpentFX",162,60,0,0)  // Upper Right
	KORX F 0 Bright A_SpawnProjectile("LavaSerpentFX",156,-60,0,0) // Upper Left
	KORX F 0 Bright A_SpawnProjectile("LavaSerpentFX",123,80,0,0)  // Middle Right
	KORX F 0 Bright A_SpawnProjectile("LavaSerpentFX",133,-82,0,0) // Middle Left
	KORX F 0 Bright A_SpawnProjectile("LavaSerpentFX",81,80,0,0)   // Lower Right
	KORX F 8 Bright A_SpawnProjectile("LavaSerpentFX",80,-80,0,0)  // Lower Left
	KORX E 8 Bright
	KORX EEE 4 A_FaceTarget
	KORX E 0 Bright A_FaceTarget
	KORX F 0 Bright A_PlaySound("FighterHammerMiss", CHAN_5, 0.6, 0, ATTN_NONE)
	KORX F 0 Bright A_SpawnProjectile("LavaSerpentFX",162,60,0,0)  // Upper Right
	KORX F 0 Bright A_SpawnProjectile("LavaSerpentFX",156,-60,0,0) // Upper Left
	KORX F 0 Bright A_SpawnProjectile("LavaSerpentFX",123,80,0,0)  // Middle Right
	KORX F 0 Bright A_SpawnProjectile("LavaSerpentFX",133,-82,0,0) // Middle Left
	KORX F 0 Bright A_SpawnProjectile("LavaSerpentFX",81,80,0,0)   // Lower Right
	KORX F 8 Bright A_SpawnProjectile("LavaSerpentFX",80,-80,0,0)  // Lower Left
	KORX E 8 Bright
	KORX EEE 4 A_FaceTarget
	KORX E 0 Bright A_FaceTarget
	KORX F 0 Bright A_PlaySound("FighterHammerMiss", CHAN_5, 0.6, 0, ATTN_NONE)
	KORX F 0 Bright A_SpawnProjectile("LavaSerpentFX",162,60,0,0)  // Upper Right
	KORX F 0 Bright A_SpawnProjectile("LavaSerpentFX",156,-60,0,0) // Upper Left
	KORX F 0 Bright A_SpawnProjectile("LavaSerpentFX",123,80,0,0)  // Middle Right
	KORX F 0 Bright A_SpawnProjectile("LavaSerpentFX",133,-82,0,0) // Middle Left
	KORX F 0 Bright A_SpawnProjectile("LavaSerpentFX",81,80,0,0)   // Lower Right
	KORX F 8 Bright A_SpawnProjectile("LavaSerpentFX",80,-80,0,0)  // Lower Left
	KORX E 8 Bright
	Goto See
    SerpentBolt:
	KORX E 4 A_FaceTarget
	KORX E 0 Bright A_FaceTarget
	KORX F 0 Bright A_PlaySound("weapons/serpentstaff/powered/fire", CHAN_5, 0.6, 0, ATTN_NONE)
	KORX F 0 Bright A_SpawnProjectile("SerpentBolt",162,60,0,0)  // Upper Right
	KORX F 0 Bright A_SpawnProjectile("SerpentBolt",156,-60,0,0) // Upper Left
	KORX F 0 Bright A_SpawnProjectile("SerpentBolt",123,80,0,0)  // Middle Right
	KORX F 0 Bright A_SpawnProjectile("SerpentBolt",133,-82,0,0) // Middle Left
	KORX F 0 Bright A_SpawnProjectile("SerpentBolt",81,80,0,0)   // Lower Right
	KORX F 8 Bright A_SpawnProjectile("SerpentBolt",80,-80,0,0)  // Lower Left
	KORX E 8 Bright
	KORX EEE 4 A_FaceTarget
	KORX E 0 Bright A_FaceTarget
	KORX F 0 Bright A_PlaySound("weapons/serpentstaff/powered/fire", CHAN_5, 0.6, 0, ATTN_NONE)
	KORX F 0 Bright A_SpawnProjectile("SerpentBolt",162,60,0,0)  // Upper Right
	KORX F 0 Bright A_SpawnProjectile("SerpentBolt",156,-60,0,0) // Upper Left
	KORX F 0 Bright A_SpawnProjectile("SerpentBolt",123,80,0,0)  // Middle Right
	KORX F 0 Bright A_SpawnProjectile("SerpentBolt",133,-82,0,0) // Middle Left
	KORX F 0 Bright A_SpawnProjectile("SerpentBolt",81,80,0,0)   // Lower Right
	KORX F 8 Bright A_SpawnProjectile("SerpentBolt",80,-80,0,0)  // Lower Left
	KORX E 8 Bright
	KORX EEE 4 A_FaceTarget
	KORX E 0 Bright A_FaceTarget
	KORX F 0 Bright A_PlaySound("weapons/serpentstaff/powered/fire", CHAN_5, 0.6, 0, ATTN_NONE)
	KORX F 0 Bright A_SpawnProjectile("SerpentBolt",162,60,0,0)  // Upper Right
	KORX F 0 Bright A_SpawnProjectile("SerpentBolt",156,-60,0,0) // Upper Left
	KORX F 0 Bright A_SpawnProjectile("SerpentBolt",123,80,0,0)  // Middle Right
	KORX F 0 Bright A_SpawnProjectile("SerpentBolt",133,-82,0,0) // Middle Left
	KORX F 0 Bright A_SpawnProjectile("SerpentBolt",81,80,0,0)   // Lower Right
	KORX F 8 Bright A_SpawnProjectile("SerpentBolt",80,-80,0,0)  // Lower Left
	KORX E 8 Bright
	Goto See
// Rapid (steady stream of weaker shots from any one of his six arms instead of all at once)
    Rapid:
	KORX A 0 A_Jump(256,"FireStorm","Mindblower","Astreon")
    FireStorm:
	KORX A 4 A_FaceTarget
	KORX A 0 Bright A_FaceTarget
	KORX A 0 Bright A_Jump(256,1,6,11,16,21,26)
	KRX2 A 0 Bright A_Jump(245,2)
	KRX2 A 0 Bright A_PlaySound("korax/active", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KRX2 A 0 Bright A_PlaySound("weapons/firestorm/fire", CHAN_5, 0.6, 0, ATTN_NONE)
	KRX2 A 4 Bright A_SpawnProjectile("FirestormBall",162,60,0,0)  // Upper Right
	KRX2 A 0 Bright A_CPosReFire
	Goto FireStorm+1
	KRX2 B 0 Bright A_Jump(245,2)
	KRX2 B 0 Bright A_PlaySound("korax/active", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KRX2 B 0 Bright A_PlaySound("weapons/firestorm/fire", CHAN_5, 0.6, 0, ATTN_NONE)
	KRX2 B 4 Bright A_SpawnProjectile("FirestormBall",156,-60,0,0) // Upper Left
	KRX2 B 0 Bright A_CPosReFire
	Goto FireStorm+1
	KRX2 C 0 Bright A_Jump(245,2)
	KRX2 C 0 Bright A_PlaySound("korax/active", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KRX2 C 0 Bright A_PlaySound("weapons/firestorm/fire", CHAN_5, 0.6, 0, ATTN_NONE)
	KRX2 C 4 Bright A_SpawnProjectile("FirestormBall",123,80,0,0)  // Middle Right
	KRX2 C 0 Bright A_CPosReFire
	Goto FireStorm+1
	KRX2 D 0 Bright A_Jump(245,2)
	KRX2 D 0 Bright A_PlaySound("korax/active", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KRX2 D 0 Bright A_PlaySound("weapons/firestorm/fire", CHAN_5, 0.6, 0, ATTN_NONE)
	KRX2 D 4 Bright A_SpawnProjectile("FirestormBall",133,-82,0,0) // Middle Left
	KRX2 D 0 Bright A_CPosReFire
	Goto FireStorm+1
	KRX2 E 0 Bright A_Jump(245,2)
	KRX2 E 0 Bright A_PlaySound("korax/active", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KRX2 E 0 Bright A_PlaySound("weapons/firestorm/fire", CHAN_5, 0.6, 0, ATTN_NONE)
	KRX2 E 4 Bright A_SpawnProjectile("FirestormBall",81,80,0,0)   // Lower Right
	KRX2 E 0 Bright A_CPosReFire
	Goto FireStorm+1
	KRX2 F 0 Bright A_Jump(245,2)
	KRX2 F 0 Bright A_PlaySound("korax/active", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KRX2 F 0 Bright A_PlaySound("weapons/firestorm/fire", CHAN_5, 0.6, 0, ATTN_NONE)
	KRX2 F 4 Bright A_SpawnProjectile("FirestormBall",80,-80,0,0)  // Lower Left
	KRX2 F 0 Bright A_CPosReFire
	Goto FireStorm+1
    Mindblower:
	KORX A 4 A_FaceTarget
	KORX A 0 Bright A_FaceTarget
	KORX A 0 Bright A_Jump(256,1,6,11,16,21,26)
	KRX2 A 0 Bright A_Jump(245,2)
	KRX2 A 0 Bright A_PlaySound("korax/active", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KRX2 A 0 Bright A_PlaySound("weapons/mindblower/fire", CHAN_5, 0.6, 0, ATTN_NONE)
	KRX2 A 6 Bright A_SpawnProjectile("KoraxMindblowerBall",162,60,0,0)  // Upper Right
	KRX2 A 0 Bright A_CPosReFire
	Goto Mindblower+1
	KRX2 B 0 Bright A_Jump(245,2)
	KRX2 B 0 Bright A_PlaySound("korax/active", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KRX2 B 0 Bright A_PlaySound("weapons/mindblower/fire", CHAN_5, 0.6, 0, ATTN_NONE)
	KRX2 B 6 Bright A_SpawnProjectile("KoraxMindblowerBall",156,-60,0,0) // Upper Left
	KRX2 B 0 Bright A_CPosReFire
	Goto Mindblower+1
	KRX2 C 0 Bright A_Jump(245,2)
	KRX2 C 0 Bright A_PlaySound("korax/active", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KRX2 C 0 Bright A_PlaySound("weapons/mindblower/fire", CHAN_5, 0.6, 0, ATTN_NONE)
	KRX2 C 6 Bright A_SpawnProjectile("KoraxMindblowerBall",123,80,0,0)  // Middle Right
	KRX2 C 0 Bright A_CPosReFire
	Goto Mindblower+1
	KRX2 D 0 Bright A_Jump(245,2)
	KRX2 D 0 Bright A_PlaySound("korax/active", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KRX2 D 0 Bright A_PlaySound("weapons/mindblower/fire", CHAN_5, 0.6, 0, ATTN_NONE)
	KRX2 D 6 Bright A_SpawnProjectile("KoraxMindblowerBall",133,-82,0,0) // Middle Left
	KRX2 D 0 Bright A_CPosReFire
	Goto Mindblower+1
	KRX2 E 0 Bright A_Jump(245,2)
	KRX2 E 0 Bright A_PlaySound("korax/active", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KRX2 E 0 Bright A_PlaySound("weapons/mindblower/fire", CHAN_5, 0.6, 0, ATTN_NONE)
	KRX2 E 6 Bright A_SpawnProjectile("KoraxMindblowerBall",81,80,0,0)   // Lower Right
	KRX2 E 0 Bright A_CPosReFire
	Goto Mindblower+1
	KRX2 F 0 Bright A_Jump(245,2)
	KRX2 F 0 Bright A_PlaySound("korax/active", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KRX2 F 0 Bright A_PlaySound("weapons/mindblower/fire", CHAN_5, 0.6, 0, ATTN_NONE)
	KRX2 F 6 Bright A_SpawnProjectile("KoraxMindblowerBall",80,-80,0,0)  // Lower Left
	KRX2 F 0 Bright A_CPosReFire
	Goto Mindblower+1
    Astreon:
	KORX A 4 A_FaceTarget
	KORX A 0 Bright A_FaceTarget
	KORX A 0 Bright A_Jump(256,1,6,11,16,21,26)
	KRX2 A 0 Bright A_Jump(245,2)
	KRX2 A 0 Bright A_PlaySound("korax/active", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KRX2 A 0 Bright A_PlaySound("weapons/ironward/fire", CHAN_5, 0.6, 0, ATTN_NONE)
	KRX2 A 3 Bright A_SpawnProjectile("IronBall",162,60,0,32,frandom(-2,-6))  // Upper Right
	KRX2 A 0 Bright A_CPosReFire
	Goto Astreon+1
	KRX2 B 0 Bright A_Jump(245,2)
	KRX2 B 0 Bright A_PlaySound("korax/active", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KRX2 B 0 Bright A_PlaySound("weapons/ironward/fire", CHAN_5, 0.6, 0, ATTN_NONE)
	KRX2 B 3 Bright A_SpawnProjectile("IronBall",156,-60,0,32,frandom(-2,-6)) // Upper Left
	KRX2 B 0 Bright A_CPosReFire
	Goto Astreon+1
	KRX2 C 0 Bright A_Jump(245,2)
	KRX2 C 0 Bright A_PlaySound("korax/active", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KRX2 C 0 Bright A_PlaySound("weapons/ironward/fire", CHAN_5, 0.6, 0, ATTN_NONE)
	KRX2 C 3 Bright A_SpawnProjectile("IronBall",123,80,0,32,frandom(-2,-6))  // Middle Right
	KRX2 C 0 Bright A_CPosReFire
	Goto Astreon+1
	KRX2 D 0 Bright A_Jump(245,2)
	KRX2 D 0 Bright A_PlaySound("korax/active", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KRX2 D 0 Bright A_PlaySound("weapons/ironward/fire", CHAN_5, 0.6, 0, ATTN_NONE)
	KRX2 D 3 Bright A_SpawnProjectile("IronBall",133,-82,0,32,frandom(-2,-6)) // Middle Left
	KRX2 D 0 Bright A_CPosReFire
	Goto Astreon+1
	KRX2 E 0 Bright A_Jump(245,2)
	KRX2 E 0 Bright A_PlaySound("korax/active", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KRX2 E 0 Bright A_PlaySound("weapons/ironward/fire", CHAN_5, 0.6, 0, ATTN_NONE)
	KRX2 E 3 Bright A_SpawnProjectile("IronBall",81,80,0,32,frandom(-2,-6))   // Lower Right
	KRX2 E 0 Bright A_CPosReFire
	Goto Astreon+1
	KRX2 F 0 Bright A_Jump(245,2)
	KRX2 F 0 Bright A_PlaySound("korax/active", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KRX2 F 0 Bright A_PlaySound("weapons/ironward/fire", CHAN_5, 0.6, 0, ATTN_NONE)
	KRX2 F 3 Bright A_SpawnProjectile("IronBall",80,-80,0,32,frandom(-2,-6))  // Lower Left
	KRX2 F 0 Bright A_CPosReFire
	Goto Astreon+1
// Strong (rapid fire, but not quite as fast as Rapid)
    Strong:
	KORX A 0 A_Jump(256,"LSphere","RAxe","Loric")
    LSphere:
	KORX A 4 A_FaceTarget
	KORX A 0 Bright A_FaceTarget
	KORX A 0 Bright A_Jump(256,1,8,15,22,29,36)
	KRX2 A 0 Bright A_Jump(225,2)
	KRX2 A 0 Bright A_PlaySound("korax/active", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KRX2 A 0 Bright A_PlaySound("MageLightningFire", CHAN_5, 0.6, 0, ATTN_NONE)
	KRX2 A 4 Bright A_SpawnProjectile("LightningSphere",162,60,0,0)  // Upper Right
	KRX2 A 5 A_FaceTarget
	KORX E 5 A_FaceTarget
	KRX2 A 0 Bright A_CPosReFire
	Goto LSphere+1
	KRX2 B 0 Bright A_Jump(225,2)
	KRX2 B 0 Bright A_PlaySound("korax/active", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KRX2 B 0 Bright A_PlaySound("MageLightningFire", CHAN_5, 0.6, 0, ATTN_NONE)
	KRX2 B 4 Bright A_SpawnProjectile("LightningSphere",156,-60,0,0) // Upper Left
	KRX2 B 5 A_FaceTarget
	KORX E 5 A_FaceTarget
	KRX2 B 0 Bright A_CPosReFire
	Goto LSphere+1
	KRX2 C 0 Bright A_Jump(225,2)
	KRX2 C 0 Bright A_PlaySound("korax/active", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KRX2 C 0 Bright A_PlaySound("MageLightningFire", CHAN_5, 0.6, 0, ATTN_NONE)
	KRX2 C 4 Bright A_SpawnProjectile("LightningSphere",123,80,0,0)  // Middle Right
	KRX2 C 5 A_FaceTarget
	KORX E 5 A_FaceTarget
	KRX2 C 0 Bright A_CPosReFire
	Goto LSphere+1
	KRX2 D 0 Bright A_Jump(225,2)
	KRX2 D 0 Bright A_PlaySound("korax/active", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KRX2 D 0 Bright A_PlaySound("MageLightningFire", CHAN_5, 0.6, 0, ATTN_NONE)
	KRX2 D 4 Bright A_SpawnProjectile("LightningSphere",133,-82,0,0) // Middle Left
	KRX2 D 5 A_FaceTarget
	KORX E 5 A_FaceTarget
	KRX2 D 0 Bright A_CPosReFire
	Goto LSphere+1
	KRX2 E 0 Bright A_Jump(225,2)
	KRX2 E 0 Bright A_PlaySound("korax/active", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KRX2 E 0 Bright A_PlaySound("MageLightningFire", CHAN_5, 0.6, 0, ATTN_NONE)
	KRX2 E 4 Bright A_SpawnProjectile("LightningSphere",81,80,0,0)   // Lower Right
	KRX2 E 5 A_FaceTarget
	KORX E 5 A_FaceTarget
	KRX2 E 0 Bright A_CPosReFire
	Goto LSphere+1
	KRX2 F 0 Bright A_Jump(225,2)
	KRX2 F 0 Bright A_PlaySound("korax/active", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KRX2 F 0 Bright A_PlaySound("MageLightningFire", CHAN_5, 0.6, 0, ATTN_NONE)
	KRX2 F 4 Bright A_SpawnProjectile("LightningSphere",80,-80,0,0)  // Lower Left
	KRX2 F 5 A_FaceTarget
	KORX E 5 A_FaceTarget
	KRX2 F 0 Bright A_CPosReFire
	Goto LSphere+1
    Loric:
	KORX A 4 A_FaceTarget
	KORX A 0 Bright A_FaceTarget
	KORX A 0 Bright A_Jump(256,1,8,15,22,29,36)
	KRX2 A 0 Bright A_Jump(225,2)
	KRX2 A 0 Bright A_PlaySound("korax/active", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KRX2 A 0 Bright A_PlaySound("weapons/heart/powered/fire", CHAN_5, 0.6, 0, ATTN_NONE)
	KRX2 A 4 Bright A_SpawnProjectile("EMLoricSkull",162,60,0,0)  // Upper Right
	KRX2 A 8 A_FaceTarget
	KORX E 8 A_FaceTarget
	KRX2 A 0 Bright A_CPosReFire
	Goto Loric+1
	KRX2 B 0 Bright A_Jump(225,2)
	KRX2 B 0 Bright A_PlaySound("korax/active", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KRX2 B 0 Bright A_PlaySound("weapons/heart/powered/fire", CHAN_5, 0.6, 0, ATTN_NONE)
	KRX2 B 4 Bright A_SpawnProjectile("EMLoricSkull",156,-60,0,0) // Upper Left
	KRX2 B 8 A_FaceTarget
	KORX E 8 A_FaceTarget
	KRX2 B 0 Bright A_CPosReFire
	Goto Loric+1
	KRX2 C 0 Bright A_Jump(225,2)
	KRX2 C 0 Bright A_PlaySound("korax/active", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KRX2 C 0 Bright A_PlaySound("weapons/heart/powered/fire", CHAN_5, 0.6, 0, ATTN_NONE)
	KRX2 C 4 Bright A_SpawnProjectile("EMLoricSkull",123,80,0,0)  // Middle Right
	KRX2 C 8 A_FaceTarget
	KORX E 8 A_FaceTarget
	KRX2 C 0 Bright A_CPosReFire
	Goto Loric+1
	KRX2 D 0 Bright A_Jump(225,2)
	KRX2 D 0 Bright A_PlaySound("korax/active", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KRX2 D 0 Bright A_PlaySound("weapons/heart/powered/fire", CHAN_5, 0.6, 0, ATTN_NONE)
	KRX2 D 4 Bright A_SpawnProjectile("EMLoricSkull",133,-82,0,0) // Middle Left
	KRX2 D 8 A_FaceTarget
	KORX E 8 A_FaceTarget
	KRX2 D 0 Bright A_CPosReFire
	Goto Loric+1
	KRX2 E 0 Bright A_Jump(225,2)
	KRX2 E 0 Bright A_PlaySound("korax/active", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KRX2 E 0 Bright A_PlaySound("weapons/heart/powered/fire", CHAN_5, 0.6, 0, ATTN_NONE)
	KRX2 E 4 Bright A_SpawnProjectile("EMLoricSkull",81,80,0,0)   // Lower Right
	KRX2 E 8 A_FaceTarget
	KORX E 8 A_FaceTarget
	KRX2 E 0 Bright A_CPosReFire
	Goto Loric+1
	KRX2 F 0 Bright A_Jump(225,2)
	KRX2 F 0 Bright A_PlaySound("korax/active", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KRX2 F 0 Bright A_PlaySound("weapons/heart/powered/fire", CHAN_5, 0.6, 0, ATTN_NONE)
	KRX2 F 4 Bright A_SpawnProjectile("EMLoricSkull",80,-80,0,0)  // Lower Left
	KRX2 F 8 A_FaceTarget
	KORX E 8 A_FaceTarget
	KRX2 F 0 Bright A_CPosReFire
	Goto Loric+1
    RAxe: // ?
	KORX A 4 A_FaceTarget
	KORX A 0 Bright A_FaceTarget
	KORX A 0 Bright A_Jump(256,1,8,15,22,29,36)
	KRX2 A 0 Bright A_Jump(225,2)
	KRX2 A 0 Bright A_PlaySound("korax/active", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KRX2 A 0 Bright A_PlaySound("FighterHammerMiss", CHAN_5, 0.6, 0, ATTN_NONE)
	KRX2 A 4 Bright A_SpawnProjectile("KoraxRedAxe",162,60,-20,0)  // Upper Right
	KRX2 A 7 A_FaceTarget
	KORX E 7 A_FaceTarget
	KRX2 A 0 Bright A_CPosReFire
	Goto RAxe+1
	KRX2 B 0 Bright A_Jump(225,2)
	KRX2 B 0 Bright A_PlaySound("korax/active", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KRX2 B 0 Bright A_PlaySound("FighterHammerMiss", CHAN_5, 0.6, 0, ATTN_NONE)
	KRX2 B 4 Bright A_SpawnProjectile("KoraxRedAxe",156,-60,20,0) // Upper Left
	KRX2 B 7 A_FaceTarget
	KORX E 7 A_FaceTarget
	KRX2 B 0 Bright A_CPosReFire
	Goto RAxe+1
	KRX2 C 0 Bright A_Jump(225,2)
	KRX2 C 0 Bright A_PlaySound("korax/active", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KRX2 C 0 Bright A_PlaySound("FighterHammerMiss", CHAN_5, 0.6, 0, ATTN_NONE)
	KRX2 C 4 Bright A_SpawnProjectile("KoraxRedAxe",123,80,-20,0)  // Middle Right
	KRX2 C 7 A_FaceTarget
	KORX E 7 A_FaceTarget
	KRX2 C 0 Bright A_CPosReFire
	Goto RAxe+1
	KRX2 D 0 Bright A_Jump(225,2)
	KRX2 D 0 Bright A_PlaySound("korax/active", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KRX2 D 0 Bright A_PlaySound("FighterHammerMiss", CHAN_5, 0.6, 0, ATTN_NONE)
	KRX2 D 4 Bright A_SpawnProjectile("KoraxRedAxe",133,-82,20,0) // Middle Left
	KRX2 D 7 A_FaceTarget
	KORX E 7 A_FaceTarget
	KRX2 D 0 Bright A_CPosReFire
	Goto RAxe+1
	KRX2 E 0 Bright A_Jump(225,2)
	KRX2 E 0 Bright A_PlaySound("korax/active", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KRX2 E 0 Bright A_PlaySound("FighterHammerMiss", CHAN_5, 0.6, 0, ATTN_NONE)
	KRX2 E 4 Bright A_SpawnProjectile("KoraxRedAxe",81,80,-20,0)   // Lower Right
	KRX2 E 7 A_FaceTarget
	KORX E 7 A_FaceTarget
	KRX2 E 0 Bright A_CPosReFire
	Goto RAxe+1
	KRX2 F 0 Bright A_Jump(225,2)
	KRX2 F 0 Bright A_PlaySound("korax/active", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KRX2 F 0 Bright A_PlaySound("FighterHammerMiss", CHAN_5, 0.6, 0, ATTN_NONE)
	KRX2 F 4 Bright A_SpawnProjectile("KoraxRedAxe",80,-80,20,0)  // Lower Left
	KRX2 F 7 A_FaceTarget
	KORX E 7 A_FaceTarget
	KRX2 F 0 Bright A_CPosReFire
	Goto RAxe+1
    Command:
	KORX E 5 Bright A_FaceTarget
	KORX W 10 Bright A_FaceTarget
	KORX G 0 Bright A_SpawnItemEx("KoraxBolt",0,3,200,0,0,0,0,32,0)
	KORX G 0 Bright A_JumpIfHealthLower(20000,6)
// Scripts for above 1/2 health
	KORX G 0 Bright A_Jump(256,1,2,3,4)
	KORX G 0 Bright ACS_Execute(250,0,0,0,0)
	Goto Command+15
	KORX G 0 Bright ACS_Execute(251,0,0,0,0)
	Goto Command+15
	KORX G 0 Bright ACS_Execute(252,0,0,0,0)
	Goto Command+15
	KORX G 0 Bright ACS_Execute(253,0,0,0,0)
	Goto Command+15
// Scripts for below 1/2 health
	KORX G 0 Bright A_Jump(256,1,2,3,4,5)
	KORX G 0 Bright ACS_Execute(250,0,0,0,0)
	Goto Command+15
	KORX G 0 Bright ACS_Execute(251,0,0,0,0)
	Goto Command+15
	KORX G 0 Bright ACS_Execute(252,0,0,0,0)
	Goto Command+15
	KORX G 0 Bright ACS_Execute(253,0,0,0,0)
	Goto Command+15
	KORX G 0 Bright ACS_Execute(254,0,0,0,0)
	KORX G 15 Bright
	KORX W 10 Bright
	KORX E 5 Bright
	Goto See
    Death:
	KORX I 5
	KORX J 5 A_FaceTarget
	KORX K 5 A_Scream
	KORX LMNOP 5
	KORX Q 10
	KORX R 5 A_KoraxBonePop
	KORX S 5 A_NoBlocking
	KORX TU 5
	KORX V -1
	Stop
    }
}

//----------------------------------------------------------
// Fake Korax
//----------------------------------------------------------

ACTOR FakeKorax : RealKorax 10202
{
    Tag "Korax"
    Health 20000
    PainChance 10
}

//----------------------------------------------------------
// Korax (first encounter)
//----------------------------------------------------------

ACTOR FEKorax : RealKorax
{
    Tag "Korax"
    Health 20000
    -COUNTKILL
    +NODAMAGE
    +DORMANT
    +INVULNERABLE
    States
    {
    Spawn:
	KORX A 0
	KORX A 35
	KORX E 0 A_PlaySound("korax/charge", CHAN_VOICE, 1.0, 0, ATTN_NONE)
	KORX E 2 Bright A_FaceTarget
	KRX2 GHIHG 2 Bright A_FaceTarget
	KORX E 2 Bright A_FaceTarget
	KRX2 GHIHG 2 Bright A_FaceTarget
	KORX E 2 Bright A_FaceTarget
	KRX2 GHIHG 2 Bright A_FaceTarget
	KORX E 6 Bright A_FaceTarget
	KRX2 GHIJKL 8 Bright A_FaceTarget
	KRX2 M 0 Bright A_PlaySound("korax/skullfire", CHAN_5, 0.6, 0, ATTN_NONE)
	KRX2 MMMMMMMMMMMMMMM 0 Bright A_SpawnItemEx("SkullbombSpawner",frandom(64,-8),frandom(-32,32),frandom(80,180),frandom(-2,15),frandom(-15,15),frandom(3,10),frandom(56,200),32,0)
	KRX2 N 0 A_Jump(64,2)
	KRX2 MM 0 Bright A_SpawnItemEx("SkullbombSpawner",frandom(64,-8),frandom(-32,32),frandom(80,180),frandom(-2,15),frandom(-15,15),frandom(3,10),frandom(56,200),32,0)
	KRX2 N 0 A_Jump(128,2)
	KRX2 MM 0 Bright A_SpawnItemEx("SkullbombSpawner",frandom(64,-8),frandom(-32,32),frandom(80,180),frandom(-2,15),frandom(-15,15),frandom(3,10),frandom(56,200),32,0)
	KRX2 N 0 A_Jump(192,2)
	KRX2 M 0 Bright A_SpawnItemEx("SkullbombSpawner",frandom(64,-8),frandom(-32,32),frandom(80,180),frandom(-2,15),frandom(-15,15),frandom(3,10),frandom(56,200),32,0)
	KRX2 N 4 Bright
	KRX2 O 4 Bright
	KRX2 P 35 Bright
	KRX2 Q 4 Bright A_PlaySound("korax/spike", CHAN_VOICE, 0.8, 0)
	KORX E 15 Bright
	KORX E 5
	KORX A 80
	KORX A 0 A_PlaySound("korax/teleportout", CHAN_6, 1.0, 0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportOutPiece1",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportOutPiece2",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportOutPiece3",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportOutPiece4",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportOutPiece5",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportOutPiece6",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportOutPiece7",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportOutPiece8",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportOutPiece9",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportOutPiece10",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportOutPiece11",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportOutPiece12",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportOutPiece13",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportOutPiece14",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportOutPiece15",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportOutPiece16",0,0,4,0,0,0,0,32,0)

	KORX A 0 A_SpawnItemEx("KoraxTeleportOutPiece17",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportOutPiece18",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportOutPiece19",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportOutPiece20",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportOutPiece21",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportOutPiece22",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportOutPiece23",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportOutPiece24",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportOutPiece25",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportOutPiece26",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportOutPiece27",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportOutPiece28",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportOutPiece29",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportOutPiece30",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportOutPiece31",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportOutPiece32",0,0,4,0,0,0,0,32,0)
	Stop
    See:
    Pain:
	Stop
    }
}

ACTOR FEKoraxSpawner
{
    +FLOORCLIP
    +NOINTERACTION
    RenderStyle None
    States
    {
    Spawn:
	TNT1 A 0//35
//	KORX A 0 A_PlaySound("korax/teleportin", CHAN_6, 1.0, 0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece1",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece2",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece3",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece4",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece5",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece6",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece7",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece8",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece9",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece10",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece11",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece12",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece13",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece14",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece15",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece16",0,0,4,0,0,0,0,32,0)

	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece17",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece18",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece19",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece20",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece21",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece22",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece23",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece24",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece25",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece26",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece27",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece28",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece29",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece30",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece31",0,0,4,0,0,0,0,32,0)
	KORX A 0 A_SpawnItemEx("KoraxTeleportInPiece32",0,0,4,0,0,0,0,32,0)
	KORX A 16
	KORX A 0 A_PlaySound("korax/teleportin", CHAN_6, 1.0, 0)
	KORX A 32
	KORX A 0 A_SpawnItemEx("FEKorax",0,0,0,0,0,0,0,32,0,985)
	Stop
    }
}

//---------------------------------------------
// Korax teleport effect
//---------------------------------------------

ACTOR KoraxTeleportOutPiece1
{
    Scale 1.5
//    RenderStyle Add
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	KXT1 A 1						//KRX3 A 1
	KXT1 A 0 A_SetRenderStyle(1.0, Style_Add)
	KXT1 A 1 A_FadeOut(0.06)
	Wait
    }
}

ACTOR KoraxTeleportOutPiece2
{
    Scale 1.5
//    RenderStyle Add
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	KXT1 B 2
	KXT1 B 0 A_SetRenderStyle(1.0, Style_Add)
	KXT1 B 1 A_FadeOut(0.06)
	Wait
    }
}

ACTOR KoraxTeleportOutPiece3
{
    Scale 1.5
//    RenderStyle Add
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	KXT1 C 3
	KXT1 C 0 A_SetRenderStyle(1.0, Style_Add)
	KXT1 C 1 A_FadeOut(0.06)
	Wait
    }
}

ACTOR KoraxTeleportOutPiece4
{
    Scale 1.5
//    RenderStyle Add
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	KXT1 D 4
	KXT1 D 0 A_SetRenderStyle(1.0, Style_Add)
	KXT1 D 1 A_FadeOut(0.06)
	Wait
    }
}

ACTOR KoraxTeleportOutPiece5
{
    Scale 1.5
//    RenderStyle Add
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	KXT1 E 5
	KXT1 E 0 A_SetRenderStyle(1.0, Style_Add)
	KXT1 E 1 A_FadeOut(0.06)
	Wait
    }
}

ACTOR KoraxTeleportOutPiece6
{
    Scale 1.5
//    RenderStyle Add
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	KXT1 F 6
	KXT1 F 0 A_SetRenderStyle(1.0, Style_Add)
	KXT1 F 1 A_FadeOut(0.06)
	Wait
    }
}

ACTOR KoraxTeleportOutPiece7
{
    Scale 1.5
//    RenderStyle Add
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	KXT1 G 7
	KXT1 G 0 A_SetRenderStyle(1.0, Style_Add)
	KXT1 G 1 A_FadeOut(0.06)
	Wait
    }
}

ACTOR KoraxTeleportOutPiece8
{
    Scale 1.5
//    RenderStyle Add
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	KXT1 H 8
	KXT1 H 0 A_SetRenderStyle(1.0, Style_Add)
	KXT1 H 1 A_FadeOut(0.06)
	Wait
    }
}

ACTOR KoraxTeleportOutPiece9
{
    Scale 1.5
//    RenderStyle Add
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	KXT1 I 9
	KXT1 I 0 A_SetRenderStyle(1.0, Style_Add)
	KXT1 I 1 A_FadeOut(0.06)
	Wait
    }
}

ACTOR KoraxTeleportOutPiece10
{
    Scale 1.5
//    RenderStyle Add
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	KXT1 J 10
	KXT1 J 0 A_SetRenderStyle(1.0, Style_Add)
	KXT1 J 1 A_FadeOut(0.06)
	Wait
    }
}

ACTOR KoraxTeleportOutPiece11
{
    Scale 1.5
//    RenderStyle Add
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	KXT1 K 11
	KXT1 K 0 A_SetRenderStyle(1.0, Style_Add)
	KXT1 K 1 A_FadeOut(0.06)
	Wait
    }
}

ACTOR KoraxTeleportOutPiece12
{
    Scale 1.5
//    RenderStyle Add
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	KXT1 L 12
	KXT1 L 0 A_SetRenderStyle(1.0, Style_Add)
	KXT1 L 1 A_FadeOut(0.06)
	Wait
    }
}

ACTOR KoraxTeleportOutPiece13
{
    Scale 1.5
//    RenderStyle Add
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	KXT1 M 13
	KXT1 M 0 A_SetRenderStyle(1.0, Style_Add)
	KXT1 M 1 A_FadeOut(0.06)
	Wait
    }
}

ACTOR KoraxTeleportOutPiece14
{
    Scale 1.5
//    RenderStyle Add
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	KXT1 N 14
	KXT1 N 0 A_SetRenderStyle(1.0, Style_Add)
	KXT1 N 1 A_FadeOut(0.06)
	Wait
    }
}

ACTOR KoraxTeleportOutPiece15
{
    Scale 1.5
//    RenderStyle Add
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	KXT1 O 15
	KXT1 O 0 A_SetRenderStyle(1.0, Style_Add)
	KXT1 O 1 A_FadeOut(0.06)
	Wait
    }
}

ACTOR KoraxTeleportOutPiece16
{
    Scale 1.5
//    RenderStyle Add
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	KXT1 P 16
	KXT1 P 0 A_SetRenderStyle(1.0, Style_Add)
	KXT1 P 1 A_FadeOut(0.06)
	Wait
    }
}

ACTOR KoraxTeleportOutPiece17
{
    Scale 1.5
//    RenderStyle Add
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	KXT1 Q 17
	KXT1 Q 0 A_SetRenderStyle(1.0, Style_Add)
	KXT1 Q 1 A_FadeOut(0.06)
	Wait
    }
}

ACTOR KoraxTeleportOutPiece18
{
    Scale 1.5
//    RenderStyle Add
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	KXT1 R 18
	KXT1 R 0 A_SetRenderStyle(1.0, Style_Add)
	KXT1 R 1 A_FadeOut(0.06)
	Wait
    }
}

ACTOR KoraxTeleportOutPiece19
{
    Scale 1.5
//    RenderStyle Add
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	KXT1 S 19
	KXT1 S 0 A_SetRenderStyle(1.0, Style_Add)
	KXT1 S 1 A_FadeOut(0.06)
	Wait
    }
}

ACTOR KoraxTeleportOutPiece20
{
    Scale 1.5
//    RenderStyle Add
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	KXT1 T 20
	KXT1 T 0 A_SetRenderStyle(1.0, Style_Add)
	KXT1 T 1 A_FadeOut(0.06)
	Wait
    }
}

ACTOR KoraxTeleportOutPiece21
{
    Scale 1.5
//    RenderStyle Add
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	KXT1 U 21
	KXT1 U 0 A_SetRenderStyle(1.0, Style_Add)
	KXT1 U 1 A_FadeOut(0.06)
	Wait
    }
}

ACTOR KoraxTeleportOutPiece22
{
    Scale 1.5
//    RenderStyle Add
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	KXT1 V 22
	KXT1 V 0 A_SetRenderStyle(1.0, Style_Add)
	KXT1 V 1 A_FadeOut(0.06)
	Wait
    }
}

ACTOR KoraxTeleportOutPiece23
{
    Scale 1.5
//    RenderStyle Add
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	KXT1 W 23
	KXT1 W 0 A_SetRenderStyle(1.0, Style_Add)
	KXT1 W 1 A_FadeOut(0.06)
	Wait
    }
}

ACTOR KoraxTeleportOutPiece24
{
    Scale 1.5
//    RenderStyle Add
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	KXT1 X 24
	KXT1 X 0 A_SetRenderStyle(1.0, Style_Add)
	KXT1 X 1 A_FadeOut(0.06)
	Wait
    }
}

ACTOR KoraxTeleportOutPiece25
{
    Scale 1.5
//    RenderStyle Add
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	KXT1 Y 25
	KXT1 Y 0 A_SetRenderStyle(1.0, Style_Add)
	KXT1 Y 1 A_FadeOut(0.06)
	Wait
    }
}

ACTOR KoraxTeleportOutPiece26
{
    Scale 1.5
//    RenderStyle Add
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	KXT1 Z 26
	KXT1 Z 0 A_SetRenderStyle(1.0, Style_Add)
	KXT1 Z 1 A_FadeOut(0.06)
	Wait
    }
}

ACTOR KoraxTeleportOutPiece27
{
    Scale 1.5
//    RenderStyle Add
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	KXT2 A 27
	KXT2 A 0 A_SetRenderStyle(1.0, Style_Add)
	KXT2 A 1 A_FadeOut(0.06)
	Wait
    }
}

ACTOR KoraxTeleportOutPiece28
{
    Scale 1.5
//    RenderStyle Add
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	KXT2 B 28
	KXT2 B 0 A_SetRenderStyle(1.0, Style_Add)
	KXT2 B 1 A_FadeOut(0.06)
	Wait
    }
}

ACTOR KoraxTeleportOutPiece29
{
    Scale 1.5
//    RenderStyle Add
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	KXT2 C 29
	KXT2 C 0 A_SetRenderStyle(1.0, Style_Add)
	KXT2 C 1 A_FadeOut(0.06)
	Wait
    }
}

ACTOR KoraxTeleportOutPiece30
{
    Scale 1.5
//    RenderStyle Add
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	KXT2 D 30
	KXT2 D 0 A_SetRenderStyle(1.0, Style_Add)
	KXT2 D 1 A_FadeOut(0.06)
	Wait
    }
}

ACTOR KoraxTeleportOutPiece31
{
    Scale 1.5
//    RenderStyle Add
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	KXT2 E 31
	KXT2 E 0 A_SetRenderStyle(1.0, Style_Add)
	KXT2 E 1 A_FadeOut(0.06)
	Wait
    }
}

ACTOR KoraxTeleportOutPiece32
{
    Scale 1.5
//    RenderStyle Add
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	KXT2 F 32
	KXT2 F 0 A_SetRenderStyle(1.0, Style_Add)
	KXT2 F 1 A_FadeOut(0.06)
	Wait
    }
}

ACTOR KoraxTeleportInPiece1
{
    Scale 1.5
    RenderStyle Add
    Alpha 0.0
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	TNT1 A 1
	KXT1 A 1 A_FadeTo(0.06)
	KXT1 A 1 A_FadeTo(0.12)
	KXT1 A 1 A_FadeTo(0.18)
	KXT1 A 1 A_FadeTo(0.24)
	KXT1 A 1 A_FadeTo(0.3)
	KXT1 A 1 A_FadeTo(0.36)
	KXT1 A 1 A_FadeTo(0.42)
	KXT1 A 1 A_FadeTo(0.48)
	KXT1 A 1 A_FadeTo(0.54)
	KXT1 A 1 A_FadeTo(0.6)
	KXT1 A 1 A_FadeTo(0.66)
	KXT1 A 1 A_FadeTo(0.72)
	KXT1 A 1 A_FadeTo(0.78)
	KXT1 A 1 A_FadeTo(0.84)
	KXT1 A 1 A_FadeTo(0.9)
	KXT1 A 0 A_SetRenderStyle(1.0, Style_Normal)
	KXT1 A 33
	Stop
    }
}

ACTOR KoraxTeleportInPiece2
{
    Scale 1.5
    RenderStyle Add
    Alpha 0.0
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	TNT1 A 2
	KXT1 B 1 A_FadeTo(0.06)
	KXT1 B 1 A_FadeTo(0.12)
	KXT1 B 1 A_FadeTo(0.18)
	KXT1 B 1 A_FadeTo(0.24)
	KXT1 B 1 A_FadeTo(0.3)
	KXT1 B 1 A_FadeTo(0.36)
	KXT1 B 1 A_FadeTo(0.42)
	KXT1 B 1 A_FadeTo(0.48)
	KXT1 B 1 A_FadeTo(0.54)
	KXT1 B 1 A_FadeTo(0.6)
	KXT1 B 1 A_FadeTo(0.66)
	KXT1 B 1 A_FadeTo(0.72)
	KXT1 B 1 A_FadeTo(0.78)
	KXT1 B 1 A_FadeTo(0.84)
	KXT1 B 1 A_FadeTo(0.9)
	KXT1 B 0 A_SetRenderStyle(1.0, Style_Normal)
	KXT1 B 32
	Stop
    }
}

ACTOR KoraxTeleportInPiece3
{
    Scale 1.5
    RenderStyle Add
    Alpha 0.0
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	TNT1 A 3
	KXT1 C 1 A_FadeTo(0.06)
	KXT1 C 1 A_FadeTo(0.12)
	KXT1 C 1 A_FadeTo(0.18)
	KXT1 C 1 A_FadeTo(0.24)
	KXT1 C 1 A_FadeTo(0.3)
	KXT1 C 1 A_FadeTo(0.36)
	KXT1 C 1 A_FadeTo(0.42)
	KXT1 C 1 A_FadeTo(0.48)
	KXT1 C 1 A_FadeTo(0.54)
	KXT1 C 1 A_FadeTo(0.6)
	KXT1 C 1 A_FadeTo(0.66)
	KXT1 C 1 A_FadeTo(0.72)
	KXT1 C 1 A_FadeTo(0.78)
	KXT1 C 1 A_FadeTo(0.84)
	KXT1 C 1 A_FadeTo(0.9)
	KXT1 C 0 A_SetRenderStyle(1.0, Style_Normal)
	KXT1 C 31
	Stop
    }
}

ACTOR KoraxTeleportInPiece4
{
    Scale 1.5
    RenderStyle Add
    Alpha 0.0
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	TNT1 A 4
	KXT1 D 1 A_FadeTo(0.06)
	KXT1 D 1 A_FadeTo(0.12)
	KXT1 D 1 A_FadeTo(0.18)
	KXT1 D 1 A_FadeTo(0.24)
	KXT1 D 1 A_FadeTo(0.3)
	KXT1 D 1 A_FadeTo(0.36)
	KXT1 D 1 A_FadeTo(0.42)
	KXT1 D 1 A_FadeTo(0.48)
	KXT1 D 1 A_FadeTo(0.54)
	KXT1 D 1 A_FadeTo(0.6)
	KXT1 D 1 A_FadeTo(0.66)
	KXT1 D 1 A_FadeTo(0.72)
	KXT1 D 1 A_FadeTo(0.78)
	KXT1 D 1 A_FadeTo(0.84)
	KXT1 D 1 A_FadeTo(0.9)
	KXT1 D 0 A_SetRenderStyle(1.0, Style_Normal)
	KXT1 D 30
	Stop
    }
}

ACTOR KoraxTeleportInPiece5
{
    Scale 1.5
    RenderStyle Add
    Alpha 0.0
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	TNT1 A 5
	KXT1 E 1 A_FadeTo(0.06)
	KXT1 E 1 A_FadeTo(0.12)
	KXT1 E 1 A_FadeTo(0.18)
	KXT1 E 1 A_FadeTo(0.24)
	KXT1 E 1 A_FadeTo(0.3)
	KXT1 E 1 A_FadeTo(0.36)
	KXT1 E 1 A_FadeTo(0.42)
	KXT1 E 1 A_FadeTo(0.48)
	KXT1 E 1 A_FadeTo(0.54)
	KXT1 E 1 A_FadeTo(0.6)
	KXT1 E 1 A_FadeTo(0.66)
	KXT1 E 1 A_FadeTo(0.72)
	KXT1 E 1 A_FadeTo(0.78)
	KXT1 E 1 A_FadeTo(0.84)
	KXT1 E 1 A_FadeTo(0.9)
	KXT1 E 0 A_SetRenderStyle(1.0, Style_Normal)
	KXT1 E 29
	Stop
    }
}

ACTOR KoraxTeleportInPiece6
{
    Scale 1.5
    RenderStyle Add
    Alpha 0.0
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	TNT1 A 6
	KXT1 F 1 A_FadeTo(0.06)
	KXT1 F 1 A_FadeTo(0.12)
	KXT1 F 1 A_FadeTo(0.18)
	KXT1 F 1 A_FadeTo(0.24)
	KXT1 F 1 A_FadeTo(0.3)
	KXT1 F 1 A_FadeTo(0.36)
	KXT1 F 1 A_FadeTo(0.42)
	KXT1 F 1 A_FadeTo(0.48)
	KXT1 F 1 A_FadeTo(0.54)
	KXT1 F 1 A_FadeTo(0.6)
	KXT1 F 1 A_FadeTo(0.66)
	KXT1 F 1 A_FadeTo(0.72)
	KXT1 F 1 A_FadeTo(0.78)
	KXT1 F 1 A_FadeTo(0.84)
	KXT1 F 1 A_FadeTo(0.9)
	KXT1 F 0 A_SetRenderStyle(1.0, Style_Normal)
	KXT1 F 28
	Stop
    }
}

ACTOR KoraxTeleportInPiece7
{
    Scale 1.5
    RenderStyle Add
    Alpha 0.0
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	TNT1 A 7
	KXT1 G 1 A_FadeTo(0.06)
	KXT1 G 1 A_FadeTo(0.12)
	KXT1 G 1 A_FadeTo(0.18)
	KXT1 G 1 A_FadeTo(0.24)
	KXT1 G 1 A_FadeTo(0.3)
	KXT1 G 1 A_FadeTo(0.36)
	KXT1 G 1 A_FadeTo(0.42)
	KXT1 G 1 A_FadeTo(0.48)
	KXT1 G 1 A_FadeTo(0.54)
	KXT1 G 1 A_FadeTo(0.6)
	KXT1 G 1 A_FadeTo(0.66)
	KXT1 G 1 A_FadeTo(0.72)
	KXT1 G 1 A_FadeTo(0.78)
	KXT1 G 1 A_FadeTo(0.84)
	KXT1 G 1 A_FadeTo(0.9)
	KXT1 G 0 A_SetRenderStyle(1.0, Style_Normal)
	KXT1 G 27
	Stop
    }
}

ACTOR KoraxTeleportInPiece8
{
    Scale 1.5
    RenderStyle Add
    Alpha 0.0
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	TNT1 A 8
	KXT1 H 1 A_FadeTo(0.06)
	KXT1 H 1 A_FadeTo(0.12)
	KXT1 H 1 A_FadeTo(0.18)
	KXT1 H 1 A_FadeTo(0.24)
	KXT1 H 1 A_FadeTo(0.3)
	KXT1 H 1 A_FadeTo(0.36)
	KXT1 H 1 A_FadeTo(0.42)
	KXT1 H 1 A_FadeTo(0.48)
	KXT1 H 1 A_FadeTo(0.54)
	KXT1 H 1 A_FadeTo(0.6)
	KXT1 H 1 A_FadeTo(0.66)
	KXT1 H 1 A_FadeTo(0.72)
	KXT1 H 1 A_FadeTo(0.78)
	KXT1 H 1 A_FadeTo(0.84)
	KXT1 H 1 A_FadeTo(0.9)
	KXT1 H 0 A_SetRenderStyle(1.0, Style_Normal)
	KXT1 H 26
	Stop
    }
}

ACTOR KoraxTeleportInPiece9
{
    Scale 1.5
    RenderStyle Add
    Alpha 0.0
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	TNT1 A 9
	KXT1 I 1 A_FadeTo(0.06)
	KXT1 I 1 A_FadeTo(0.12)
	KXT1 I 1 A_FadeTo(0.18)
	KXT1 I 1 A_FadeTo(0.24)
	KXT1 I 1 A_FadeTo(0.3)
	KXT1 I 1 A_FadeTo(0.36)
	KXT1 I 1 A_FadeTo(0.42)
	KXT1 I 1 A_FadeTo(0.48)
	KXT1 I 1 A_FadeTo(0.54)
	KXT1 I 1 A_FadeTo(0.6)
	KXT1 I 1 A_FadeTo(0.66)
	KXT1 I 1 A_FadeTo(0.72)
	KXT1 I 1 A_FadeTo(0.78)
	KXT1 I 1 A_FadeTo(0.84)
	KXT1 I 1 A_FadeTo(0.9)
	KXT1 I 0 A_SetRenderStyle(1.0, Style_Normal)
	KXT1 I 25
	Stop
    }
}

ACTOR KoraxTeleportInPiece10
{
    Scale 1.5
    RenderStyle Add
    Alpha 0.0
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	TNT1 A 10
	KXT1 J 1 A_FadeTo(0.06)
	KXT1 J 1 A_FadeTo(0.12)
	KXT1 J 1 A_FadeTo(0.18)
	KXT1 J 1 A_FadeTo(0.24)
	KXT1 J 1 A_FadeTo(0.3)
	KXT1 J 1 A_FadeTo(0.36)
	KXT1 J 1 A_FadeTo(0.42)
	KXT1 J 1 A_FadeTo(0.48)
	KXT1 J 1 A_FadeTo(0.54)
	KXT1 J 1 A_FadeTo(0.6)
	KXT1 J 1 A_FadeTo(0.66)
	KXT1 J 1 A_FadeTo(0.72)
	KXT1 J 1 A_FadeTo(0.78)
	KXT1 J 1 A_FadeTo(0.84)
	KXT1 J 1 A_FadeTo(0.9)
	KXT1 J 0 A_SetRenderStyle(1.0, Style_Normal)
	KXT1 J 24
	Stop
    }
}

ACTOR KoraxTeleportInPiece11
{
    Scale 1.5
    RenderStyle Add
    Alpha 0.0
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	TNT1 A 11
	KXT1 K 1 A_FadeTo(0.06)
	KXT1 K 1 A_FadeTo(0.12)
	KXT1 K 1 A_FadeTo(0.18)
	KXT1 K 1 A_FadeTo(0.24)
	KXT1 K 1 A_FadeTo(0.3)
	KXT1 K 1 A_FadeTo(0.36)
	KXT1 K 1 A_FadeTo(0.42)
	KXT1 K 1 A_FadeTo(0.48)
	KXT1 K 1 A_FadeTo(0.54)
	KXT1 K 1 A_FadeTo(0.6)
	KXT1 K 1 A_FadeTo(0.66)
	KXT1 K 1 A_FadeTo(0.72)
	KXT1 K 1 A_FadeTo(0.78)
	KXT1 K 1 A_FadeTo(0.84)
	KXT1 K 1 A_FadeTo(0.9)
	KXT1 K 0 A_SetRenderStyle(1.0, Style_Normal)
	KXT1 K 23
	Stop
    }
}

ACTOR KoraxTeleportInPiece12
{
    Scale 1.5
    RenderStyle Add
    Alpha 0.0
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	TNT1 A 12
	KXT1 L 1 A_FadeTo(0.06)
	KXT1 L 1 A_FadeTo(0.12)
	KXT1 L 1 A_FadeTo(0.18)
	KXT1 L 1 A_FadeTo(0.24)
	KXT1 L 1 A_FadeTo(0.3)
	KXT1 L 1 A_FadeTo(0.36)
	KXT1 L 1 A_FadeTo(0.42)
	KXT1 L 1 A_FadeTo(0.48)
	KXT1 L 1 A_FadeTo(0.54)
	KXT1 L 1 A_FadeTo(0.6)
	KXT1 L 1 A_FadeTo(0.66)
	KXT1 L 1 A_FadeTo(0.72)
	KXT1 L 1 A_FadeTo(0.78)
	KXT1 L 1 A_FadeTo(0.84)
	KXT1 L 1 A_FadeTo(0.9)
	KRX3 L 0 A_SetRenderStyle(1.0, Style_Normal)
	KXT1 L 22
	Stop
    }
}

ACTOR KoraxTeleportInPiece13
{
    Scale 1.5
    RenderStyle Add
    Alpha 0.0
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	TNT1 A 13
	KXT1 M 1 A_FadeTo(0.06)
	KXT1 M 1 A_FadeTo(0.12)
	KXT1 M 1 A_FadeTo(0.18)
	KXT1 M 1 A_FadeTo(0.24)
	KXT1 M 1 A_FadeTo(0.3)
	KXT1 M 1 A_FadeTo(0.36)
	KXT1 M 1 A_FadeTo(0.42)
	KXT1 M 1 A_FadeTo(0.48)
	KXT1 M 1 A_FadeTo(0.54)
	KXT1 M 1 A_FadeTo(0.6)
	KXT1 M 1 A_FadeTo(0.66)
	KXT1 M 1 A_FadeTo(0.72)
	KXT1 M 1 A_FadeTo(0.78)
	KXT1 M 1 A_FadeTo(0.84)
	KXT1 M 1 A_FadeTo(0.9)
	KXT1 M 0 A_SetRenderStyle(1.0, Style_Normal)
	KXT1 M 21
	Stop
    }
}

ACTOR KoraxTeleportInPiece14
{
    Scale 1.5
    RenderStyle Add
    Alpha 0.0
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	TNT1 A 14
	KXT1 N 1 A_FadeTo(0.06)
	KXT1 N 1 A_FadeTo(0.12)
	KXT1 N 1 A_FadeTo(0.18)
	KXT1 N 1 A_FadeTo(0.24)
	KXT1 N 1 A_FadeTo(0.3)
	KXT1 N 1 A_FadeTo(0.36)
	KXT1 N 1 A_FadeTo(0.42)
	KXT1 N 1 A_FadeTo(0.48)
	KXT1 N 1 A_FadeTo(0.54)
	KXT1 N 1 A_FadeTo(0.6)
	KXT1 N 1 A_FadeTo(0.66)
	KXT1 N 1 A_FadeTo(0.72)
	KXT1 N 1 A_FadeTo(0.78)
	KXT1 N 1 A_FadeTo(0.84)
	KXT1 N 1 A_FadeTo(0.9)
	KXT1 N 0 A_SetRenderStyle(1.0, Style_Normal)
	KXT1 N 20
	Stop
    }
}

ACTOR KoraxTeleportInPiece15
{
    Scale 1.5
    RenderStyle Add
    Alpha 0.0
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	TNT1 A 15
	KXT1 O 1 A_FadeTo(0.06)
	KXT1 O 1 A_FadeTo(0.12)
	KXT1 O 1 A_FadeTo(0.18)
	KXT1 O 1 A_FadeTo(0.24)
	KXT1 O 1 A_FadeTo(0.3)
	KXT1 O 1 A_FadeTo(0.36)
	KXT1 O 1 A_FadeTo(0.42)
	KXT1 O 1 A_FadeTo(0.48)
	KXT1 O 1 A_FadeTo(0.54)
	KXT1 O 1 A_FadeTo(0.6)
	KXT1 O 1 A_FadeTo(0.66)
	KXT1 O 1 A_FadeTo(0.72)
	KXT1 O 1 A_FadeTo(0.78)
	KXT1 O 1 A_FadeTo(0.84)
	KXT1 O 1 A_FadeTo(0.9)
	KXT1 O 0 A_SetRenderStyle(1.0, Style_Normal)
	KXT1 O 19
	Stop
    }
}

ACTOR KoraxTeleportInPiece16
{
    Scale 1.5
    RenderStyle Add
    Alpha 0.0
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	TNT1 A 16
	KXT1 P 1 A_FadeTo(0.06)
	KXT1 P 1 A_FadeTo(0.12)
	KXT1 P 1 A_FadeTo(0.18)
	KXT1 P 1 A_FadeTo(0.24)
	KXT1 P 1 A_FadeTo(0.3)
	KXT1 P 1 A_FadeTo(0.36)
	KXT1 P 1 A_FadeTo(0.42)
	KXT1 P 1 A_FadeTo(0.48)
	KXT1 P 1 A_FadeTo(0.54)
	KXT1 P 1 A_FadeTo(0.6)
	KXT1 P 1 A_FadeTo(0.66)
	KXT1 P 1 A_FadeTo(0.72)
	KXT1 P 1 A_FadeTo(0.78)
	KXT1 P 1 A_FadeTo(0.84)
	KXT1 P 1 A_FadeTo(0.9)
	KXT1 P 0 A_SetRenderStyle(1.0, Style_Normal)
	KXT1 P 18
	Stop
    }
}

ACTOR KoraxTeleportInPiece17
{
    Scale 1.5
    RenderStyle Add
    Alpha 0.0
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	TNT1 A 17
	KXT1 Q 1 A_FadeTo(0.06)
	KXT1 Q 1 A_FadeTo(0.12)
	KXT1 Q 1 A_FadeTo(0.18)
	KXT1 Q 1 A_FadeTo(0.24)
	KXT1 Q 1 A_FadeTo(0.3)
	KXT1 Q 1 A_FadeTo(0.36)
	KXT1 Q 1 A_FadeTo(0.42)
	KXT1 Q 1 A_FadeTo(0.48)
	KXT1 Q 1 A_FadeTo(0.54)
	KXT1 Q 1 A_FadeTo(0.6)
	KXT1 Q 1 A_FadeTo(0.66)
	KXT1 Q 1 A_FadeTo(0.72)
	KXT1 Q 1 A_FadeTo(0.78)
	KXT1 Q 1 A_FadeTo(0.84)
	KXT1 Q 1 A_FadeTo(0.9)
	KXT1 Q 0 A_SetRenderStyle(1.0, Style_Normal)
	KXT1 Q 17
	Stop
    }
}

ACTOR KoraxTeleportInPiece18
{
    Scale 1.5
    RenderStyle Add
    Alpha 0.0
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	TNT1 A 18
	KXT1 R 1 A_FadeTo(0.06)
	KXT1 R 1 A_FadeTo(0.12)
	KXT1 R 1 A_FadeTo(0.18)
	KXT1 R 1 A_FadeTo(0.24)
	KXT1 R 1 A_FadeTo(0.3)
	KXT1 R 1 A_FadeTo(0.36)
	KXT1 R 1 A_FadeTo(0.42)
	KXT1 R 1 A_FadeTo(0.48)
	KXT1 R 1 A_FadeTo(0.54)
	KXT1 R 1 A_FadeTo(0.6)
	KXT1 R 1 A_FadeTo(0.66)
	KXT1 R 1 A_FadeTo(0.72)
	KXT1 R 1 A_FadeTo(0.78)
	KXT1 R 1 A_FadeTo(0.84)
	KXT1 R 1 A_FadeTo(0.9)
	KXT1 R 0 A_SetRenderStyle(1.0, Style_Normal)
	KXT1 R 16
	Stop
    }
}

ACTOR KoraxTeleportInPiece19
{
    Scale 1.5
    RenderStyle Add
    Alpha 0.0
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	TNT1 A 19
	KXT1 S 1 A_FadeTo(0.06)
	KXT1 S 1 A_FadeTo(0.12)
	KXT1 S 1 A_FadeTo(0.18)
	KXT1 S 1 A_FadeTo(0.24)
	KXT1 S 1 A_FadeTo(0.3)
	KXT1 S 1 A_FadeTo(0.36)
	KXT1 S 1 A_FadeTo(0.42)
	KXT1 S 1 A_FadeTo(0.48)
	KXT1 S 1 A_FadeTo(0.54)
	KXT1 S 1 A_FadeTo(0.6)
	KXT1 S 1 A_FadeTo(0.66)
	KXT1 S 1 A_FadeTo(0.72)
	KXT1 S 1 A_FadeTo(0.78)
	KXT1 S 1 A_FadeTo(0.84)
	KXT1 S 1 A_FadeTo(0.9)
	KXT1 S 0 A_SetRenderStyle(1.0, Style_Normal)
	KXT1 S 15
	Stop
    }
}

ACTOR KoraxTeleportInPiece20
{
    Scale 1.5
    RenderStyle Add
    Alpha 0.0
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	TNT1 A 20
	KXT1 T 1 A_FadeTo(0.06)
	KXT1 T 1 A_FadeTo(0.12)
	KXT1 T 1 A_FadeTo(0.18)
	KXT1 T 1 A_FadeTo(0.24)
	KXT1 T 1 A_FadeTo(0.3)
	KXT1 T 1 A_FadeTo(0.36)
	KXT1 T 1 A_FadeTo(0.42)
	KXT1 T 1 A_FadeTo(0.48)
	KXT1 T 1 A_FadeTo(0.54)
	KXT1 T 1 A_FadeTo(0.6)
	KXT1 T 1 A_FadeTo(0.66)
	KXT1 T 1 A_FadeTo(0.72)
	KXT1 T 1 A_FadeTo(0.78)
	KXT1 T 1 A_FadeTo(0.84)
	KXT1 T 1 A_FadeTo(0.9)
	KXT1 T 0 A_SetRenderStyle(1.0, Style_Normal)
	KXT1 T 14
	Stop
    }
}

ACTOR KoraxTeleportInPiece21
{
    Scale 1.5
    RenderStyle Add
    Alpha 0.0
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	TNT1 A 21
	KXT1 U 1 A_FadeTo(0.06)
	KXT1 U 1 A_FadeTo(0.12)
	KXT1 U 1 A_FadeTo(0.18)
	KXT1 U 1 A_FadeTo(0.24)
	KXT1 U 1 A_FadeTo(0.3)
	KXT1 U 1 A_FadeTo(0.36)
	KXT1 U 1 A_FadeTo(0.42)
	KXT1 U 1 A_FadeTo(0.48)
	KXT1 U 1 A_FadeTo(0.54)
	KXT1 U 1 A_FadeTo(0.6)
	KXT1 U 1 A_FadeTo(0.66)
	KXT1 U 1 A_FadeTo(0.72)
	KXT1 U 1 A_FadeTo(0.78)
	KXT1 U 1 A_FadeTo(0.84)
	KXT1 U 1 A_FadeTo(0.9)
	KXT1 U 0 A_SetRenderStyle(1.0, Style_Normal)
	KXT1 U 13
	Stop
    }
}

ACTOR KoraxTeleportInPiece22
{
    Scale 1.5
    RenderStyle Add
    Alpha 0.0
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	TNT1 A 22
	KXT1 V 1 A_FadeTo(0.06)
	KXT1 V 1 A_FadeTo(0.12)
	KXT1 V 1 A_FadeTo(0.18)
	KXT1 V 1 A_FadeTo(0.24)
	KXT1 V 1 A_FadeTo(0.3)
	KXT1 V 1 A_FadeTo(0.36)
	KXT1 V 1 A_FadeTo(0.42)
	KXT1 V 1 A_FadeTo(0.48)
	KXT1 V 1 A_FadeTo(0.54)
	KXT1 V 1 A_FadeTo(0.6)
	KXT1 V 1 A_FadeTo(0.66)
	KXT1 V 1 A_FadeTo(0.72)
	KXT1 V 1 A_FadeTo(0.78)
	KXT1 V 1 A_FadeTo(0.84)
	KXT1 V 1 A_FadeTo(0.9)
	KXT1 V 0 A_SetRenderStyle(1.0, Style_Normal)
	KXT1 V 12
	Stop
    }
}

ACTOR KoraxTeleportInPiece23
{
    Scale 1.5
    RenderStyle Add
    Alpha 0.0
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	TNT1 A 23
	KXT1 W 1 A_FadeTo(0.06)
	KXT1 W 1 A_FadeTo(0.12)
	KXT1 W 1 A_FadeTo(0.18)
	KXT1 W 1 A_FadeTo(0.24)
	KXT1 W 1 A_FadeTo(0.3)
	KXT1 W 1 A_FadeTo(0.36)
	KXT1 W 1 A_FadeTo(0.42)
	KXT1 W 1 A_FadeTo(0.48)
	KXT1 W 1 A_FadeTo(0.54)
	KXT1 W 1 A_FadeTo(0.6)
	KXT1 W 1 A_FadeTo(0.66)
	KXT1 W 1 A_FadeTo(0.72)
	KXT1 W 1 A_FadeTo(0.78)
	KXT1 W 1 A_FadeTo(0.84)
	KXT1 W 1 A_FadeTo(0.9)
	KXT1 W 0 A_SetRenderStyle(1.0, Style_Normal)
	KXT1 W 11
	Stop
    }
}

ACTOR KoraxTeleportInPiece24
{
    Scale 1.5
    RenderStyle Add
    Alpha 0.0
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	TNT1 A 24
	KXT1 X 1 A_FadeTo(0.06)
	KXT1 X 1 A_FadeTo(0.12)
	KXT1 X 1 A_FadeTo(0.18)
	KXT1 X 1 A_FadeTo(0.24)
	KXT1 X 1 A_FadeTo(0.3)
	KXT1 X 1 A_FadeTo(0.36)
	KXT1 X 1 A_FadeTo(0.42)
	KXT1 X 1 A_FadeTo(0.48)
	KXT1 X 1 A_FadeTo(0.54)
	KXT1 X 1 A_FadeTo(0.6)
	KXT1 X 1 A_FadeTo(0.66)
	KXT1 X 1 A_FadeTo(0.72)
	KXT1 X 1 A_FadeTo(0.78)
	KXT1 X 1 A_FadeTo(0.84)
	KXT1 X 1 A_FadeTo(0.9)
	KXT1 X 0 A_SetRenderStyle(1.0, Style_Normal)
	KXT1 X 10
	Stop
    }
}

ACTOR KoraxTeleportInPiece25
{
    Scale 1.5
    RenderStyle Add
    Alpha 0.0
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	TNT1 A 25
	KXT1 Y 1 A_FadeTo(0.06)
	KXT1 Y 1 A_FadeTo(0.12)
	KXT1 Y 1 A_FadeTo(0.18)
	KXT1 Y 1 A_FadeTo(0.24)
	KXT1 Y 1 A_FadeTo(0.3)
	KXT1 Y 1 A_FadeTo(0.36)
	KXT1 Y 1 A_FadeTo(0.42)
	KXT1 Y 1 A_FadeTo(0.48)
	KXT1 Y 1 A_FadeTo(0.54)
	KXT1 Y 1 A_FadeTo(0.6)
	KXT1 Y 1 A_FadeTo(0.66)
	KXT1 Y 1 A_FadeTo(0.72)
	KXT1 Y 1 A_FadeTo(0.78)
	KXT1 Y 1 A_FadeTo(0.84)
	KXT1 Y 1 A_FadeTo(0.9)
	KXT1 Y 0 A_SetRenderStyle(1.0, Style_Normal)
	KXT1 Y 9
	Stop
    }
}

ACTOR KoraxTeleportInPiece26
{
    Scale 1.5
    RenderStyle Add
    Alpha 0.0
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	TNT1 A 26
	KXT1 Z 1 A_FadeTo(0.06)
	KXT1 Z 1 A_FadeTo(0.12)
	KXT1 Z 1 A_FadeTo(0.18)
	KXT1 Z 1 A_FadeTo(0.24)
	KXT1 Z 1 A_FadeTo(0.3)
	KXT1 Z 1 A_FadeTo(0.36)
	KXT1 Z 1 A_FadeTo(0.42)
	KXT1 Z 1 A_FadeTo(0.48)
	KXT1 Z 1 A_FadeTo(0.54)
	KXT1 Z 1 A_FadeTo(0.6)
	KXT1 Z 1 A_FadeTo(0.66)
	KXT1 Z 1 A_FadeTo(0.72)
	KXT1 Z 1 A_FadeTo(0.78)
	KXT1 Z 1 A_FadeTo(0.84)
	KXT1 Z 1 A_FadeTo(0.9)
	KXT1 Z 0 A_SetRenderStyle(1.0, Style_Normal)
	KXT1 Z 8
	Stop
    }
}

ACTOR KoraxTeleportInPiece27
{
    Scale 1.5
    RenderStyle Add
    Alpha 0.0
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	TNT1 A 27
	KXT2 A 1 A_FadeTo(0.06)
	KXT2 A 1 A_FadeTo(0.12)
	KXT2 A 1 A_FadeTo(0.18)
	KXT2 A 1 A_FadeTo(0.24)
	KXT2 A 1 A_FadeTo(0.3)
	KXT2 A 1 A_FadeTo(0.36)
	KXT2 A 1 A_FadeTo(0.42)
	KXT2 A 1 A_FadeTo(0.48)
	KXT2 A 1 A_FadeTo(0.54)
	KXT2 A 1 A_FadeTo(0.6)
	KXT2 A 1 A_FadeTo(0.66)
	KXT2 A 1 A_FadeTo(0.72)
	KXT2 A 1 A_FadeTo(0.78)
	KXT2 A 1 A_FadeTo(0.84)
	KXT2 A 1 A_FadeTo(0.9)
	KXT2 A 0 A_SetRenderStyle(1.0, Style_Normal)
	KXT2 A 7
	Stop
    }
}

ACTOR KoraxTeleportInPiece28
{
    Scale 1.5
    RenderStyle Add
    Alpha 0.0
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	TNT1 A 28
	KXT2 B 1 A_FadeTo(0.06)
	KXT2 B 1 A_FadeTo(0.12)
	KXT2 B 1 A_FadeTo(0.18)
	KXT2 B 1 A_FadeTo(0.24)
	KXT2 B 1 A_FadeTo(0.3)
	KXT2 B 1 A_FadeTo(0.36)
	KXT2 B 1 A_FadeTo(0.42)
	KXT2 B 1 A_FadeTo(0.48)
	KXT2 B 1 A_FadeTo(0.54)
	KXT2 B 1 A_FadeTo(0.6)
	KXT2 B 1 A_FadeTo(0.66)
	KXT2 B 1 A_FadeTo(0.72)
	KXT2 B 1 A_FadeTo(0.78)
	KXT2 B 1 A_FadeTo(0.84)
	KXT2 B 1 A_FadeTo(0.9)
	KXT2 B 0 A_SetRenderStyle(1.0, Style_Normal)
	KXT2 B 6
	Stop
    }
}

ACTOR KoraxTeleportInPiece29
{
    Scale 1.5
    RenderStyle Add
    Alpha 0.0
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	TNT1 A 29
	KXT2 C 1 A_FadeTo(0.06)
	KXT2 C 1 A_FadeTo(0.12)
	KXT2 C 1 A_FadeTo(0.18)
	KXT2 C 1 A_FadeTo(0.24)
	KXT2 C 1 A_FadeTo(0.3)
	KXT2 C 1 A_FadeTo(0.36)
	KXT2 C 1 A_FadeTo(0.42)
	KXT2 C 1 A_FadeTo(0.48)
	KXT2 C 1 A_FadeTo(0.54)
	KXT2 C 1 A_FadeTo(0.6)
	KXT2 C 1 A_FadeTo(0.66)
	KXT2 C 1 A_FadeTo(0.72)
	KXT2 C 1 A_FadeTo(0.78)
	KXT2 C 1 A_FadeTo(0.84)
	KXT2 C 1 A_FadeTo(0.9)
	KXT2 C 0 A_SetRenderStyle(1.0, Style_Normal)
	KXT2 C 5
	Stop
    }
}

ACTOR KoraxTeleportInPiece30
{
    Scale 1.5
    RenderStyle Add
    Alpha 0.0
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	TNT1 A 30
	KXT2 D 1 A_FadeTo(0.06)
	KXT2 D 1 A_FadeTo(0.12)
	KXT2 D 1 A_FadeTo(0.18)
	KXT2 D 1 A_FadeTo(0.24)
	KXT2 D 1 A_FadeTo(0.3)
	KXT2 D 1 A_FadeTo(0.36)
	KXT2 D 1 A_FadeTo(0.42)
	KXT2 D 1 A_FadeTo(0.48)
	KXT2 D 1 A_FadeTo(0.54)
	KXT2 D 1 A_FadeTo(0.6)
	KXT2 D 1 A_FadeTo(0.66)
	KXT2 D 1 A_FadeTo(0.72)
	KXT2 D 1 A_FadeTo(0.78)
	KXT2 D 1 A_FadeTo(0.84)
	KXT2 D 1 A_FadeTo(0.9)
	KXT2 D 0 A_SetRenderStyle(1.0, Style_Normal)
	KXT2 D 4
	Stop
    }
}

ACTOR KoraxTeleportInPiece31
{
    Scale 1.5
    RenderStyle Add
    Alpha 0.0
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	TNT1 A 31
	KXT2 E 1 A_FadeTo(0.06)
	KXT2 E 1 A_FadeTo(0.12)
	KXT2 E 1 A_FadeTo(0.18)
	KXT2 E 1 A_FadeTo(0.24)
	KXT2 E 1 A_FadeTo(0.3)
	KXT2 E 1 A_FadeTo(0.36)
	KXT2 E 1 A_FadeTo(0.42)
	KXT2 E 1 A_FadeTo(0.48)
	KXT2 E 1 A_FadeTo(0.54)
	KXT2 E 1 A_FadeTo(0.6)
	KXT2 E 1 A_FadeTo(0.66)
	KXT2 E 1 A_FadeTo(0.72)
	KXT2 E 1 A_FadeTo(0.78)
	KXT2 E 1 A_FadeTo(0.84)
	KXT2 E 1 A_FadeTo(0.9)
	KXT2 E 0 A_SetRenderStyle(1.0, Style_Normal)
	KXT2 E 3
	Stop
    }
}

ACTOR KoraxTeleportInPiece32
{
    Scale 1.5
    RenderStyle Add
    Alpha 0.0
    +NOINTERACTION
    +FLOORCLIP
    States
    {
    Spawn:
	TNT1 A 32
	KXT2 F 1 A_FadeTo(0.06)
	KXT2 F 1 A_FadeTo(0.12)
	KXT2 F 1 A_FadeTo(0.18)
	KXT2 F 1 A_FadeTo(0.24)
	KXT2 F 1 A_FadeTo(0.3)
	KXT2 F 1 A_FadeTo(0.36)
	KXT2 F 1 A_FadeTo(0.42)
	KXT2 F 1 A_FadeTo(0.48)
	KXT2 F 1 A_FadeTo(0.54)
	KXT2 F 1 A_FadeTo(0.6)
	KXT2 F 1 A_FadeTo(0.66)
	KXT2 F 1 A_FadeTo(0.72)
	KXT2 F 1 A_FadeTo(0.78)
	KXT2 F 1 A_FadeTo(0.84)
	KXT2 F 1 A_FadeTo(0.9)
	KXT2 F 0 A_SetRenderStyle(1.0, Style_Normal)
	KXT2 F 2
	Stop
    }
}

//---------------------------------------------
// Korax projectiles
//---------------------------------------------

ACTOR KoraxRedAxe
{
    PROJECTILE
    -ACTIVATEPCROSS
    +FORCERADIUSDMG
    Radius 10
    Height 10
    Speed 28
    Scale 0.95
    +SEEKERMISSILE
    Damage (random(120,160))
    Translation "217:217=173:173","218:219=175:176","146:163=164:185"
    DeathSound "weapons/thrownaxe/hit"
    DamageType "Axe"
    States
    {
    Spawn:
	THAX A 0 Bright A_SpawnItemEx("RedAxeTrail1",0,0,0,0,0,0,0,32,0)
	THAX A 1 Bright
	THAX A 0 Bright A_SpawnItemEx("RedAxeTrail1",0,0,0,0,0,0,0,32,0)
	THAX A 1 Bright A_SeekerMissile(5,5,2)
	THAX B 0 Bright A_SpawnItemEx("RedAxeTrail2",0,0,0,0,0,0,0,32,0)
	THAX B 1 Bright
	THAX B 0 Bright A_SpawnItemEx("RedAxeTrail2",0,0,0,0,0,0,0,32,0)
	THAX B 1 Bright A_SeekerMissile(5,5,2)
	THAX C 0 Bright A_SpawnItemEx("RedAxeTrail3",0,0,0,0,0,0,0,32,0)
	THAX C 1 Bright
	THAX C 0 Bright A_SpawnItemEx("RedAxeTrail3",0,0,0,0,0,0,0,32,0)
	THAX C 1 Bright A_SeekerMissile(5,5,2)
	THAX D 0 Bright A_PlaySound("FighterHammerContinuous")
	THAX D 0 Bright A_SpawnItemEx("RedAxeTrail4",0,0,0,0,0,0,0,32,0)
	THAX D 1 Bright
	THAX D 0 Bright A_SpawnItemEx("RedAxeTrail4",0,0,0,0,0,0,0,32,0)
	THAX D 1 Bright A_SeekerMissile(5,5,2)
	THAX E 0 Bright A_SpawnItemEx("RedAxeTrail5",0,0,0,0,0,0,0,32,0)
	THAX E 1 Bright
	THAX E 0 Bright A_SpawnItemEx("RedAxeTrail5",0,0,0,0,0,0,0,32,0)
	THAX E 1 Bright A_SeekerMissile(5,5,2)
	THAX F 0 Bright A_SpawnItemEx("RedAxeTrail6",0,0,0,0,0,0,0,32,0)
	THAX F 1 Bright
	THAX F 0 Bright A_SpawnItemEx("RedAxeTrail6",0,0,0,0,0,0,0,32,0)
	THAX F 1 Bright A_SeekerMissile(5,5,2)
	THAX G 0 Bright A_SpawnItemEx("RedAxeTrail7",0,0,0,0,0,0,0,32,0)
	THAX G 1 Bright
	THAX G 0 Bright A_SpawnItemEx("RedAxeTrail7",0,0,0,0,0,0,0,32,0)
	THAX G 1 Bright A_SeekerMissile(5,5,2)
	THAX H 0 Bright A_PlaySound("FighterHammerContinuous")
	THAX H 0 Bright A_SpawnItemEx("RedAxeTrail8",0,0,0,0,0,0,0,32,0)
	THAX H 1 Bright
	THAX H 0 Bright A_SpawnItemEx("RedAxeTrail8",0,0,0,0,0,0,0,32,0)
	THAX H 1 Bright A_SeekerMissile(5,5,2)
	Loop
    Death:
	TNT1 A 0 A_SpawnItemEx("ThrownRedAxePuff",0,0,0,0,0,0,0,32,0)
	TNT1 A 0 A_Scream
	TNT1 A 0 A_Explode(100,96,0)
	Stop
    }
}


ACTOR KoraxFireStormBall : FastProjectile
{
    Radius 5
    Height 5
    Speed 60
    Damage 4
    RenderStyle Add
    DamageType Fire
    MissileHeight 8
    MissileType "FirestormBallTrail"
    Scale 0.6
    Alpha 0.35
    PROJECTILE
    -ACTIVATEPCROSS
    Seesound "weapons/firmfi"
    DeathSound "weapons/firex4"
    States
    {
    Spawn:
	TNT1 A 0
	FX04 A 1 Bright
	Loop
    Death:
	TNT1 A 0 A_SpawnItemEx("FirestormExplode",0,0,0,0,0,0,0,32,0)
	Stop
    }
}

ACTOR KoraxFireStormBallFast : KoraxFireStormBall
{
    Speed 90
}

ACTOR KoraxMindblowerBall : FastProjectile
{
    PROJECTILE
    -ACTIVATEPCROSS
    +RANDOMIZE
    +NOEXTREMEDEATH
    Radius 6
    Height 8
    Speed 40
    Damage 4
    DeathSound "weapons/mindblower/explode1"
    RenderStyle Add
    Scale 1.15
    Alpha 0.75
    States
    {
    Spawn:
	PYBU AAABBB 1 Bright A_SpawnItemEx("MindblowerBallTrail",0,frandom(3,-3),frandom(3,-3),0,0,0.4,0,0)
	Loop
    Death:
	TNT1 AAAAAAA 0 A_SpawnItemEx("MindblowerBallParticle",0,0,0,frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,359),0)
	PYBU C 0 Bright A_Explode(32,64,0)
	PYBU CDE 5 Bright
	Stop
    }
}

ACTOR KoraxMindblowerBallFast : KoraxMindblowerBall
{
    Speed 60
}

ACTOR SkullbombSpawner
{
    Radius 28
    Height 3
    Speed 30
    XScale 0.3
    YScale 0.5
    PROJECTILE
    -ACTIVATEPCROSS
    -NOGRAVITY
    +CANBOUNCEWATER
    +NODAMAGETHRUST
    +ROCKETTRAIL
    BounceType Hexen
    BounceCount 3
    BounceFactor 0.35
    Gravity 0.75
    States
    {
    Spawn:
	BNSH A 0
	BNSH A 0 A_Jump(256,1,2,3,4,5,6)
	BNSH A 0 Bright A_SpawnItemEx("KoraxBlood1",0,0,0,0,0,0,0,32,0)
	Goto Spawn+8
	BNSH A 0 Bright A_SpawnItemEx("KoraxBlood2",0,0,0,0,0,0,0,32,0)
	Goto Spawn+8
	BNSH A 0 Bright A_SpawnItemEx("KoraxBlood3",0,0,0,0,0,0,0,32,0)
	Goto Spawn+8
	BNSH A 0 Bright A_SpawnItemEx("KoraxBlood4",0,0,0,0,0,0,0,32,0)
	Goto Spawn+8
	BNSH A 0 Bright A_SpawnItemEx("KoraxBlood5",0,0,0,0,0,0,0,32,0)
	Goto Spawn+8
	BNSH A 0 Bright A_SpawnItemEx("KoraxBlood6",0,0,0,0,0,0,0,32,0)
	BNSH A 1
	BNSH AAA 0 A_SpawnItemEx("SkullbombSpawnerTrail",frandom(0,-20),0,0,frandom(0.5,-0.5),frandom(0.5,-0.5),frandom(0.5,-0.5),frandom(0,360),0)
	BNSH A 1
	Goto Spawn+9
    Death:
	BNSH AAAAAAAAA 0 A_SpawnItemEx("BoneShardParticle",0,0,0,frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	BNSH A 35
	BNSH A 0 A_PlaySound("skullbomb/start")
	BNSH A 0 A_SpawnItemEx("SkullbombRiser",0,0,0,0,0,0,0,0,0)
	Stop
    }
}

ACTOR SkullbombSpawnerTrail
{
    +NOINTERACTION
    RenderStyle Add
    Alpha 0.5
    Scale 0.045
    States
    {
    Spawn:
	BNPT A 4 Bright A_FadeOut(0.09)
	Loop
    }
}

ACTOR SkullbombRiseEffect
{
    RenderStyle Add
    +NOINTERACTION
    Alpha 0.7
    Scale 0.115
    Translation "0:255=%[0.0,0.0,0.0]:[0.8,0.0,0.0]"
    States
    {
    Spawn:
	BNPT A 0 Bright ThrustThingZ(0,frandom(8,10),1,1)
	BNPT A 4 Bright A_FadeOut(0.065)
	Loop
    }
}

ACTOR SkullbombRiser
{
    Radius 18
    Height 3
    States
    {
    Spawn:
	BSRI AAA 0 A_SpawnItemEx("SkullbombRiseEffect",0,0,0,frandom(3,8),frandom(3,8),frandom(3,8),frandom(0,360),0)
	BSRI A 1
	BSRI AAA 0 A_SpawnItemEx("SkullbombRiseEffect",0,0,0,frandom(3,8),frandom(3,8),frandom(3,8),frandom(0,360),0)
	BSRI A 1
	BSRI AAA 0 A_SpawnItemEx("SkullbombRiseEffect",0,0,0,frandom(3,8),frandom(3,8),frandom(3,8),frandom(0,360),0)
	BSRI A 1
	BSRI BBB 0 A_SpawnItemEx("SkullbombRiseEffect",0,0,0,frandom(3,8),frandom(3,8),frandom(3,8),frandom(0,360),0)
	BSRI B 1
	BSRI BBB 0 A_SpawnItemEx("SkullbombRiseEffect",0,0,0,frandom(3,8),frandom(3,8),frandom(3,8),frandom(0,360),0)
	BSRI B 1
	BSRI BBB 0 A_SpawnItemEx("SkullbombRiseEffect",0,0,0,frandom(3,8),frandom(3,8),frandom(3,8),frandom(0,360),0)
	BSRI B 1
	BSRI CCC 0 A_SpawnItemEx("SkullbombRiseEffect",0,0,0,frandom(3,8),frandom(3,8),frandom(3,8),frandom(0,360),0)
	BSRI C 1
	BSRI CCC 0 A_SpawnItemEx("SkullbombRiseEffect",0,0,0,frandom(3,8),frandom(3,8),frandom(3,8),frandom(0,360),0)
	BSRI C 1
	BSRI CCC 0 A_SpawnItemEx("SkullbombRiseEffect",0,0,0,frandom(3,8),frandom(3,8),frandom(3,8),frandom(0,360),0)
	BSRI C 1
	BSRI DDD 0 A_SpawnItemEx("SkullbombRiseEffect",0,0,0,frandom(3,8),frandom(3,8),frandom(3,8),frandom(0,360),0)
	BSRI D 1
	BSRI DDD 0 A_SpawnItemEx("SkullbombRiseEffect",0,0,0,frandom(3,8),frandom(3,8),frandom(3,8),frandom(0,360),0)
	BSRI D 1
	BSRI DDD 0 A_SpawnItemEx("SkullbombRiseEffect",0,0,0,frandom(3,8),frandom(3,8),frandom(3,8),frandom(0,360),0)
	BSRI D 1
	BSRI EEE 0 A_SpawnItemEx("SkullbombRiseEffect",0,0,0,frandom(3,8),frandom(3,8),frandom(3,8),frandom(0,360),0)
	BSRI E 1
	BSRI EEE 0 A_SpawnItemEx("SkullbombRiseEffect",0,0,0,frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	BSRI E 1
	BSRI EEE 0 A_SpawnItemEx("SkullbombRiseEffect",0,0,0,frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	BSRI E 1
	BSRI FFF 0 A_SpawnItemEx("SkullbombRiseEffect",0,0,0,frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	BSRI F 1
	BSRI FFF 0 A_SpawnItemEx("SkullbombRiseEffect",0,0,0,frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	BSRI A 1
	BSRI FFF 0 A_SpawnItemEx("SkullbombRiseEffect",0,0,0,frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	BSRI F 1
	BSRI GGG 0 A_SpawnItemEx("SkullbombRiseEffect",0,0,0,frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	BSRI G 1
	BSRI GGG 0 A_SpawnItemEx("SkullbombRiseEffect",0,0,0,frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	BSRI G 1
	BSRI GGG 0 A_SpawnItemEx("SkullbombRiseEffect",0,0,0,frandom(1,-1),frandom(1,-1),frandom(1,-1),frandom(0,360),0)
	BSRI G 1
	BSRI G 0 A_SpawnItemEx("Skullbomb",0,0,0,0,0,0,0,0,0)
	Stop
    }
}

ACTOR SkullBomb 10208
{
    Tag "Skull"
    Health 70
    Radius 12
    Height 30
    Mass 10000
    SpawnID 136
    Speed 8
    PainChance 0
    Damage 2
    MeleeDamage 2
    MeleeRange 32
    MONSTER
    +FLOORCLIP
    +MISSILEEVENMORE
    +NOBLOCKMONST
    +NOINFIGHTSPECIES
    +NOFEAR
    +THRUSPECIES
    +DONTFALL
    -COUNTKILL
    Species "Korax"
    DamageType "SkullBomb"
    DamageFactor "Skullbomb", 0.7
    DamageFactor "Loric", 0.4
    MeleeSound "skullbomb/attack"
    SeeSound "skullbomb/sight"
    DeathSound "skullbomb/explode"
    Obituary "%o could not escape the skull's explosion"
    HitObituary "%o was spooked by a skull"
    States
    {
    Spawn:
	SWBS AA 4 A_Look
	Loop
    See:
	SWBS AAAAAA 1 A_Chase
	SWBS A 2
	SWBS A 0 A_Recoil(-8)
	SWBS A 0 A_PlaySoundEx("skullbomb/jump","SoundSlot7",0,0)
	SWBS A 2 ThrustThingZ(0,random(32,40),0,0)
	SWBS A 1 A_CheckFloor(1)
	Goto See+10
	SWBS A 0 A_Stop
	Loop
    Missile:
	SWBS AAA 2 A_FaceTarget
	SWBS B 0 A_Recoil(-32)
	SWBS B 0 A_PlaySoundEx("skullbomb/jump","SoundSlot7",0,0)
	SWBS B 1 A_SkullAttack
	SWBS B 1 ThrustThingZ(0,random(40,48),0,0)
	SWBS B 1 A_CheckFloor(1)
	Goto Missile+7
	SWBS A 0 A_Stop
	Goto See
    Melee:
	SWBS A 3 A_FaceTarget
	SWBS B 3 A_MeleeAttack
	SWBS A 5
	Goto See
    Ice:
    Death.Frost:
    Death:
	SWBS C 0 A_Stop
	SWBS C 0 A_NoGravity
	SWBS C 3 A_NoBlocking
	SWBS C 3 A_Scream
	SWBS D 5 Bright
	SWBS AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile("LoricShard",frandom(-8,8),frandom(-8,8),frandom(0,360),2,frandom(-15,15))
	SWBS A 0 A_CustomMissile("SkullBombExplosion",12,0)
	SWBS A 0 A_SetTranslucent(0.8,0)
	SWBS EFGH 5 Bright
	Stop
    }
}

ACTOR SkullBombExplosion
{
    DamageType "SkullBomb"
    States
    {
    Spawn:
	TNT1 A 0
	TNT1 A 0 A_Explode(80,128,64)
	Stop
    }
}

ACTOR KoraxBlood1
{
    +NOINTERACTION
    Scale 0.4
    States
    {
    Spawn:
	KXB1 ABCDEFGHIJKLMNOPQRS 1
	Stop
    }
}

ACTOR KoraxBlood2 : KoraxBlood1
{
    +SPRITEFLIP
}

ACTOR KoraxBlood3
{
    +NOINTERACTION
    Scale 0.4
    States
    {
    Spawn:
	KXB2 ABCDEFGHIJKLMNOPQR 1
	Stop
    }
}

ACTOR KoraxBlood4 : KoraxBlood3
{
    +SPRITEFLIP
}

ACTOR KoraxBlood5
{
    +NOINTERACTION
    Scale 0.4
    States
    {
    Spawn:
	KXB3 ABCDEFGHIJKLM 1
	Stop
    }
}

ACTOR KoraxBlood6 : KoraxBlood5
{
    +SPRITEFLIP
}

//----------------------------------------------------------

ACTOR PigMonster : Pig replaces Pig
{
    Obituary "%o had %p legs knawed by a pig"
}

//----------------------------------------------------------

ACTOR PowerRedeemed : PowerProtection
{
    DamageFactor "Redeemer", 0
}

ACTOR RedeemedByCharmSpell : PowerupGiver
{
    -INVENTORY.INVBAR
    +INVENTORY.AUTOACTIVATE
    Inventory.MaxAmount 0
    Powerup.Type "Redeemed"
    Powerup.Duration 2147483647
}

ACTOR Slowed : PowerupGiver
{
    -INVENTORY.INVBAR
    +INVENTORY.AUTOACTIVATE
    Inventory.MaxAmount 0
    Powerup.Type "HalfSpeed"
    Powerup.Duration 280
}

ACTOR SlowedNM : PowerupGiver
{
    -INVENTORY.INVBAR
    +INVENTORY.AUTOACTIVATE
    Inventory.MaxAmount 0
    Powerup.Type "HalfSpeed"
    Powerup.Duration 420
}

ACTOR SlowedMonster : Inventory
{
    Inventory.Amount 1
    Inventory.MaxAmount 1

}

ACTOR DeadThing : Inventory
{
    Inventory.Amount 1
    Inventory.MaxAmount 1
}

ACTOR DefileSpawner
{
    Radius 1
    Height 1
    MONSTER
    +FRIENDLY
    -COUNTKILL
    -SOLID
    States
    {
    Spawn:
	TNT1 A 0
	TNT1 A 0 A_Jump(128,2)
	TNT1 A 0 A_SpawnItemEx("DefileMite",0,0,0,0,0,0,0,32,0)
	TNT1 A 0 A_Jump(128,2)
	TNT1 A 0 A_SpawnItemEx("DefileMite",0,0,0,0,0,0,0,32,0)
	TNT1 A 0 A_SpawnItemEx("DefileMite",0,0,0,0,0,0,0,32,0)
	TNT1 A 0 A_SpawnItemEx("DefileMite",0,0,0,0,0,0,0,32,0)
	TNT1 A 0 A_Jump(128,2)
	TNT1 A 0 A_SpawnItemEx("DefileBug",0,0,0,0,0,0,0,32,0)
	TNT1 A 0 A_Jump(128,2)
	TNT1 A 0 A_SpawnItemEx("DefileBug",0,0,0,0,0,0,0,32,0)
	TNT1 A 0 A_SpawnItemEx("DefileBug",0,0,0,0,0,0,0,32,0)
	TNT1 A 0 A_SpawnItemEx("DefileBug",0,0,0,0,0,0,0,32,0)
	Stop
    }
}

Actor DefileMite 
{
    Scale 0.35
    Speed 6
    Radius 8
    Height 6
    Health 60
    PainChance 255
    MeleeDamage 5
    MeleeRange 20
    BloodColor Green
    Args 100
    MONSTER
    -SOLID
    -COUNTKILL
    +FRIENDLY
    +FLOORCLIP
    +NOBLOCKMONST
    +DONTMORPH
    MeleeSound "weapons/defilemite/bite"
    PainSound "weapons/defilemite/pain"
    DeathSound "weapons/defilemite/death"
    States
    {
    Spawn:
	PSEN A 0
	PSEN A 0 A_ChangeFlag("FRIENDLY",1)
	PSEN AA 1 A_Look
	PSEN A 0 A_CountdownArg(0)
	Goto Spawn+2
    See:
	DEFM AA 2 A_Chase
	DEFM A 0 A_CountdownArg(0)
	DEFM BB 2 A_Chase
	DEFM A 0 A_CountdownArg(0)
	DEFM CC 2 A_Chase
	DEFM A 0 A_CountdownArg(0)
	DEFM A 0 A_Jump(32,1)
	Loop
	DEFM A 0 A_PlaySound("weapons/defilemite/jump")
	DEFM E 0 ThrustThingZ(0,32,0,1)
	DEFM E 16 A_Recoil(-5)  
	Loop
    Melee:
	DEFM F 5 A_FaceTarget
	DEFM G 5 A_MeleeAttack
	DEFM G 0 A_CountdownArg(0)
	DEFM F 5 A_FaceTarget
	Goto See
    Pain:
	DEFM F 0 A_Pain
	Goto See
    Death:
	DEFM H 4 A_Scream
	DEFM IJ 4
	TNT1 A 0 A_CustomMissile("MiteGib1",0+Random(5,7),0+Random(35,-35),0+Random(0,370),2,0+random(5,50))
	TNT1 A 0 A_CustomMissile("MiteGib2",0+Random(5,7),0+Random(35,-35),0+Random(0,370),2,0+random(5,50))
	TNT1 A 0 A_CustomMissile("MiteGib3",0+Random(5,7),0+Random(35,-35),0+Random(0,370),2,0+random(5,50))  
	TNT1 A 0 A_CustomMissile("MiteGib4",0+Random(5,7),0+Random(35,-35),0+Random(0,370),2,0+random(5,50))
	TNT1 A 0 A_CustomMissile("MiteGib5",0+Random(5,7),0+Random(35,-35),0+Random(0,370),2,0+random(5,50))
	TNT1 A 0 A_CustomMissile("MiteGib6",0+Random(5,7),0+Random(35,-35),0+Random(0,370),2,0+random(5,50))
	TNT1 A 0 A_CustomMissile("MiteGib7",0+Random(5,7),0+Random(35,-35),0+Random(0,370),2,0+random(5,50))
	TNT1 A 0 A_CustomMissile("MiteGib8",0+Random(5,7),0+Random(35,-35),0+Random(0,370),2,0+random(5,50))
	TNT1 A 0 A_CustomMissile("MiteGib1",0+Random(5,7),0+Random(35,-35),0+Random(0,370),2,0+random(5,50))
	TNT1 A 0 A_CustomMissile("MiteGib2",0+Random(5,7),0+Random(35,-35),0+Random(0,370),2,0+random(5,50))
	TNT1 A 0 A_CustomMissile("MiteGib3",0+Random(5,7),0+Random(35,-35),0+Random(0,370),2,0+random(5,50))  
	TNT1 A 0 A_CustomMissile("MiteGib4",0+Random(5,7),0+Random(35,-35),0+Random(0,370),2,0+random(5,50))
	TNT1 A 0 A_CustomMissile("MiteGib5",0+Random(5,7),0+Random(35,-35),0+Random(0,370),2,0+random(5,50))  
	TNT1 A 0 A_CustomMissile("MiteGib6",0+Random(5,7),0+Random(35,-35),0+Random(0,370),2,0+random(5,50))
	TNT1 A 0 A_CustomMissile("MiteGib7",0+Random(5,7),0+Random(35,-35),0+Random(0,370),2,0+random(5,50))
	TNT1 A 0 A_CustomMissile("MiteGib8",0+Random(5,7),0+Random(35,-35),0+Random(0,370),2,0+random(5,50))
	TNT1 A 0 A_NoBlocking
	Stop
    }
}

Actor MiteGib1
{
    BounceFactor 0.2
    +DOOMBOUNCE
    PROJECTILE
    Speed 8
    Scale 0.35
    -NOGRAVITY
    -NOBLOCKMAP
    States
    {
    Spawn:
	DEFM K 1
    Death:
	DEFM K 250
	DEFM K 1 A_FadeOut
	Goto Death+1
    }
}

Actor MiteGib2 : MiteGib1
{
    States
    {
    Spawn:
	DEFM L 1
    Death:
	DEFM L 250
	DEFM L 1 A_FadeOut
	Goto Death+1
    }  
}

Actor MiteGib3 : MiteGib1
{
    States
    {
    Spawn:
	DEFM M 1
	Death:
	DEFM M 250
	DEFM M 1 A_FadeOut
	Goto Death+1
    }  
}

Actor MiteGib4 : MiteGib1
{
    States
    {
    Spawn:
	DEFM N 1
    Death:
	DEFM N 250
	DEFM N 1 A_FadeOut
	Goto Death+1
    }  
}

Actor MiteGib5 : MiteGib1
{
    States
    {
    Spawn:
	DEFM O 1
    Death:
	DEFM O 250
	DEFM O 1 A_FadeOut
	Goto Death+1
    } 
}

Actor MiteGib6 : MiteGib1
{
    States
    {
    Spawn:
	DEFM P 1
    Death:
	DEFM P 250
	DEFM P 1 A_FadeOut
	Goto Death+1
    }  
}

Actor MiteGib7 : MiteGib1
{
    States
    {
    Spawn:
	DEFM Q 1
    Death:
	DEFM Q 250
	DEFM Q 1 A_FadeOut
	Goto Death+1
    }  
}

Actor MiteGib8 : MiteGib1
{
    States
    {
    Spawn:
	DEFM R 1
    Death:
	DEFM R 250
	DEFM R 1 A_FadeOut
	Goto Death+1
    }
}

Actor DefileBug
{
    Health 60
    Scale 0.08
    Radius 6
    Height 12
    Speed 26
    MeleeRange 20
    MeleeDamage 5
    MeleeSound "weapons/defilebug/sting"
    DeathSound "weapons/defilebug/death"
    Args 100
    MONSTER
    +NOGRAVITY
    +FLOAT
    +FLOATBOB
    +FLOORCLIP
    +FRIENDLY
    +NOBLOCKMONST
    +DONTMORPH
    +STRIFEDAMAGE
    -COUNTKILL
    -SOLID
    States
    {
    Spawn:
	OWDE A 0
	OWDE A 0 A_ChangeFlag("FRIENDLY",1)
  	OWDE A 0 A_PlaySound("monster/omenwasp/flying")
  	OWDE A 2 A_Look
	DBUG A 0 A_CountdownArg(0)
  	OWDE B 0 A_PlaySound("monster/omenwasp/flying")
  	OWDE B 2 A_Look
	DBUG B 0 A_CountdownArg(0)
  	Goto Spawn+2
    See:
  	DBUG A 0 A_PlaySound("weapons/defilebug/flying")
  	DBUG AA 2 A_Chase
	DBUG A 0 A_CountdownArg(0)
  	DBUG B 0 A_PlaySound("weapons/defilebug/flying")
  	DBUG BB 2 A_Chase
	DBUG B 0 A_CountdownArg(0)
  	Loop
    Melee:
  	DBUG E 0 A_PlaySound("weapons/defilebug/attack")
  	DBUG ED 4 A_FaceTarget
	DBUG D 0 A_CountdownArg(0)
  	DBUG C 4 A_MeleeAttack
  	DBUG D 4 A_FaceTarget
  	Goto See
    Death:
  	DBUG A 0 A_ChangeFlag(FLOATBOB,0)
  	DBUG F 0 A_Scream
  	DBUG FGGGGGGGGGGGGGGGG 3
    Crash:
  	DBUG HI 3
  	DBUG I -1
	Stop
    }
}

//----------------------------------------------------------

ACTOR CEBlood : Blood
{
    +DONTSPLASH
    +DONTBLAST
    +NOBLOCKMAP
    +NOTELEPORT
    +ALLOWPARTICLES
    -NOGRAVITY
    Scale 0.075
    Gravity 0.3
    States
    {
    Spawn:
	BLD1 A 1
	TNT1 AAAAA 0 A_SpawnItemEx("CEBloodSmall",frandom(3,-3),frandom(3,-3),frandom(3,-3),0,0,0,random(0,356),1)
	BLD1 ABCD 6
	Stop
    }
}

ACTOR CEBloodSmall : CEBlood
{
    Scale 0.04
    States
    {
    Spawn:
	TNT1 A 0
	BLD1 A 1 //ThrustThingZ(0,frandom(5,12),0,1)
	BLD1 A 5
	BLD1 ABCD 6
	Stop
    }
}

ACTOR CEGibSpawner
{
    Speed 0
    Projectile
    RenderStyle None
    States
    {
    Spawn:
	TNT1 A 0
	TNT1 A 0 A_Jump(180,"Drop2","Drop3","Drop4")
	TNT1 AAAAAAAAAAAAAAAA 0 A_SpawnItemEx("CEMeat",0,0,0,frandom(-5,5),frandom(-5,5),frandom(3,8),random(0,360),1)
	TNT1 AA 0 A_SpawnItemEx("Gib1",frandom(-5,5),frandom(-5,5),0,random(-5,5),0,0,random(1,359),1)
	TNT1 AA 0 A_SpawnItemEx("Gib2",frandom(-5,5),frandom(-5,5),0,random(-5,5),0,0,random(1,359),1)
	TNT1 AAA 0 A_SpawnItemEx("Gib3",frandom(-5,5),frandom(-5,5),0,random(-5,5),0,0,random(1,359),1)
	TNT1 A 0 A_SpawnItemEx("Gib4",frandom(-5,5),frandom(-5,5),0,random(-5,5),0,0,random(1,359),1)
	TNT1 A 1
	Stop
    Drop2:
	TNT1 AAAAAAAAAAAAAAAA 0 A_SpawnItemEx("CEMeat",0,0,0,frandom(-5,5),frandom(-5,5),frandom(3,8),random(0,360),1)
	TNT1 AA 0 A_SpawnItemEx("Gib1",frandom(-5,5),frandom(-5,5),0,random(-5,5),0,0,random(1,359),1)
	TNT1 AA 0 A_SpawnItemEx("Gib2",frandom(-5,5),frandom(-5,5),0,random(-5,5),0,0,random(1,359),1)
	TNT1 AA 0 A_SpawnItemEx("Gib3",frandom(-5,5),frandom(-5,5),0,random(-5,5),0,0,random(1,359),1)
	TNT1 AA 0 A_SpawnItemEx("Gib4",frandom(-5,5),frandom(-5,5),0,random(-5,5),0,0,random(1,359),1)
	TNT1 A 1
	Stop
    Drop3:
	TNT1 AAAAAAAAAAAAAAAA 0 A_SpawnItemEx("CEMeat",0,0,0,frandom(-5,5),frandom(-5,5),frandom(3,8),random(0,360),1)
	TNT1 A 0 A_SpawnItemEx("Gib1",frandom(-5,5),frandom(-5,5),0,random(-5,5),0,0,random(1,359),1)
	TNT1 AA 0 A_SpawnItemEx("Gib2",frandom(-5,5),frandom(-5,5),0,random(-5,5),0,0,random(1,359),1)
	TNT1 AAA 0 A_SpawnItemEx("Gib3",frandom(-5,5),frandom(-5,5),0,random(-5,5),0,0,random(1,359),1)
	TNT1 AA 0 A_SpawnItemEx("Gib4",frandom(-5,5),frandom(-5,5),0,random(-5,5),0,0,random(1,359),1)
	TNT1 A 1
	Stop
    Drop4:
	TNT1 AAAAAAAAAAAAAAAA 0 A_SpawnItemEx("CEMeat",0,0,0,frandom(-5,5),frandom(-5,5),frandom(3,8),random(0,360),1)
	TNT1 AA 0 A_SpawnItemEx("Gib1",frandom(-5,5),frandom(-5,5),0,random(-5,5),0,0,random(1,359),1)
	TNT1 A 0 A_SpawnItemEx("Gib2",frandom(-5,5),frandom(-5,5),0,random(-5,5),0,0,random(1,359),1)
	TNT1 AA 0 A_SpawnItemEx("Gib3",frandom(-5,5),frandom(-5,5),0,random(-5,5),0,0,random(1,359),1)
	TNT1 AAA 0 A_SpawnItemEx("Gib4",frandom(-5,5),frandom(-5,5),0,random(-5,5),0,0,random(1,359),1)
	TNT1 A 1
	Stop
    }
}

ACTOR Gib1		
{
    Scale 0.4
    Radius 6
    Height 5
    -NOLIFTDROP
    -SOLID
    +DROPOFF
    +NOTELEPORT
    +CORPSE
    States
    {
    Spawn:
	TNT1 AAAA 0
        GIB1 AAAA 1 ThrustThingZ(0,random(2,8),0,1)
	GIB1 BBCCDD 2 A_SpawnItemEx("CEBlood",random(3,-3),random(3,-3),random(3,-3),0,0,0,0,1)
	GIB1 AABBCCDD 2 A_SpawnItemEx("CEBlood",random(3,-3),random(3,-3),random(3,-3),0,0,0,0,1)
	Goto Spawn+11
    Crash:
	  GIB1 E 350 A_NoBlocking
	  GIB1 E 1 A_FadeOut
	  Wait
    }
}

ACTOR Gib2 : Gib1
{
    Scale 0.25
    Speed 7
    States
    {
    Spawn:
	TNT1 AAAA 0
        GIB2 AAAA 1 ThrustThingZ(0,random(2,8),0,1)
	GIB2 BBCCDD 2 A_SpawnItemEx("CEBlood",random(3,-3),random(3,-3),random(3,-3),0,0,0,0,1)
	GIB2 AABBCCDD 2 A_SpawnItemEx("CEBlood",random(3,-3),random(3,-3),random(3,-3),0,0,0,0,1)
	Goto Spawn+11
    Crash:
	GIB2 E 350 A_NoBlocking
	GIB2 E 1 A_FadeOut
	Wait
    }
}

ACTOR Gib3 : Gib1
{
    Scale 0.4
    Speed 7
    States
    {
    Spawn:
	TNT1 AAAA 0
        GIB3 AAAA 1 ThrustThingZ(0,random(2,8),0,1)
	GIB3 BBCCDD 2 A_SpawnItemEx("CEBlood",random(3,-3),random(3,-3),random(3,-3),0,0,0,0,1)
	GIB3 AABBCCDD 2 A_SpawnItemEx("CEBlood",random(3,-3),random(3,-3),random(3,-3),0,0,0,0,1)
	Goto Spawn+11
    Crash:
	GIB3 E 350 A_NoBlocking
	GIB3 E 1 A_FadeOut
	Wait
    }
}

ACTOR Gib4 : Gib1
{
    Scale 0.4
    Speed 7
    States
    {
    Spawn:
	TNT1 AAAA 0
        GIB4 AAAA 1 ThrustThingZ(0,random(2,8),0,1)
	GIB4 BBCCDD 2 A_SpawnItemEx("CEBlood",random(3,-3),random(3,-3),random(3,-3),0,0,0,0,1)
	GIB4 AABBCCDD 2 A_SpawnItemEx("CEBlood",random(3,-3),random(3,-3),random(3,-3),0,0,0,0,1)
	Goto Spawn+11
    Crash:
	GIB4 E 350 A_NoBlocking
	GIB4 E 1 A_FadeOut
	Wait
    }
}

ACTOR CEMeat replaces Meat
{
    Radius 6
    Height 5
    Scale 0.6
    -NOLIFTDROP
    -SOLID
    +DROPOFF
    +NOTELEPORT
    +CORPSE
    States
    {
    Spawn:
	TNT1 A 0
	TNT1 A 0 A_Jump(256,"M1","M2","M3","M4","M5","M6","M7","M8","M9","M10","M11","M12","M13","M14","M15","M16","M17","M18","M19","M20")
    M1:
	MEAT AAAA 1 A_SpawnItemEx("CEBlood",frandom(3,-3),frandom(3,-3),frandom(3,-3),0,0,0,0,1)
	TNT1 A 0 A_CheckFloor("MD1")
	Loop
    M2:
	MEAT BBBB 1 A_SpawnItemEx("CEBlood",frandom(3,-3),frandom(3,-3),frandom(3,-3),0,0,0,0,1)
	TNT1 A 0 A_CheckFloor("MD2")
	Loop
    M3:
	MEAT CCCC 1 A_SpawnItemEx("CEBlood",frandom(3,-3),frandom(3,-3),frandom(3,-3),0,0,0,0,1)
	TNT1 A 0 A_CheckFloor("MD3")
	Loop
    M4:
	MEAT DDDD 1 A_SpawnItemEx("CEBlood",frandom(3,-3),frandom(3,-3),frandom(3,-3),0,0,0,0,1)
	TNT1 A 0 A_CheckFloor("MD4")
	Loop
    M5:
	MEAT EEEE 1 A_SpawnItemEx("CEBlood",frandom(3,-3),frandom(3,-3),frandom(3,-3),0,0,0,0,1)
	TNT1 A 0 A_CheckFloor("MD5")
	Loop
    M6:
	MEAT FFFF 1 A_SpawnItemEx("CEBlood",frandom(3,-3),frandom(3,-3),frandom(3,-3),0,0,0,0,1)
	TNT1 A 0 A_CheckFloor("MD6")
	Loop
    M7:
	MEAT GGGG 1 A_SpawnItemEx("CEBlood",frandom(3,-3),frandom(3,-3),frandom(3,-3),0,0,0,0,1)
	TNT1 A 0 A_CheckFloor("MD7")
	Loop
    M8:
	MEAT HHHH 1 A_SpawnItemEx("CEBlood",frandom(3,-3),frandom(3,-3),frandom(3,-3),0,0,0,0,1)
	TNT1 A 0 A_CheckFloor("MD8")
	Loop
    M9:
	MEAT IIII 1 A_SpawnItemEx("CEBlood",frandom(3,-3),frandom(3,-3),frandom(3,-3),0,0,0,0,1)
	TNT1 A 0 A_CheckFloor("MD9")
	Loop
    M10:
	MEAT JJJJ 1 A_SpawnItemEx("CEBlood",frandom(3,-3),frandom(3,-3),frandom(3,-3),0,0,0,0,1)
	TNT1 A 0 A_CheckFloor("MD10")
	Loop
    M11:
	MEAT KKKK 1 A_SpawnItemEx("CEBlood",frandom(3,-3),frandom(3,-3),frandom(3,-3),0,0,0,0,1)
	TNT1 A 0 A_CheckFloor("MD11")
	Loop
    M12:
	MEAT LLLL 1 A_SpawnItemEx("CEBlood",frandom(3,-3),frandom(3,-3),frandom(3,-3),0,0,0,0,1)
	TNT1 A 0 A_CheckFloor("MD12")
	Loop
    M13:
	MEAT MMMM 1 A_SpawnItemEx("CEBlood",frandom(3,-3),frandom(3,-3),frandom(3,-3),0,0,0,0,1)
	TNT1 A 0 A_CheckFloor("MD13")
	Loop
    M14:
	MEAT NNNN 1 A_SpawnItemEx("CEBlood",frandom(3,-3),frandom(3,-3),frandom(3,-3),0,0,0,0,1)
	TNT1 A 0 A_CheckFloor("MD14")
	Loop
    M15:
	MEAT OOOO 1 A_SpawnItemEx("CEBlood",frandom(3,-3),frandom(3,-3),frandom(3,-3),0,0,0,0,1)
	TNT1 A 0 A_CheckFloor("MD15")
	Loop
    M16:
	MEAT PPPP 1 A_SpawnItemEx("CEBlood",frandom(3,-3),frandom(3,-3),frandom(3,-3),0,0,0,0,1)
	TNT1 A 0 A_CheckFloor("MD16")
	Loop
    M17:
	MEAT QQQQ 1 A_SpawnItemEx("CEBlood",frandom(3,-3),frandom(3,-3),frandom(3,-3),0,0,0,0,1)
	TNT1 A 0 A_CheckFloor("MD17")
	Loop
    M18:
	MEAT RRRR 1 A_SpawnItemEx("CEBlood",frandom(3,-3),frandom(3,-3),frandom(3,-3),0,0,0,0,1)
	TNT1 A 0 A_CheckFloor("MD18")
	Loop
    M19:
	MEAT SSSS 1 A_SpawnItemEx("CEBlood",frandom(3,-3),frandom(3,-3),frandom(3,-3),0,0,0,0,1)
	TNT1 A 0 A_CheckFloor("MD19")
	Loop
    M20:
	MEAT TTTT 1 A_SpawnItemEx("CEBlood",frandom(3,-3),frandom(3,-3),frandom(3,-3),0,0,0,0,1)
	TNT1 A 0 A_CheckFloor("MD20")
	Loop
    MD1:
	MEAT A 350
	MEAT A 1 A_FadeOut(0.05)
	Wait
    MD2:
	MEAT B 350
	MEAT B 1 A_FadeOut(0.05)
	Wait
    MD3:
	MEAT C 350
	MEAT C 1 A_FadeOut(0.05)
	Wait
    MD4:
	MEAT D 350
	MEAT D 1 A_FadeOut(0.05)
	Wait
    MD5:
	MEAT E 350
	MEAT E 1 A_FadeOut(0.05)
	Wait
    MD6:
	MEAT F 350
	MEAT F 1 A_FadeOut(0.05)
	Wait
    MD7:
	MEAT G 350
	MEAT G 1 A_FadeOut(0.05)
	Wait
    MD8:
	MEAT H 350
	MEAT H 1 A_FadeOut(0.05)
	Wait
    MD9:
	MEAT I 350
	MEAT I 1 A_FadeOut(0.05)
	Wait
    MD10:
	MEAT J 350
	MEAT J 1 A_FadeOut(0.05)
	Wait
    MD11:
	MEAT K 350
	MEAT K 1 A_FadeOut(0.05)
	Wait
    MD12:
	MEAT L 350
	MEAT L 1 A_FadeOut(0.05)
	Wait
    MD13:
	MEAT M 350
	MEAT M 1 A_FadeOut(0.05)
	Wait
    MD14:
	MEAT N 350
	MEAT N 1 A_FadeOut(0.05)
	Wait
    MD15:
	MEAT O 350
	MEAT O 1 A_FadeOut(0.05)
	Wait
    MD16:
	MEAT P 350
	MEAT P 1 A_FadeOut(0.05)
	Wait
    MD17:
	MEAT Q 350
	MEAT Q 1 A_FadeOut(0.05)
	Wait
    MD18:
	MEAT R 350
	MEAT R 1 A_FadeOut(0.05)
	Wait
    MD19:
	MEAT S 350
	MEAT S 1 A_FadeOut(0.05)
	Wait
    MD20:
	MEAT T 350
	MEAT T 1 A_FadeOut(0.05)
	Wait
    }
}

//----------------------------------------------------------