


// ------------------------------------------------------------
//   Former Human
// ------------------------------------------------------------

ACTOR ZombieStormtrooper : ZombieMan replaces ZombieMan
{
	Translation "58:66=128:136","214:223=141:148", "176:191=24:47","16:34=68:79"
	Health 70
	Speed 8
	Height 52
	Radius 16
	+MISSILEEVENMORE
	Decal "BulletScratch"
	AttackSound ""
	MeleeSound "weapons/smack"
	MeleeDamage 3
	DropItem ZM66Rifle
	DropItem Clip 56 16
	DropItem HDPistolDrop 16
	PainChance 250
	Obituary "%o was shot up by a zombieman."
	HitObituary "%o was beaten up by a zombieman."
	States
	{
	Missile:
		POSS E 4 A_Jump (128, 1)
		POSS E 4 A_Jump (128, 1)
		POSS E 12 A_FaceTarget
		POSS E 0 A_JumpIfCloser (500, "CQBBurst")
	SnipeBurst:
		POSS E 6
		POSS F 0 A_PlayWeaponSound ("weapons/rifle")
		POSS F 2 bright A_CustomBulletAttack (2, 2, 1, 8, "BulletPuffBig")
		TNT1 A 0 A_SpawnItem ("DistantRifle", 1, 1, 0, 0)
		POSS E 1 A_ChangeFlag ("frightened", 0)
		POSS E 0 A_Jump (100, "PostSnipeBurst")

		POSS F 0 BRIGHT A_PlayWeaponSound ("weapons/rifle")
		POSS F 0 bright A_CustomBulletAttack (2, 3, 1, 8, "BulletPuffBig")
		TNT1 A 0 A_SpawnItem ("DistantRifle", 1, 1, 0, 0)
		POSS E 1 A_Jump (100, "PostSnipeBurst")

		POSS F 0 BRIGHT A_PlayWeaponSound ("weapons/rifle")
		POSS F 2 BRIGHT A_CustomBulletAttack (3, 4, 1, 8, "BulletPuffBig")
		TNT1 A 0 A_SpawnItem ("DistantRifle", 1, 1, 0, 0)
		POSS E 1 A_Jump (164, "PostSnipeBurst")

		goto AggroPost
	CQBBurst:
		POSS F 0 BRIGHT A_PlayWeaponSound ("weapons/rifle")
		POSS F 2 BRIGHT A_CustomBulletAttack (3, 4, 1, 8, "BulletPuffBig")
		TNT1 A 0 A_SpawnItem ("DistantRifle", 1, 1, 0, 0)
		POSS E 1 A_ChangeFlag ("frightened", 0)

		POSS F 0 BRIGHT A_PlayWeaponSound ("weapons/rifle")
		POSS F 2 BRIGHT A_CustomBulletAttack (4, 5, 1, 8, "BulletPuffBig")
		TNT1 A 0 A_SpawnItem ("DistantRifle", 1, 1, 0, 0)
		POSS E 1 A_Jump (64, "PostCQBBurst")

		POSS F 0 BRIGHT A_PlayWeaponSound ("weapons/rifle")
		POSS F 2 BRIGHT A_CustomBulletAttack (5, 6, 1, 8, "BulletPuffBig")
		TNT1 A 0 A_SpawnItem ("DistantRifle", 1, 1, 0, 0)
		POSS E 1 A_Jump (96, "PostCQBBurst")

		POSS F 0 BRIGHT A_PlayWeaponSound ("weapons/rifle")
		POSS F 2 BRIGHT A_CustomBulletAttack (6, 7, 1, 8, "BulletPuffBig")
		TNT1 A 0 A_SpawnItem ("DistantRifle", 1, 1, 0, 0)
		POSS E 1 A_Jump (96, "PostCQBBurst")

		POSS F 0 BRIGHT A_PlayWeaponSound ("weapons/rifle")
		POSS F 2 BRIGHT A_CustomBulletAttack (7, 8, 1, 8, "BulletPuffBig")
		TNT1 A 0 A_SpawnItem ("DistantRifle", 1, 1, 0, 0)
		POSS E 1 A_Jump (96, "PostCQBBurst")

		goto AggroPost
	PostSnipeBurst:
		POSS E 12 A_Jump (60, "AggroPost")
		Goto See
	PostCQBBurst:
		POSS E 6 A_Jump (80, "AggroPost")
		Goto See
	AggroPost:
		POSS E 12 A_CPosRefire
		Goto Missile+1
	See:
		TNT1 A 0 A_JumpIfHealthLower (20, "BleedOut")
		POSS AABBCCDD 2 A_Chase
		TNT1 A 0 A_JumpIfTargetInLOS ("See")
	Roam:
		TNT1 A 0 A_Jump (216, 1)
		goto See
		TNT1 A 0 A_JumpIfTargetInLOS ("See")
		TNT1 A 0 A_Jump (200, 2)
		TNT1 A 0 HealThing (random(8,24))
		POSS AA 2 A_Chase
		POSS BBCCDD 2 A_Wander
		TNT1 A 0 A_Jump (200, "Roam")
		TNT1 A 0 A_AlertMonsters
		Loop
	BleedOut:
		TNT1 A 0 A_ChangeFlag ("nopain", 1)
		TNT1 AAAA 0 A_SpawnItemEx ("BleedOut",0,0,32,0,0,0,0,32)
		POSS A 1
		TNT1 A 0 A_ChangeFlag ("nopain", 0)
		TNT1 A 0 A_Jump (256, "See")
	Melee:
		POSS C 8 A_FaceTarget
		POSS D 4
		POSS E 4 A_MeleeAttack

		POSS E 3 A_JumpIfCloser (64, 2)

		POSS E 4 A_FaceTarget
		Goto Missile+1

		POSS A 4
		Goto See
	Pain:
		POSS G 2 A_Jump (136, 3)
		POSS G 3 A_Pain
		TNT1 A 0 A_Jump (200, 2)
		TNT1 A 0 A_AlertMonsters
		POSS G 0 A_JumpIfCloser (100, "See")
		POSS G 0 A_ChangeFlag ("frightened", 1)
		POSS ABCD 2 A_Chase
		POSS D 0 A_ChangeFlag ("frightened", 0)
		Goto See
	Death:
		TNT1 A 0 A_GivetoTarget("HDKillCount",1)
		TNT1 A 0 ACS_ExecuteAlways(558,0,0,1,10)
		POSS H 5 A_SpawnItemEx ("tempshield", 0,0,0, velx,vely,velz, 0,40)
		POSS I 5 A_Scream
		TNT1 A 0 A_SpawnItemEx ("tempshield2", 0,0,0, velx,vely,velz, 0,40)
		POSS I 0 A_SpawnItemEx ("MegaBloodSplatter", 0,0,34, 0,0,0, 0,160)
		POSS J 5 A_NoBlocking
		POSS K 5
		POSS L -1
		Stop
	XDeath:
		TNT1 A 0 A_GivetoTarget("HDKillCount",1)
		TNT1 A 0 ACS_ExecuteAlways(558,0,0,1,10)
		POSS M 5
		POSS M 0 A_SpawnItemEx ("MegaBloodSplatter", 0,0,34, 0,0,0, 0,160)
		POSS N 5 A_XScream
		POSS N 0 A_SpawnItemEx ("MegaBloodSplatter", 0,0,34, 0,0,0, 0,160)
		POSS O 5 A_NoBlocking
		POSS O 0 A_SpawnItemEx ("MegaBloodSplatter", 0,0,34, 0,0,0, 0,160)
		POSS PQRST 5
		POSS U -1
		Stop
	}
}


// ------------------------------------------------------------
//   Former Human Sergeant
// ------------------------------------------------------------

ACTOR Jackboot : ShotgunGuy replaces ShotgunGuy
{
	Translation "58:66=128:136","214:223=141:148", "176:191=24:47","16:34=68:79"
	Health 80
	Speed 10
	Height 52
	Radius 16
	Decal "BulletScratch"
	AttackSound ""
	MeleeSound "weapons/smack"
	MeleeDamage 4
	MaxTargetRange 1920
	DropItem HDPistolDrop 32
	+MISSILEMORE
	+FASTER
	Obituary "%o was brutally pumped full of a shotgun sergeant's hot, manly lead."
	HitObituary "%o violated a shotgun sergeant's personal space."
	PainChance 256
	DropItem Hunter
	DropItem Shell 96
	States
	{
	Missile:
		SPOS E 4 A_Jump (128, 1)
		SPOS E 10 A_FaceTarget
		SPOS E 0 A_JumpIfInventory("HunterSpentShell",1,"Chamber")
		TNT1 A 0 A_PlayWeaponSound ("weapons/hunter")

		SPOS F 1 BRIGHT
		SPOS E 0 A_CustomBulletAttack (7, 6, 1, 0, "ShotGuyTarget",6)
		SPOS F 1 BRIGHT A_ChangeFlag ("shootable",0)
		TNT1 A 0 A_ChangeFlag ("shootable",1)

//		TNT1 A 0 A_CustomBulletAttack (3, 3, 8, 4, "BulletPuffSmall", 48*40+random(-64,64))

		SPOS F 2 BRIGHT A_SpawnItem ("DistantShotgun", 1, 1, 0, 0)
		SPOS E 12 A_GiveInventory("HunterSpentShell",1)
		Goto See
	Chamber:
		SPOS E 0 A_CustomMissile("HDSpentShellEjectorPump",36,0,0)
		SPOS E 0 A_TakeInventory("HunterSpentShell",999)
		SPOS E 6 A_PlaySoundEx("weapons/shotgr","soundslot5")
	See:
		SPOS E 0 A_JumpIfInventory("HunterSpentShell",1,"Chamber")
		TNT1 A 0 A_JumpIfHealthLower (25, "BleedOut")
		SPOS AABBCCDD 2 A_Chase
		TNT1 A 0 A_JumpIfTargetInLOS ("See")
	Roam:
		TNT1 A 0 A_Jump (128, 1)
		goto See
		TNT1 A 0 A_JumpIfTargetInLOS ("See")
		TNT1 A 0 A_Jump (200, 2)
		TNT1 A 0 HealThing(random(12,32))
		SPOS AA 2 A_Chase
		SPOS BBCC 2 A_Wander
		SPOS DD 2 A_Chase
		TNT1 A 0 A_Jump (200, "Roam")
		TNT1 A 0 A_AlertMonsters
		Loop
	BleedOut:
		TNT1 A 0 A_ChangeFlag ("nopain", 1)
		TNT1 AAAA 0 A_SpawnItemEx ("BleedOut",0,0,32,0,0,0,0,32)
		SPOS A 1
		TNT1 A 0 A_ChangeFlag ("nopain", 0)
		goto See+1
	Melee:
		SPOS D 6 A_FaceTarget
		SPOS D 4
		SPOS E 4 A_MeleeAttack

		SPOS E 3 A_JumpIfCloser (56, 2)

		SPOS E 3 A_FaceTarget
		Goto Missile+1

		SPOS A 3
		Goto See
	Pain:
		SPOS G 3 A_Jump (92, 2)
		SPOS G 3 A_Pain
		TNT1 A 0 A_Jump (200, 2)
		POSS G 0 A_AlertMonsters
		SPOS G 0 A_Jump (182, "See")
		SPOS G 0 A_ChangeFlag("NODROPOFF", 1)
		SPOS A 2 A_FaceTarget
		SPOS BCD 3 A_FastChase
		SPOS E 0 A_CPosRefire
		Goto Missile
	Death:
		TNT1 A 0 A_GivetoTarget("HDKillCount",1)
		TNT1 A 0 ACS_ExecuteAlways(558,0,0,1,12)
		TNT1 A 0 A_SpawnItemEx ("tempshield", 0,0,0, velx,vely,velz, 0,40)
		SPOS H 5 A_ChangeFlag("NODROPOFF", 0)
		SPOS I 5 A_Scream
		TNT1 A 0 A_SpawnItemEx ("tempshield2", 0,0,0, velx,vely,velz, 0,40)
		SPOS J 5 A_NoBlocking
		SPOS K 5
		SPOS L -1
		Stop
	XDeath:
		TNT1 A 0 A_GivetoTarget("HDKillCount",1)
		TNT1 A 0 ACS_ExecuteAlways(558,0,0,1,12)
		SPOS M 5 A_ChangeFlag("NODROPOFF", 0)
		SPOS M 0 A_SpawnItemEx ("MegaBloodSplatter", 0,0,34, 0,0,0, 0,160)
		SPOS N 5 A_XScream
		SPOS N 0 A_SpawnItemEx ("MegaBloodSplatter", 0,0,34, 0,0,0, 0,160)
		SPOS O 5 A_NoBlocking
		SPOS O 0 A_SpawnItemEx ("MegaBloodSplatter", 0,0,34, 0,0,0, 0,160)
		SPOS PQRST 5
		SPOS U -1
		Stop
	}
}
actor ShotGuyTarget : IdleDummy
{
	-nointeraction
	+nogravity
	+noblood
	+puffonactors
	+alwayspuff
	+puffgetsowner
	height 0
	radius 0
	damage 0
	states
	{
	spawn:
		TNT1 A 0
		TNT1 A 0 A_FaceTarget
		TNT1 A 2 A_CustomBulletAttack (0, 0, 1, 0, "ShotGuyTarget2",6)
		stop
	}
}
actor ShotGuyTarget2 : IdleDummy
{
	-nointeraction
	+nogravity
	+noblood
	+puffonactors
	+alwayspuff
	+puffgetsowner
	decal "BulletScratch"
	obituary "%o was brutally pumped full of a shotgun sergeant's hot, manly lead."
	height 3
	radius 3
	states
	{
	spawn:
		TNT1 A 1
		TNT1 A 0 A_FaceTarget
		TNT1 AAAAA 0 A_CustomBulletAttack (1.7, 1.7, 1, 4, "BulletPuffSmall", 48*40+random(-256,256))
		TNT1 AAA 0 A_CustomBulletAttack (1.5, 1.5, 1, 6, "BulletPuffSmall", 48*60+random(-256,256))
		stop
	}
}


// ------------------------------------------------------------
//   Former Human Commando
// ------------------------------------------------------------

ACTOR DragonGuard : ChaingunGuy replaces ChaingunGuy
{
	Translation "60:69=128:135","70:79=144:151", "176:191=32:47"
	Health 90
	Height 54
	Radius 20
	Decal "BulletScratch"
	AttackSound "weapons/rifle"
	DropItem HDPistolDrop 48
	Obituary "%o met the budda-budda-budda on the street, and it killed %h."
	DropItem Vulcanette
	+missileevenmore
	States
	{
	Reload:
		TNT1 A 0 A_ChangeFlag ("frightened",1)
		CPOS AABBCCDD 4 A_Wander
		TNT1 A 0 A_TakeInventory("ChaingunBox",150)
	See:
		TNT1 A 0 A_JumpIfInventory ("ChaingunOn",1,"See2")
		CPOS AABBCCDD 4 A_Chase
		TNT1 A 0 A_ChangeFlag ("frightened",0)
		loop
	See2:
		CPOS E 0 A_FaceTarget
		CPOS E 1 A_Chase ("Missile","Missile",CHF_DONTMOVE)
		CPOS E 0 A_Jump (1, "WindDown")
		loop
	Pain:
		CPOS G 3
		CPOS G 3 A_Pain
		TNT1 A 0 A_AlertMonsters
		goto See
	Missile:
		CPOS E 1 A_JumpIfInventory ("ChaingunBox",150,"Reload")
		TNT1 A 0 A_ChangeFlag ("frightened",0)
		CPOS E 8 A_FaceTarget
		TNT1 A 0 A_JumpIfInventory("ChaingunOn",1,"Shoot")
		TNT1 A 0 A_PlaySoundEx ("weapons/vulcanup","soundslot5")
		TNT1 A 0 A_GiveInventory ("ChaingunOn",1)
		CPOS E 12 A_PlaySound ("weapons/vulcanup")
		TNT1 A 0 A_AlertMonsters
	Shoot:
		CPOS F 1 BRIGHT A_CustomBulletAttack (7, 5, 1, 5, "BulletPuffMedium")
		CPOS E 1 A_SpawnItem ("DistantChaingun", 1, 1, 0, 0)
		CPOS F 1 BRIGHT A_CustomBulletAttack (7, 5, 1, 5, "BulletPuffMedium")
		CPOS E 1 A_SpawnItem ("DistantChaingun", 1, 1, 0, 0)
		CPOS F 1 BRIGHT A_CustomBulletAttack (7, 5, 1, 5, "BulletPuffMedium")
		CPOS E 1 A_SpawnItem ("DistantChaingun", 1, 1, 0, 0)
		CPOS E 0 A_GiveInventory("ChaingunBox",3)
		CPOS E 0 A_JumpIfInventory ("ChaingunBox",150,"LongWindDown")
		CPOS E 0 A_Jump (24, 2)
		CPOS E 0 A_CPosRefire
		loop
		CPOS E 8
		goto See
	LongWindDown:
		CPOS E 8
	WindDown:
		TNT1 A 0 A_TakeInventory ("ChaingunOn", 999)
		TNT1 A 0 A_PlaySoundEx ("weapons/vulcandown","soundslot5")
		goto See
	Death:
		TNT1 A 0 A_GivetoTarget("HDKillCount",1)
		TNT1 A 0 ACS_ExecuteAlways(558,0,0,1,14)
		CPOS H 5 A_SpawnItemEx ("tempshield", 0,0,0, velx,vely,velz, 0,40)
		CPOS H 0 A_SpawnItemEx ("MegaBloodSplatter", 0,0,34, 0,0,0, 0,160)
		CPOS I 5 A_Scream
		TNT1 A 0 A_SpawnItemEx ("tempshield2", 0,0,0, velx,vely,velz, 0,40)
		CPOS I 0 A_SpawnItemEx ("MegaBloodSplatter", 0,0,34, 0,0,0, 0,160)

		TNT1 A 0 A_JumpIfInventory ("ChaingunOn",1,2)
		TNT1 A 0 A_Jump (256, 3)
		TNT1 A 0 A_TakeInventory ("ChaingunOn", 999)
		TNT1 A 0 A_PlaySoundEx ("weapons/vulcandown","soundslot5")

		CPOS J 5 A_NoBlocking
		CPOS KLM 5
		CPOS N -1
		Stop
	XDeath:
		TNT1 A 0 A_GivetoTarget("HDKillCount",1)
		TNT1 A 0 ACS_ExecuteAlways(558,0,0,1,14)
		CPOS O 5
		CPOS O 0 A_SpawnItemEx ("MegaBloodSplatter", 0,0,34, 0,0,0, 0,160)
		CPOS P 3 A_XScream
		CPOS P 0 A_SpawnItemEx ("MegaBloodSplatter", 0,0,34, 0,0,0, 0,160)
		CPOS R 2 A_SpawnItemEx ("MegaBloodSplatter", 0,0,34, 0,0,0, 0,160)

		TNT1 A 0 A_JumpIfInventory ("ChaingunOn",1,2)
		TNT1 A 0 A_Jump (256, 3)
		TNT1 A 0 A_TakeInventory ("ChaingunOn", 999)
		TNT1 A 0 A_PlaySoundEx ("weapons/vulcandown","soundslot5")

		CPOS Q 5 A_NoBlocking
		CPOS Q 0 A_SpawnItemEx ("MegaBloodSplatter", 0,0,34, 0,0,0, 0,160)
		CPOS R 5 A_SpawnItemEx ("MegaBloodSplatter", 0,0,34, 0,0,0, 0,160)
		CPOS R 0 A_SpawnItemEx ("MegaBloodSplatter", 0,0,34, 0,0,0, 0,160)
		CPOS T -1
		Stop
	}
}


// ------------------------------------------------------------
//   Wolfenstein SS
// ------------------------------------------------------------

ACTOR HoopBubble : WolfensteinSS replaces WolfensteinSS
{
	Health 60
	Height 52
	Radius 16
	Decal "BulletScratch"
	AttackSound "weapons/rifle"
	Obituary "%o invoked Godwin's Law."
	DropItem ZM66Rifle
	DropItem HDPistolDrop 128
	Translation "192:207=94:111","240:247=9:12"
	States
	{
	See:
		TNT1 A 0 A_ChangeFlag ("ismonster", 1)
		TNT1 A 0 A_JumpIfHealthLower (20, "BleedOut")
		SSWV AABBCCDD 2 A_Chase
		TNT1 A 0 A_JumpIfTargetInLOS ("See")
	Roam:
		TNT1 A 0 A_Jump (160, 2)
		TNT1 A 0 A_AlertMonsters
		TNT1 A 0 A_Jump (216, 1)
		goto See
		TNT1 A 0 A_JumpIfTargetInLOS ("See")
		TNT1 A 0 A_Jump (200, 2)
		TNT1 A 0 HealThing (random(1,4))
		SSWV AA 2 A_Wander
		SSWV BBCCDD 2 A_Chase
		Loop
	BleedOut:
		TNT1 A 0 A_ChangeFlag ("nopain", 1)
		TNT1 AAAA 0 A_SpawnItemEx ("BleedOut",0,0,32,0,0,0,0,32)
		SSWV A 1
		TNT1 A 0 A_ChangeFlag ("nopain", 0)
		goto see+1
	Pain:
		SSWV H 3
		SSWV H 3 A_Pain
		TNT1 A 0 A_Jump (192, "See")
		TNT1 A 0 A_AlertMonsters
		goto See
	Missile:
		SSWV EF 8 A_FaceTarget
	Shoot:
		SSWV G 2 bright A_CustomBulletAttack (2, 2, 1, 7, "BulletPuffBig")
		TNT1 A 0 A_SpawnItem ("DistantRifle", 1, 1, 0, 0)
		SSWV F 3 A_FaceTarget
		SSWV G 2 bright A_CustomBulletAttack (2, 2, 1, 7, "BulletPuffBig")
		TNT1 A 0 A_SpawnItem ("DistantRifle", 1, 1, 0, 0)
		SSWV F 3 A_CPosRefire
		loop
	Death:
		TNT1 A 0 A_GivetoTarget("HDKillCount",1)
		TNT1 A 0 ACS_ExecuteAlways(558,0,0,1,9)
		SSWV I 5 A_SpawnItemEx ("tempshield", 0,0,0, velx,vely,velz, 0,40)
		SSWV J 5 A_Scream
		TNT1 A 0 A_SpawnItemEx ("tempshield2", 0,0,0, velx,vely,velz, 0,40)
		SSWV K 5 A_NoBlocking
		SSWV M -1
		stop
	XDeath:
		TNT1 A 0 A_GivetoTarget("HDKillCount",1)
		TNT1 A 0 ACS_ExecuteAlways(558,0,0,1,9)
		SSWV N 5 A_SpawnItemEx ("MegaBloodSplatter", 0,0,34, 0,0,0, 0,160)
		SSWV O 0 A_SpawnItemEx ("MegaBloodSplatter", 0,0,34, 0,0,0, 0,160)
		SSWV O 5 A_XScream
		SSWV P 0 A_SpawnItemEx ("MegaBloodSplatter", 0,0,34, 0,0,0, 0,160)
		SSWV P 5 A_NoBlocking
		SSWV Q 0 A_SpawnItemEx ("MegaBloodSplatter", 0,0,34, 0,0,0, 0,160)
		SSWV QRSTU 5
		SSWV V -1
		stop
	}
}
