ACTOR Executioner 27266
{
//Creator: Titanium
//Origin: TXS
//Sprite: ZEXE
//Title: "Executioner"
Health 900
Radius 20
Height 56
Speed 12
Mass 100
PainChance 20
DropItem "HandGrenadeAmmo" 237 2
DropItem "MineAmmo" 242 2
DropItem "Backpack" 202 1
DropItem "Armorplate" 212 1
DropItem "Portablemedkit" 217 1
DropItem "StimKit" 222 3
DropItem "HealthFlask" 227 5
DropItem "PortableMedCell" 192 1
DropItem "PortableMedCellPack" 177 1
DropItem "Explosive Minigun" 180
DropItem "Megapack" 10 1
DropItem "HellsMediumContract", 110
DropItem "ExoticWeaponEnhancerModuleGiver" 90
MONSTER
Species "EliteZombies"
DamageFactor 0.5
Damagefactor "ZombieDemonTech", 0
Damagefactor "RedZombieDemonTech", 0
DamageFactor "RedZDemonTechProjectile", 0.0
Damagefactor "ZombieRocket", 0
DamageFactor "GeneralTracer", 0.0
DamageFactor "EMGEx", 0.0
DamageFactor "RST", 0.0
DamageFactor "SoulToxic", 0.0
DamageFactor "BeheComet", 0.0
DamageFactor "FatFlamer", 0.0
Damagefactor "HTZombie", 0.0
DamageFactor "MiniRocket", 0.0
DamageFactor "ZombieCannon", 0.0
Damagefactor "ZExplosiveBullets", 0.0
Damagefactor "ZGrenade", 0.0
SeeSound "UltraZombie/see"
PainSound "UltraZombie/pain"
DeathSound "UltraZombie/die"
ActiveSound "UltraZombie/idle"
Obituary "%o was turned into a fleck by an Executioner."
Tag "\c[s0]Executioner\c-"
+FLOORCLIP
+MISSILEMORE
+MISSILEEVENMORE
+QUICKTORETALIATE
+DONTHURTSPECIES
+NODROPOFF
+NOTARGET
+NORADIUSDMG
+FORCERADIUSDMG
+NOFEAR
States
{
  Spawn:
    ZEXE A 10 A_Look
	TNT1 A 0 Healthing(2)
    Loop
  See:
    ZEXE AABB 2 A_Chase
    TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
    ZEXE CCDD 2 A_Chase
    TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 Healthing(2)
    Loop
  Rush: //Not used
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("ExecutionerGhostA",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	ZEXE A 1 A_Chase
	TNT1 A 0 A_SpawnItemEx("ExecutionerGhostA",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	ZEXE A 1 A_Chase
	TNT1 A 0 A_SpawnItemEx("ExecutionerGhostB",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	ZEXE B 1 A_Chase
	TNT1 A 0 A_SpawnItemEx("ExecutionerGhostB",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	ZEXE B 1 A_Chase
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("ExecutionerGhostC",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	ZEXE C 1 A_Chase
	TNT1 A 0 A_SpawnItemEx("ExecutionerGhostC",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	ZEXE C 1 A_Chase
	TNT1 A 0 A_SpawnItemEx("ExecutionerGhostD",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	ZEXE D 1 A_Chase
	TNT1 A 0 A_SpawnItemEx("ExecutionerGhostD",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	ZEXE D 1 A_Chase
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_Jump(85,"See")
	TNT1 A 0 Healthing(2)
	Loop
  Missile:
	TNT1 A 0 A_Jump(20,"Dodge")
	TNT1 A 0 A_Jump(10,"Heal")
	TNT1 A 0 A_JumpIfCloser(750,"Close")
  Far:
    ZEXE E 5 A_FaceTarget
	TNT1 A 0 A_GiveInventory("DTZombieStrafing",1)
    TNT1 A 0 A_SpawnItemEx("OrangeShellCasing", 12, 6, 30, Random(2, 6), 0, Random(1, 3), Random(-80, -90), 128)
	TNT1 A 0 A_PlaySound("sentient/fire")
    TNT1 A 0 A_CustomMissile("MinigunnerExplosiveTracer",30,0,0,0)
	ZEXE F 4 Bright A_CPosAttack
    ZEXE E 2 A_FaceTarget
	TNT1 A 0 A_GiveInventory("DTZombieStrafing",1)
	TNT1 A 0 A_SpawnItemEx("OrangeShellCasing", 12, 6, 30, Random(2, 6), 0, Random(1, 3), Random(-80, -90), 128)
	TNT1 A 0 A_PlaySound("sentient/fire")
    TNT1 A 0 A_CustomMissile("MinigunnerExplosiveTracer",30,0,0,0)
	ZEXE F 4 Bright A_CPosAttack
    ZEXE E 2 A_FaceTarget
	TNT1 A 0 A_GiveInventory("DTZombieStrafing",1)
    TNT1 A 0 A_SpawnItemEx("OrangeShellCasing", 12, 6, 30, Random(2, 6), 0, Random(1, 3), Random(-80, -90), 128)
	TNT1 A 0 A_PlaySound("sentient/fire")
    TNT1 A 0 A_CustomMissile("MinigunnerExplosiveTracer",30,0,0,0)
	ZEXE F 4 Bright A_CPosAttack
    ZEXE E 5 A_FaceTarget
	TNT1 A 0 A_GiveInventory("DTZombieStrafing",1)
    TNT1 A 0 A_CPosRefire
    Goto Far+1
  Close:
    ZEXE E 5 A_FaceTarget
	TNT1 A 0 A_GiveInventory("DTZombieStrafing",1)
    TNT1 A 0 A_SpawnItemEx("OrangeShellCasing", 12, 6, 30, Random(2, 6), 0, Random(1, 3), Random(-80, -90), 128)
	TNT1 A 0 A_PlaySound("sentient/fire")
	TNT1 A 0 A_CustomMissile("MinigunnerExplosiveTracer",30,0,0,0)
    ZEXE F 2 Bright A_CPosAttack
    ZEXE E 3 A_FaceTarget		
     TNT1 A 0 A_CPosRefire
	Goto Close+1
  Heal:
	TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	ZEXE A 5 A_FaceTarget
	TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 HealThing(100)
	TNT1 A 0 A_PlaySound("MedCellPack/Use",0,1.0,0)
	Goto See
  Dodge:
	ZEXE A 1 A_FaceTarget
	ZEXE E 1 ThrustThingZ(0, 20, 0, 0)
	ZEXE A 0 A_Jump(256, "DodgeRight", "DodgeLeft")
  DodgeLeft:
	ZEXE E 1 ThrustThing(angle*256/360+192, 15, 0, 0)
	TNT1 A 0 A_Jump(40,"Heal")
	Goto Missile
  DodgeRight:
	ZEXE E 1 ThrustThing(angle*256/360+64, 15, 0, 0)
	TNT1 A 0 A_Jump(40,"Heal")
	Goto Missile
  Pain:
	TNT1 A 0 A_JumpIf(84,"PainMissile")
    ZEXE G 3 A_Pain
    Goto See
  PainMissile:
	TNT1 A 0 A_JumpIf(64,"Dodge")
    ZEXE G 3 A_Pain
    Goto Missile
  Death:
    ZEXE H 5  
    ZEXE I 5 A_Scream
    ZEXE J 5 A_Fall
    ZEXE K 5 A_SpawnItem("BodyCrash",0,0,0,0)
    ZEXE L -1
    Stop
  Raise:
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("VileHealEffect",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
    ZEXE KJIH 5
    Goto See
	}
}

ACTOR ExecutionerGhostA
{
Scale 1.1
Radius 20
Height 56
Speed 0
Alpha 0.7
PROJECTILE
RENDERSTYLE Translucent
+CLIENTSIDEONLY
+NOINTERACTION
+NOTIMEFREEZE
States
{
  Spawn:
    TNT1 A 0
	TNT1 A 1 A_JumpIf(ACS_ExecuteWithResult(304) == 1,"NULL")
    ZEXE A 2 A_FadeOut(0.10)
    Wait
    }
}

ACTOR ExecutionerGhostB : ExecutionerGhostA
{   
States
{
  Spawn:
    TNT1 A 0
	TNT1 A 1 A_JumpIf(ACS_ExecuteWithResult(304) == 1,"NULL")
    ZEXE B 2 A_FadeOut(0.10)
    Wait
    }
}

ACTOR ExecutionerGhostC : ExecutionerGhostA
{   
States
{
  Spawn:
    TNT1 A 0
	TNT1 A 1 A_JumpIf(ACS_ExecuteWithResult(304) == 1,"NULL")
    ZEXE C 2 A_FadeOut(0.10)
    Wait
    }
}

ACTOR ExecutionerGhostD : ExecutionerGhostA
{   
States
{
  Spawn:
    TNT1 A 0
	TNT1 A 1 A_JumpIf(ACS_ExecuteWithResult(304) == 1,"NULL")
    ZEXE D 2 A_FadeOut(0.10)
    Wait
    }
}