ACTOR TrueLegZombie : LegendaryZombie
{ 
  Health 1099
  Speed 10
  PainChance "Melee", 128
  BloodColor "Blue"
  DropItem "LegendaryArmor" 120 1
  DropItem "LegAmmoSphere" 128 1
  DropItem "HandGrenadeAmmo" 235 2
  DropItem "MineAmmo" 235 2
  DropItem "Backpack" 198 1
  DropItem "Armorplate" 205 1
  DropItem "Portablemedkit" 210 1
  DropItem "LDemonAmmoBox" 200 
  DropItem "LDemonAmmo" 250 
  DropItem "LegendaryRune" 55 1
  DropItem "Legendary Plasmatic Rifle" 256 1
  DropItem "DrainRune" 10
  DropItem "LegendaryPowerShard" 60 1
  DropItem "LegendaryCell" 180
  DropItem "LegendaryCellPack" 150
  DropItem "Legendary Railgun" 125 1
  DropItem "TrueLegendaryBFGUpgrade" 35 1
  DamageFactor 0.65
  SeeSound "TLegZomb/sight"
  AttackSound "Null"
  PainSound "TLegZomb/pain"
  DeathSound "TLegZomb/death"
  ActiveSound "TLegZomb/active"
  Obituary "%o was exterminated by the True Legendary Zombie."
  States
  {
  Spawn:
    TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
    TLZO A 10 Bright A_Look
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	TLZI A 10 Bright A_Look
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
    Loop
  See:
    TNT1 A 0 A_JumpIf(user_music == 1,3)
    TNT1 A 0 ACS_NamedExecuteAlways("StartMonsterMusic",0,30)
	TNT1 A 0 A_SetUserVar("user_music",1)
    TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
    TLZO A 0 A_JumpIfTargetInLOS("Strafing")
    TLZO AA 3 Bright A_Chase
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	TLZO BB 3 Bright A_Chase
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TLZO A 0 A_JumpIfTargetInLOS("Strafing")
	TLZO CC 3 Bright A_Chase
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	TLZO DD 3 Bright A_Chase
	TLZO A 0 A_Jump(80,"Rush")
    TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
    Loop
  Rush:
    TLZO A 0 A_JumpIfTargetInLOS("Strafing")
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("TLegZombieGhostA",0,0,0,0,0,0,0,128)
	TLZO A 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("TLegZombieGhostA",0,0,0,0,0,0,0,128)
	TLZO A 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("TLegendaryZombieGhostB",0,0,0,0,0,0,0,128)
	TLZO B 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("TLegendaryZombieGhostB",0,0,0,0,0,0,0,128)
	TLZO B 1 Bright A_Chase
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
    TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("TLegZombieGhostC",0,0,0,0,0,0,0,128)
	TLZO C 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("TLegZombieGhostC",0,0,0,0,0,0,0,128)
	TLZO C 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("TLegendaryZombieGhostD",0,0,0,0,0,0,0,128)
	TLZO D 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("TLegendaryZombieGhostD",0,0,0,0,0,0,0,128)
	TLZO D 1 Bright A_Chase
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_Jump(84,"See")
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	Loop
  Strafing:
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	TLZO AA 2 Bright A_GiveInventory("TLegZombieStrafing",1)
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	TLZO BB 2 Bright A_GiveInventory("TLegZombieStrafing",1)
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
    TLZO CC 2 Bright A_GiveInventory("TLegZombieStrafing",1)	
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	TLZO DD 2 Bright A_GiveInventory("TLegZombieStrafing",1)
	Goto See
  Pause:
	TLZO E 0 A_PlaySound("weapons/demontechsteam")
	TLZO EEEEEEEE 2 Bright A_GiveInventory("TLegZombieStrafing",1)
	Goto See	
  Missile:
	TNT1 A 0 A_Jump(40,"Railgun","SuperPlasma")
	TNT1 A 0 A_Jump(10,"Rage")
  Plasma:
    TNT1 A 0 A_SetShootable
    TNT1 A 0 A_UnsetInvulnerable
    TNT1 A 0 A_SetTranslucent(1)
	TLZO EEE 2 Bright A_GiveInventory("TLegZombieStrafing",1)
	TNT1 A 0 A_GiveInventory("TLegZombieStrafing",1)
	TNT1 A 0 A_CustomMissile("LegendaryProjectile",32,0,random(-4,4),0)
	TNT1 A 0 A_CustomMissile("LegendaryProjectile",32,0,random(-4,4),0)
	TLZO F 2 Bright A_PlaySoundEx("weapons/DemonTechRifle","Weapon")
	TNT1 A 0 A_Jump(24,"Pause")
	TNT1 A 0 A_SpidRefire
    TNT1 A 0 A_PlayWeaponSound("BlueDTRFire")
	Goto Plasma+5
  Railgun:
	TNT1 A 0 A_PlaySound("legendary/defense")
	TLZO E 2 Bright A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_FaceTarget
	TLZO E 2 Bright A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_FaceTarget
	TLZO E 2 Bright A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_FaceTarget
	TLZO E 2 Bright A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_FaceTarget
	TLZO E 2 Bright A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_FaceTarget
	TLZO E 2 Bright A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_FaceTarget
	TLZO E 2 Bright A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_FaceTarget
	TLZO E 2 Bright A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_FaceTarget
	TLZO E 2 Bright A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_FaceTarget
	TLZO E 2 Bright A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_FaceTarget
	TLZO E 2 Bright A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_FaceTarget
	TLZO E 2 Bright A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_FaceTarget
	TLZO E 2 Bright A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_FaceTarget
	TLZO E 2 Bright A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_FaceTarget
	TLZO E 2 Bright A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_CustomMissile("TLegZRailgunProj",32,0,random(-2,2),0)
	TLZO F 4 Bright A_PlayWeaponSound("monsters/darkcyberrail")
	TLZO E 2 Bright
	TNT1 A 0 A_Jump(256,"Plasma","See")
  SuperPlasma:
	TLZO EEE 2 Bright A_GiveInventory("TLegZombieStrafing",1)
	TNT1 A 0 A_GiveInventory("TLegZombieStrafing",1)
	TNT1 A 0 A_CustomMissile("SuperLegPlasma",32,0,random(-6,6),0)
	TLZO F 2 Bright A_PlaySoundEx("weapons/DemonTechRifle","Weapon")
    TNT1 A 0 A_PlayWeaponSound("BlueDTRFire")
	TLZO EEE 2 Bright A_GiveInventory("TLegZombieStrafing",1)
	TNT1 A 0 A_GiveInventory("TLegZombieStrafing",1)
	TNT1 A 0 A_CustomMissile("SuperLegPlasma",32,0,random(-6,6),0)
	TLZO F 2 Bright A_PlaySoundEx("weapons/DemonTechRifle","Weapon")
    TNT1 A 0 A_PlayWeaponSound("BlueDTRFire")
	TLZO EEE 2 Bright A_GiveInventory("TLegZombieStrafing",1)
	TNT1 A 0 A_GiveInventory("TLegZombieStrafing",1)
	TNT1 A 0 A_CustomMissile("SuperLegPlasma",32,0,random(-6,6),0)
	TLZO F 2 Bright A_PlaySoundEx("weapons/DemonTechRifle","Weapon")
    TNT1 A 0 A_PlayWeaponSound("BlueDTRFire")
	TLZO EEE 2 Bright A_GiveInventory("TLegZombieStrafing",1)
	TNT1 A 0 A_Jump(256,"Plasma","See")
  Rage:
	TNT1 A 0 A_SetInvulnerable
	TNT1 A 0 A_Playsound("TLegZomb/Sight",7,1,0,ATTN_NONE)
	TNT1 A 0 A_PlaySound("legendary/defense")
	TLZO EEEEEEEEEEEEEEEEEEEEEEEEEEE 2 Bright A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
  Rage2:
    TNT1 A 0 A_SetShootable
    TNT1 A 0 A_UnsetInvulnerable
    TNT1 A 0 A_SetTranslucent(1)
	TLZO EEE 2 Bright A_GiveInventory("TLegZombieStrafing",1)
	TNT1 A 0 A_GiveInventory("TLegZombieStrafing",1)
	TNT1 A 0 A_CustomMissile("SuperLegPlasma",32,0,random(-4,4),0)
	TLZO F 2 Bright A_PlaySoundEx("weapons/DemonTechRifle","Weapon")
	TNT1 A 0 A_Jump(24,"Pause")
	TNT1 A 0 A_MonsterRefire(240,"See")
    TNT1 A 0 A_PlayWeaponSound("BlueDTRFire")
	Goto Rage2+5
  Pain:
    TNT1 A 0 A_Jump(10,"Protection")
	TNT1 A 0 A_Jump(192,"PainMissile")
    TLZO G 2 Bright A_GiveInventory("TLegZombieStrafing",1)
    TLZO G 0 A_Pain
	TLZO GG 2 Bright A_GiveInventory("TLegZombieStrafing",1)
    Goto See
  PainMissile: 
    TLZO G 2 Bright A_GiveInventory("TLegZombieStrafing",1)
    TLZO G 0 A_Pain
	TLZO GG 2 Bright A_GiveInventory("TLegZombieStrafing",1)
    Goto Missile	
  Protection:
    TNT1 A 0 A_JumpIf(user_protection >= 3,"Pain")
	TNT1 A 0 A_JumpIf(user_protected == 1,"Pain")
	TNT1 A 0 A_PlaySound("legendary/defense")
	TNT1 A 0 A_FaceTarget
	TLZO E 2 Bright ACS_NamedExecuteAlways("LegendaryProtection",0,0,0,0)
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	Goto See	
  Death:
    TNT1 A 0 A_StopSound(6)
	TLZO H 5 A_Scream
    TLZO I 5 A_Fall
    TLZO J 5 A_SpawnItem("BodyCrash",0,0,0,0)
    TLZO K 5 
    TLZO L -1 
	Stop
  XDeath:
    TNT1 A 0 A_StopSound(6)
	TLZO O 3 A_SpawnItemEx("BlueGibbedGenerator",0,0,0,0,0,0,0,128,0)
    TLZO P 3 A_XScream
    TLZO R 3 A_Fall
    TLZO STUV 3 
    TLZO W -1 
    Stop
    }
}

ACTOR TLegZombieGhostA
{
Scale 1.1
Radius 20
Height 56
Speed 0
Alpha 0.7
PROJECTILE
RENDERSTYLE Translucent
+CLIENTSIDEONLY
+NOTIMEFREEZE
States
{
Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
Fade:
    TNT1 A 1
    TLZO A 2 A_FadeOut(0.10)
    Goto Fade+1
Toaster:
    TNT1 A 0
    Stop
    }
}

ACTOR TLegendaryZombieGhostB : TLegZombieGhostA
{   
States
{
Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
Fade:
    TNT1 A 1
    TLZO B 2 A_FadeOut(0.10)
    Goto Fade+1
Toaster:
    TNT1 A 0
    Stop
    }
}

ACTOR TLegZombieGhostC : TLegZombieGhostA
{   
States
{
Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
Fade:
    TNT1 A 1
    TLZO C 2 A_FadeOut(0.10)
    Goto Fade+1
Toaster:
    TNT1 A 0
    Stop
    }
}

ACTOR TLegendaryZombieGhostD : TLegZombieGhostA
{   
States
{
Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
Fade:
    TNT1 A 1
    TLZO D 2 A_FadeOut(0.10)
    Goto Fade+1
Toaster:
    TNT1 A 0
    Stop
    }
}

ACTOR TLegendaryZombieGhostE : TLegZombieGhostA
{   
States
{
Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
Fade:
    TNT1 A 1
    TLZO E 2 A_FadeOut(0.10)
    Goto Fade+1
Toaster:
    TNT1 A 0
    Stop
    }
}

ACTOR TLegendaryZombieGhostF : TLegZombieGhostA
{   
States
{
Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
Fade:
    TNT1 A 1
    TLZO F 2 A_FadeOut(0.10)
    Goto Fade+1
Toaster:
    TNT1 A 0
    Stop
    }
}

Actor TLegZombieStrafing : CustomInventory
{
  +INVENTORY.QUIET
  +INVENTORY.UNDROPPABLE
  +INVENTORY.ALWAYSPICKUP
  +INVENTORY.AUTOACTIVATE       
  +COUNTITEM
  Inventory.Amount 1
  Inventory.MaxAmount 0
  +NOTIMEFREEZE
  States
  {
  Pickup:
    NULL A 1 
	NULL A 1 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	NULL A 1 A_Jump(188,2)
	NULL A 1 A_GiveInventory("LegZombieJumping",1)
	NULL A 1 A_JumpIf(velx != 0 || vely != 0,2)
	NULL A 1 A_Jump(256,2)
	NULL A 1 A_Jump(235,5)
	NULL A 1 A_JumpIfInventory("LegZombieStrafeSens",1,3)
	NULL A 1 A_GiveInventory("LegZombieStrafeSens",1)
	NULL A 1 A_Jump(256,2)	
	NULL A 1 A_TakeInventory("LegZombieStrafeSens",1)
	NULL A 1 A_JumpIfInventory("LegZombieStrafeSens",1,3)
	NULL A 1 ThrustThing(angle*256/360+38.7,5,0,0)
	NULL A 1 A_Jump(256,2)	
	NULL A 1 ThrustThing(angle*256/360+38.7,-5,0,0)
    NULL A 1 A_FaceTarget
	NULL A 1 A_Jump(24,2)
	NULL A 1 A_JumpIfCloser(300,2)
	NULL A 1 A_Recoil(-1)
    Stop
	NULL A 1 A_Recoil(1)
    Stop	
  }
}


ACTOR TLegZRailgunProj : FastProjectile
{
Radius 6
Height 6
Speed 300
Damage (Random(20,28))
DeathSound "cyberrail/impact"
DamageType "Legendary"
MissileType "LegRevRailgunTrail"
+RIPPER
+THRUSPECIES
+EXTREMEDEATH
+NOTIMEFREEZE
+BLOODLESSIMPACT
+NOTIMEFREEZE
States
{
Spawn:
    TNT1 A 1
    Loop
Death:
	TNT1 A 0
	TNT1 AA 0 A_CustomMissile("LegendarySmokeFX4",0,0,random(0,360),2,random(0,360))
    TNT1 AAAAAA 0 A_SpawnItemEx("BlueKaboom",random(-32,32),random(-40,40),random(8,16),random(-4,4),random(-4,4),random(0,4),0,SXF_TRANSFERPOINTERS)
	TNT1 A 1 A_SpawnItem("RailgunImpact")
	Stop
	}
}

Actor SuperLegPlasma : LegendaryProjectile
{
Projectile
Height 10
Radius 8
Scale 1
Speed 40
FastSpeed 60
Renderstyle Add
Damage (random(30,40))
Damagetype "Legendary"
States
	{
	Spawn:
		FNBE A 1 Bright A_SpawnItemEx("SuperLegPlasmaTrail",random(3,-3),random(3,-3),random(3,-3),random(1,-1),random(1,-1),random(1,-1),random(0,360))
		Loop
	Death:
		NULL A 0
		TNT1 A 0 A_Explode(120,120)
		NULL A 0 A_SpawnItemEx("BlueParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
		TNT1 AA 0 A_CustomMissile("LegendarySmokeFX4",0,0,random(0,360),2,random(0,360))
		TNT1 AAAAAA 0 A_SpawnItemEx("BlueKaboom",random(-32,32),random(-40,40),random(8,16),random(-4,4),random(-4,4),random(0,4),0,SXF_TRANSFERPOINTERS)
		TNT1 A 0 A_SpawnItem("RailgunImpact")
		TNT1 AAAAAAAAAA 0 A_CustomMissile("BouncyLegProjectile", 0, 0, random(0,360), 2, random(0,360))
		FNBE AAAAAAAAAAAAA 2 Bright A_FadeOut(0.1)
		Stop
	}
}

Actor SuperLegPlasmaTrail : AHellionSmoke
{
Scale 0.8
RenderStyle Add
States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
    FNBE AAAAAAAAAAAAAAAAAAAAAAAA 1 Bright A_FadeOut(0.05,1)
    Stop
  Toaster:
    TNT1 A 0
    Stop
  }
}

Actor BouncyLegProjectile : LegendaryProjectile
{
Speed 20
Bouncetype Hexen
Bouncecount 3
}