ACTOR "Incendiary Enforcer" : "Enforcer" 31073
{
    //$Category DN3D Aliens //Enforcers
	Obituary "%o was roasted by a Incendiary Enforcer."
    Health 330
    DropItem "Incinerator" 64 25
    DropItem "Incinerator Ammo" 86 25
	DamageFactor "Fire", 0.0
    States
    {
    Spawn:
        ENIN A 0
        ENIN A 0 Thing_ChangeTID(0,1000)
        ENIN A 2 A_Look
        Loop
    See:
	    ENIN A 0
	    ENIN A 0 A_ChangeFlag("NOPAIN",0)
		ENIN A 0 A_StopSoundEx("SoundSlot7")		
		ENIN AABB 3 A_Chase
		ENIN B 0 A_SpawnItem("AlienStep1",0,0,0,0)
		ENIN CCDD 3 A_Chase
		ENIN D 0 A_SpawnItem("AlienStep1",0,0,0,0)
		ENIN D 0 A_Jump(1,"Dump")
		ENIN D 0 A_Jump(32,"Lunge")
        Loop		
    Dump: 
        ENIN A 0 A_Jump(8,5)
        ENIN A 0 A_JumpIfInventory("TookADump",1,"See")
        ENIN A 0 A_PlaySound("Lizard/Active",6)
        ENIN L 35 A_GiveInventory("TookADump")
		ENIN A 0 A_PlaySound("Lizard/Shit")
        ENIN L 0 A_SpawnItem("LizardDump",4)
        Goto See
        ENIN L 0 A_GiveInventory("TookADump")
        Goto See
    Missile:
	    ENIN E 0 A_JumpIfCloser(260,"Flamer")
		ENIN E 0 A_JumpIfCloser(7000,"Missile2")
        ENIN A 0 A_PlaySound("Lizard/Spit",6)
        ENIN GGGHHH 5 A_FaceTarget
        ENIN A 0 A_CustomMissile("LizardSpit",32,0,0)
        Goto See
	Flamer:
	    ENIN E 0 
        ENIN E 10 A_FaceTarget
        ENIN E 0 A_PlaySoundEx("FireFlyFlamer/Shoot",Auto)
        ENIN E 1 A_FaceTarget
        ENIN F 1 Bright A_CustomMissile("FlameThrowerAlienFire",26,14,Random(-5,5))
		ENIN E 1 
        ENIN F 1 Bright A_CustomMissile("FlameThrowerAlienFire",26,14,Random(-5,5))
		ENIN E 1 
        ENIN F 1 Bright A_CustomMissile("FlameThrowerAlienFire",26,14,Random(-5,5))
		ENIN E 0 A_PlaySoundEx("FireFlyFlamer/Shoot",Auto)
        ENIN E 1 A_FaceTarget
        ENIN F 1 Bright A_CustomMissile("FlameThrowerAlienFire",26,14,Random(-5,5))
		ENIN E 1 
        ENIN F 1 Bright A_CustomMissile("FlameThrowerAlienFire",26,14,Random(-5,5))
		ENIN E 1 
        ENIN F 1 Bright A_CustomMissile("FlameThrowerAlienFire",26,14,Random(-5,5))
		ENIN E 0 A_PlaySoundEx("FireFlyFlamer/Shoot",Auto)
        ENIN E 1 A_FaceTarget
        ENIN F 1 Bright A_CustomMissile("FlameThrowerAlienFire",26,14,Random(-5,5))
		ENIN E 1 
        ENIN F 1 Bright A_CustomMissile("FlameThrowerAlienFire",26,14,Random(-5,5))
		ENIN E 1 
        ENIN F 1 Bright A_CustomMissile("FlameThrowerAlienFire",26,14,Random(-5,5))
		ENIN E 0 A_PlaySoundEx("FireFlyFlamer/Shoot",Auto)
        ENIN E 1 A_FaceTarget
        ENIN F 1 Bright A_CustomMissile("FlameThrowerAlienFire",26,14,Random(-5,5))
		ENIN E 1 
        ENIN F 1 Bright A_CustomMissile("FlameThrowerAlienFire",26,14,Random(-5,5))
		ENIN E 1 
        ENIN F 1 Bright A_CustomMissile("FlameThrowerAlienFire",26,14,Random(-5,5))
		ENIN E 0 A_PlaySoundEx("FireFlyFlamer/Shoot",Auto)
        ENIN E 1 A_FaceTarget
        ENIN F 1 Bright A_CustomMissile("FlameThrowerAlienFire",26,14,Random(-5,5))
		ENIN E 1 
        ENIN F 1 Bright A_CustomMissile("FlameThrowerAlienFire",26,14,Random(-5,5))
		ENIN E 1 
        ENIN F 1 Bright A_CustomMissile("FlameThrowerAlienFire",26,14,Random(-5,5))
        ENIN E 10 A_CPosRefire
        Goto Missile
    Missile2:	
		ENIN E 10 A_FaceTarget
		ENIN E 0 A_PlayWeaponSound("Devastator/Shoot")
        ENIN F 8 Bright A_CustomMissile("IncineratorEnforcerAttack",32,14,Random(-5,5))
        ENIN E 5 
		ENIN E 5 A_Jump(128,1)
        Goto See
		ENIN E 10 A_FaceTarget
		ENIN E 0 A_PlayWeaponSound("Devastator/Shoot")
        ENIN F 8 Bright A_CustomMissile("IncineratorEnforcerAttack",32,14,Random(-5,5))
        ENIN E 5 
		ENIN E 5 A_Jump(128,1)
        Goto See
		ENIN E 10 A_FaceTarget
		ENIN E 0 A_PlayWeaponSound("Devastator/Shoot")
        ENIN F 8 Bright A_CustomMissile("IncineratorEnforcerAttack",32,14,Random(-5,5))
        ENIN E 5 
		ENIN E 5 A_Jump(96,1)
        Goto See
		ENIN E 10 A_FaceTarget
		ENIN E 0 A_PlayWeaponSound("Devastator/Shoot")
        ENIN F 8 Bright A_CustomMissile("IncineratorEnforcerAttack",32,14,Random(-5,5))
        ENIN E 5 
		ENIN E 5 A_Jump(64,1)
        Goto See
		ENIN E 10 A_FaceTarget
		ENIN E 0 A_PlayWeaponSound("Devastator/Shoot")
        ENIN F 8 Bright A_CustomMissile("IncineratorEnforcerAttack",32,14,Random(-5,5))
        ENIN E 10 
        Goto See
    Lunge: 
        ENIN G 0 A_PlaySound("Lizard/Active",6)
		ENIN G 0 A_ChangeFlag(SLIDESONWALLS,1)
        ENIN G 10 A_FaceTarget
        ENIN I 1 ThrustThingZ(0,56,0,1)
		ENIN I 1 A_Recoil(-5)
		ENIN IIIII 1 A_CheckFloor("EnforcerLand")
		ENIN I 0 A_Recoil(-5)
		ENIN IIIII 1 A_CheckFloor("EnforcerLand")
		ENIN I 0 A_Recoil(-5)
		ENIN IIIII 1 A_CheckFloor("EnforcerLand")
		ENIN JJJJJJJ 1 A_CheckFloor("EnforcerLand")
		ENIN KKKKKKKK 1 A_CheckFloor("EnforcerLand")
		ENIN K 1 A_Recoil(1)
	    ENIN K 1 A_CheckFloor("EnforcerLand")
		Goto Lunge+37
	EnforcerLand:
        ENIN G 10 A_ScaleVelocity(0.6)
		ENIN G 0 A_ChangeFlag(SLIDESONWALLS,0)
	    ENIN G 0 A_ScaleVelocity(0)
        Goto See
    Pain:
        ENIN S 0
        ENIN S 8 A_Pain
        Goto See
	Pain.LaserShot:
	    ENIN S 0
		ENIN S 0 A_SpawnItemEx("PainTripLaser",0,0,5)
		ENIN S 0 HealThing(2)
		Goto See	
	Pain.Radial:
        ENIN S 0
        ENIN S 0 HealThing(2)
        Goto See
	Death:	
	    ENIN M 0
		ENIN M 0 A_JumpIfInventory("FireCheckDeath",1,"Burn")
		ENIN M 0 A_ChangeFlag("NOPAIN",0)
		ENIN M 0 A_StopSoundEx("SoundSlot7")
		ENIN M 0 A_Jump(256,1,7)
		ENIN M 5 A_Scream
        ENIN N 5
        ENIN O 5 A_NoBlocking
        ENIN PQ 5
        ENIN R -1 
        Stop
		ENI2 M 5 A_Scream
        ENI2 N 5
        ENI2 O 5 A_NoBlocking
        ENI2 PQ 5
		ENI2 R 1 A_GiveInventory("Death2Check",1)
		ENI2 R -1 
        Stop
    Death.Damage_Shrinker:
        ENIN A 0
		ENIN A 0 A_StopSoundEx("Body")
		ENIN A 0 A_StopSoundEx("SoundSlot7")
		ENIN A 0 A_ChangeFlag("NOPAIN",0)
        ENIN A 10 A_PlaySound("Shrinker/Shrink")
		ENIN A 1 A_SetScale(0.70,0.70)
        ENIN A 1 A_SetScale(0.68,0.68)
        ENIN A 1 A_SetScale(0.66,0.66)
        ENIN A 1 A_SetScale(0.64,0.64)
        ENIN A 1 A_SetScale(0.62,0.62)
        ENIN A 1 A_SetScale(0.60,0.60)
        ENIN A 1 A_SetScale(0.58,0.58)
        ENIN A 1 A_SetScale(0.56,0.56)
        ENIN A 1 A_SetScale(0.54,0.54)
        ENIN A 1 A_SetScale(0.52,0.52)
        ENIN A 1 A_SetScale(0.50,0.50)
        ENIN A 1 A_SetScale(0.48,0.48)
        ENIN A 1 A_SetScale(0.46,0.46)
        ENIN A 1 A_SetScale(0.44,0.44)
        ENIN A 1 A_SetScale(0.42,0.42)
        ENIN A 1 A_SetScale(0.40,0.40)
        ENIN A 1 A_SetScale(0.38,0.38)
        ENIN A 1 A_SetScale(0.36,0.36)
        ENIN A 1 A_SetScale(0.34,0.34)
        ENIN A 1 A_SetScale(0.32,0.32)
        ENIN A 1 A_SetScale(0.30,0.30)
        ENIN A 1 A_SetScale(0.28,0.28)
        ENIN A 1 A_SetScale(0.26,0.26)
        ENIN A 1 A_SetScale(0.24,0.24)
        ENIN A 1 A_SetScale(0.22,0.22)
        ENIN A 1 A_SetScale(0.20,0.20)
		ENIN A 0 A_SpawnItemEx("Incendiary Enforcer Shrunken",0,0,0,0,0,0,0,32,0)
        Stop
    Death.Damage_Explosion:
	Death.Damage_BigShock:
	Death.Damage_BigThunder:
		ENIN A 0
		ENIN A 0 A_ChangeFlag("NOPAIN",0)
		ENIN A 0 A_StopSoundEx("Body")
		ENIN A 0 A_StopSoundEx("SoundSlot7")
        ENIN A 0 A_PlaySound("Gib/Explode",5)
        ENIN A 0 A_NoBlocking
        ENIN AAA 0 A_SpawnDebris("DukeGibs1")
        ENIN AAA 0 A_SpawnDebris("DukeGibs2")
		ENIN AAA 0 A_SpawnDebris("DukeGibs3")
        ENIN AAA 0 A_SpawnDebris("DukeGibs4")
        ENIN AAA 0 A_SpawnDebris("DukeGibs5")		
        ENIN AAAAAAAAA 0 A_SpawnDebris("DukeGibs6")
	    TNT1 A 1
	    Stop
    Death.Damage_Expander:
        ENIN A 0
		ENIN A 0 A_StopSoundEx("Body")
		ENIN A 0 A_StopSoundEx("SoundSlot7")
		ENIN A 1 A_PlaySound("Expander/Expand",5)
		ENIN A 1 A_SetScale(0.71,0.71)
        ENIN A 1 A_SetScale(0.72,0.72)
		ENIN A 1 A_SetScale(0.73,0.73)
		ENIN A 1 A_SetScale(0.74,0.74)
		ENIN A 1 A_SetScale(0.75,0.75)
		ENIN A 1 A_SetScale(0.76,0.76)
		ENIN A 1 A_SetScale(0.77,0.77)
		ENIN A 1 A_SetScale(0.78,0.78)
		ENIN A 1 A_SetScale(0.79,0.79)
		ENIN A 1 A_SetScale(0.80,0.80)
		ENIN A 1 A_SetScale(0.81,0.81)
		ENIN A 1 A_SetScale(0.82,0.82)
		ENIN A 1 A_SetScale(0.83,0.83)
		ENIN A 1 A_SetScale(0.84,0.84)
		ENIN A 1 A_SetScale(0.85,0.85)
		ENIN A 1 A_SetScale(0.86,0.86)
		ENIN A 1 A_SetScale(0.87,0.87)
		ENIN A 1 A_SetScale(0.88,0.88)
		ENIN A 1 A_SetScale(0.89,0.89)
		ENIN A 1 A_SetScale(0.90,0.90)
		ENIN A 1 A_SetScale(0.91,0.91)
		ENIN A 1 A_SetScale(0.92,0.92)
		ENIN A 1 A_SetScale(0.93,0.93)
		ENIN A 1 A_SetScale(0.94,0.94)
		ENIN A 1 A_SetScale(0.95,0.95)
		ENIN A 1 A_SetScale(0.96,0.96)
		ENIN A 1 A_SetScale(0.97,0.97)
		ENIN A 1 A_SetScale(0.98,0.98)
		ENIN A 1 A_SetScale(0.99,0.99)
		ENIN A 1 A_SetScale(1.00,1.00)
		ENIN A 1 A_SetScale(1.01,1.01)
		ENIN A 1 A_SetScale(1.02,1.02)
		ENIN A 1 A_SetScale(1.03,1.03)
		ENIN A 1 A_SetScale(1.04,1.04)
		ENIN A 1 A_SetScale(1.05,1.05)
		ENIN A 1 A_SetScale(1.06,1.06)
		ENIN A 1 A_SetScale(1.07,1.07)
		ENIN A 1 A_SetScale(1.08,1.08)
		ENIN A 1 A_SetScale(1.09,1.09)
		ENIN A 1 A_SetScale(1.10,1.10)
		ENIN A 1 A_SetScale(1.11,1.11)
		ENIN A 1 A_SetScale(1.12,1.12)
		ENIN A 1 A_SetScale(1.13,1.13)
		ENIN A 1 A_SetScale(1.14,1.14)
        ENIN A 25 A_SetScale(1.15,1.15)
        ENIN A 0 A_SpawnItemEx("ExpanderExplosion",0,0,32,0,0,0,0,SXF_ABSOLUTEVELOCITY,0)
        Goto Death.Damage_Explosion
	Raise:
	    TNT1 A 0 
	    TNT1 A 0 A_UnSetShootable
		TNT1 A 0 A_ChangeFlag("COUNTKILL",0)
		TNT1 A 0 A_ChangeFlag("SOLID",0)
	    ENIN R 0 A_JumpIfInventory("FireCheckDeath",1,"Raise2")
		ENIN R 0 A_JumpIfInventory("Death2Check",1,2)
		ENIN R 35
		Stop
		ENI2 R 0
		ENI2 R 35
		Stop
        }
}

ACTOR "Incendiary Enforcer Shrunken" 
{
    Health 30
    Radius 20
    Height 16
    Mass 0x7FFFFFFF
    Speed 3
    PainChance 128
    SeeSound "Lizard/Sight"
    PainSound "Lizard/Pain"
    DeathSound "Lizard/Death"
    ActiveSound "Lizard/Active"
	BloodColor "D1 0C 00" 
	Species "Alien"
    Scale 0.20
	DamageFactor "Damage_Foot", 5.0
	DamageFactor "LaserExplosion", 0.0
    DamageFactor "Damage_Shrinker", 0.0
	DamageFactor "Trip_Punch", 0.0
	Painchance "LaserShot", 256
	+ISMONSTER
	+SHOOTABLE
    +SOLID
	+NOTARGET
	+FRIGHTENED
    States
    {
    Spawn:
        ENIN A 0 
		ENIN A 0 A_JumpIfInventory("ShrunkenCheck",40,"Restore")
		ENIN A 0 A_GiveInventory("ShrunkenCheck",1)
        ENIN AAAAAAAA 3 A_Look
        Loop
    See:
	    ENIN A 0 
	    ENIN A 0 A_ChangeFlag("NOPAIN",0)
		ENIN A 0 A_StopSoundEx("Body")
		ENIN A 0 A_StopSoundEx("SoundSlot7")
		ENIN A 0 A_JumpIfInventory("ShrunkenCheck",40,"Restore")
		ENIN A 0 A_GiveInventory("ShrunkenCheck",1)
		ENIN AABB 3 A_Chase
		ENIN B 0 A_SpawnItem("AlienStep1",0,0,0,0)
		ENIN CCDD 3 A_Chase
		ENIN D 0 A_SpawnItem("AlienStep1",0,0,0,0)
        Loop
    Pain:
		ENIN S 8 A_Pain
        Goto See 
	Pain.LaserShot:
	    ENIN S 0 
		ENIN S 0 A_SpawnItemEx("PainTripLaser",0,0,8)
		ENIN S 0 HealThing(2)
		Goto See
	Pain.Radial:
        ENIN S 0
        ENIN S 0 HealThing(2)
        Goto See
	Restore:
	    ENIN A 0
		ENIN A 0 A_StopSoundEx("Body")
		ENIN A 0 A_StopSoundEx("SoundSlot7")
		ENIN A 0 A_ChangeFlag("NOPAIN",0)
        ENIN A 10 A_PlaySound("Shrinker/Shrink")
		ENIN A 1 A_SetScale(0.20,0.20)
        ENIN A 1 A_SetScale(0.22,0.22)
        ENIN A 1 A_SetScale(0.26,0.24)
        ENIN A 1 A_SetScale(0.24,0.24)
        ENIN A 1 A_SetScale(0.28,0.28)
        ENIN A 1 A_SetScale(0.30,0.30)
        ENIN A 1 A_SetScale(0.32,0.32)
        ENIN A 1 A_SetScale(0.34,0.34)
        ENIN A 1 A_SetScale(0.36,0.36)
        ENIN A 1 A_SetScale(0.38,0.38)
        ENIN A 1 A_SetScale(0.40,0.40)
        ENIN A 1 A_SetScale(0.42,0.42)
        ENIN A 1 A_SetScale(0.44,0.44)
        ENIN A 1 A_SetScale(0.46,0.46)
        FNPU A 1 A_SetScale(0.48,0.48)
        ENIN A 1 A_SetScale(0.50,0.50)
        ENIN A 1 A_SetScale(0.52,0.52)
        ENIN A 1 A_SetScale(0.54,0.54)
        ENIN A 1 A_SetScale(0.56,0.56)
        ENIN A 1 A_SetScale(0.58,0.58)
        ENIN A 1 A_SetScale(0.60,0.60)
        ENIN A 1 A_SetScale(0.62,0.62)
        ENIN A 1 A_SetScale(0.64,0.64)
        ENIN A 1 A_SetScale(0.66,0.66)
        ENIN A 1 A_SetScale(0.68,0.68)
        ENIN A 1 A_SetScale(0.70,0.70)
		ENIN A 0 A_SpawnItemEx("Incendiary Enforcer",0,0,0,0,0,0,0,32,0)
        Stop
	Death:
	    ENIN A 0
		ENIN A 0 A_StopSoundEx("Body")
		ENIN A 0 A_StopSoundEx("SoundSlot7")
		ENIN A 0 A_ChangeFlag("NOPAIN",0)
		ENIN A 0 A_Stop
        ENIN A 0 A_PlaySound("DukeNukem/DeathLittle",5)
        ENIN A 0 A_NoBlocking
        ENIN A 0 A_SpawnDebris("DukeGibs1")
        ENIN A 0 A_SpawnDebris("DukeGibs2")
		ENIN A 0 A_SpawnDebris("DukeGibs3")
        ENIN A 0 A_SpawnDebris("DukeGibs4")
        ENIN A 0 A_SpawnDebris("DukeGibs5")		
        ENIN AAAAA 0 A_SpawnDebris("DukeGibs6")
	    TNT1 A 1
	    Stop
    }
}

ACTOR FlameThrowerAlienFire 
{
	Projectile
	RenderStyle Add
	Scale 0.3
	Radius 2
	Height 2
	Speed 20
	Damage (Random(1,2))
	DamageType "Fire"
	Decal "Scorch"
	+BLOODLESSIMPACT
	+THRUGHOST
	States 
	{
	Spawn:
	    TNT1 A 0
	    TNT1 A 0 A_JumpIF(WaterLevel>1,"Death2")
		FLMX ABCDEFGHIJK 2 Bright A_Explode(16,128,0)
		FLMX LMNO 2 Bright A_FadeOut(0.16)
		Stop
	Death:
		TNT1 A 1 A_Explode(18,128)
		Stop
	Death2:
		INFP A 1 Bright A_Stop
		INFP AAAAAA 0 A_CustomMissile("IncineratorAttackFX",0,0,FRandom(0,360),2,FRandom(0,360))
		INFP BCDEFGHIJKLMNOP 1 Bright
		Stop
	}
}

ACTOR IncineratorEnforcerAttack
{
	Radius 5
	Height 5
	Speed 20
	Damage (Random(72,85))
	DamageType "Fire"
	DeathSound "Incinerator/Explode"
	RenderStyle Add
	Scale 0.40
	Decal "Scorch"
	Projectile
	+BLOODLESSIMPACT
	+THRUGHOST
	States
	{
	Spawn:
	    TNT1 A 0
	    TNT1 A 0 A_JumpIF(WaterLevel>1,"Death2")
		BLHD AB 1 Bright A_SpawnItemEx("IncineratorAttackTrail",0,0,1)
		Loop
	Death:
        INFP A 1 Bright 
		INFP AAAAAA 0 A_CustomMissile("IncineratorAttackFX",0,0,FRandom(0,360),2,FRandom(0,360))
		INFP BCDEFGHIJKLMNOP 1 Bright 
		Stop
	Death2:
		INFP A 1 Bright A_Stop
		INFP AAAAAA 0 A_CustomMissile("IncineratorAttackFX",0,0,FRandom(0,360),2,FRandom(0,360))
		INFP BCDEFGHIJKLMNOP 1 Bright
		Stop
	    }
}