Actor ImprovedTrooper
{
//Creator: ConsulCast
//Origin: Nexus Infinity
//Sprite: PTRO
//Title: "Improved Trooper"
Health 750
Mass 100
Speed 20
Painchance 35
Radius 20
Height 56
BloodColor "Black"
Monster
DamageFactor 0.75
//DamageFactor "PlayerNemesisPlasma", 0.0
DamageFactor "Explosion", 0.2
DamageFactor "PlayerDTRG", 0.4
DamageFactor "DTRailgun", 0.4
DamageFactor "PDTPuff", 0.4
DamageFactor "RailG", 0.3
DamageFactor "PlayerPyro", 0.1
DropItem "NemesisHealthBonusMax", 256, 16
DropItem "NemesisArmorBonus32", 256
DropItem "NemesisHealthBonusMax", 256, 16
DropItem "NemesisArmorBonus32", 256
DropItem "NemesisHealthBonusMax", 256, 16
DropItem "NemesisArmorBonus32", 256
Obituary "%o was shot by an Improved Trooper."
Tag "Improved Trooper"
SeeSound "superzombie/sight"
PainSound "superzombie/pain"
DeathSound "superzombie/death"
ActiveSound "superzombie/active"
AttackSound ""
+MISSILEMORE
+MISSILEEVENMORE
+NOPAIN
+NOBLOOD
+FLOORCLIP
+BRIGHT
var int user_amount;
var int user_missile;
States
{
  Spawn:
	PTRO A 10 A_Look
	PTRO "Z" 10 A_Look
	Loop 
  See:
	TNT1 A 0 A_UnSetInvulnerable
	TNT1 A 0 A_Jump(30,"Rush")
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	PTRO AABB 3 A_Chase
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	PTRO CCDD 3 A_Chase
	TNT1 A 0 A_Jump(40,"Teleport")
	Loop
  Rush:
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_Chase
	PTRO A 2 A_SpawnItemEx("ProtoTrooperGhost")
	TNT1 A 0 A_Chase
	PTRO A 2 A_SpawnItemEx("ProtoTrooperGhost")
	TNT1 A 0 A_Chase
	PTRO B 2 A_SpawnItemEx("ProtoTrooperGhost")
	TNT1 A 0 A_Chase
	PTRO B 2 A_SpawnItemEx("ProtoTrooperGhost")
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_Chase
	PTRO C 2 A_SpawnItemEx("ProtoTrooperGhost")
	TNT1 A 0 A_Chase
	PTRO C 2 A_SpawnItemEx("ProtoTrooperGhost")
	TNT1 A 0 A_Chase
	PTRO D 2 A_SpawnItemEx("ProtoTrooperGhost")
	TNT1 A 0 A_Chase
	PTRO D 2 A_SpawnItemEx("ProtoTrooperGhost")  
	TNT1 A 0 A_Jump(38,"Teleport")
	TNT1 A 0 A_Jump(75,"See")  	
	Loop
  Teleport:
	PTRO E 1 A_UnSetShootable
	TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("TerminatorLineSpawner")
	PTRO EEEEEEEEEEE 1 A_FadeOut(0.1,0)
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	PTRO E 1 A_PlayWeaponSound("boss/teleport")
	TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("TerminatorLineSpawner")
	PTRO EEEEEEEEEEE 1 A_FadeIn(0.1)
	PTRO E 1 A_SetShootable
	Goto See
  Missile:
	TNT1 A 0 A_UnSetInvulnerable
	TNT1 A 0 A_SetTranslucent(1)
	TNT1 A 0 A_Jump(84,"BFG10K")
  ExplosiveMinigun:  	
	PTRO E 2 A_FaceTarget
	TNT1 A 0 A_GiveInventory("HEMCommandoStrafing", 1)
	PTRO E 2 A_GiveInventory("HEMCommandoStrafing", 1)
	TNT1 A 0 A_SpawnItemEx("OrangeShellCasing",10,-12,40,Random(2,6),0,Random(1,3),Random(-80,-90),128)
	TNT1 A 0 A_PlaySound("sentient/fire",1)
	PTRO F 2 A_CustomMissile("MinigunnerExplosiveTracer",28,0,frandom(-8,8))	
	TNT1 A 0 A_Jump(15,"See","Missile")
	TNT1 A 0 A_SpidRefire
	Loop
  BFG10K:
	TNT1 A 0 A_PlaySound("weapons/charge15k")
	TNT1 A 0 A_SetUserVar(user_missile,0)
	PTRO EEEEEE 4 A_FaceTarget
  BFG10KShoot:
	TNT1 A 0 A_JumpIf(user_missile > 8,"BFG10KEnd")
	TNT1 A 0 A_SetUserVar(user_missile,user_missile+1)
	PTRO E 4 A_FaceTarget
	PTRO E 4 A_PlaySound("weapons/bfg15kfire",1)
	PTRO F 3 A_CustomMissile("Cardinal10k",28,0,random(-4,4))
	Loop
  BFG10KEnd:
	PTRO E 12 A_PlaySound("weapons/bfg15kcooldown",CHAN_AUTO)
	Goto See	
  Death:
	PTRO I 5 A_Scream
	PTRO J 5 
	PTRO K 5 A_Fall
	PTRO L 5 
	PTRO M 5 A_Spawnitem("BodyCrash")
	TNT1 A 0 A_ChangeFlag(BRIGHT,0)
	PTRO N -1 
	Stop
  Raise:
	TNT1 A 0 A_ChangeFlag(BRIGHT,1)
	TNT1 A 0 A_SpawnItemEx("VileHealEffect",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
    PTRO MLKJI 5
    Goto See
	}
}

ACTOR ProtoTrooperGhost
{
Renderstyle Translucent
Alpha 0.75
+NOINTERACTION
+CLIENTSIDEONLY
+NOTIMEFREEZE
States
{
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1,"NULL")
    PTRO A 2 A_FadeOut(0.18)
    Wait
    }
}