ACTOR ShotgunCommando 16554
{
//$Category Monsters/LCA
//$Sprite SGCDA1
//$Title "Shotgun Commando"
MONSTER
Health 220
Height 56
Radius 20
Mass 100
Speed 6
PainChance 43
+FLOORCLIP
+MISSILEMORE
+QUICKTORETALIATE
DropItem "NewShell", 255, 4
DropItem "HealthFlask", 55
DropItem "ArmorCharge", 55
DropItem "AmmoPack", 40
DropItem "HandGrenadeAmmo", 100, 1
DropItem "MineAmmo", 50, 1
DropItem "PortableMedkit", 190
DropItem "ArmorPlate", 190
DropItem "BackPack", 53
DropItem "NewShellBox", 128
DropItem "Assault Shotgun", 75, 1
AttackSound "weapons/12gaugefire"
SeeSound "superzombie/sight"
PainSound "superzombie/pain"
DeathSound "superzombie/death"
ActiveSound "superzombie/active"
Obituary "%o was blown to bloody pieces by a Shotgun Commando."
Tag "Shotgun Commando"
States
	{
	Spawn:
		SGCD A 10 A_Look
		SGCD Z 10 A_Look
		Loop
	See:
		SGCD AABB 3 A_Chase
		TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
		SGCD CCDD 3 A_Chase
		TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
		Loop
	Chase:
		SGCD AA 1 A_FastChase
		TNT1 A 0 A_JumpIfCloser(130,"Dodge")
		SGCD AA 1 A_Chase
		TNT1 A 0 A_JumpIfCloser(130,"Dodge")
		SGCD BB 1 A_Chase
		TNT1 A 0 A_JumpIfCloser(130,"Dodge")
		SGCD BB 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("FootStep",0,0,2,0,0,-20)
		TNT1 A 0 A_JumpIfCloser(150,"Dodge")
		SGCD CC 1 A_Chase
		TNT1 A 0 A_JumpIfCloser(150,"Dodge")
		SGCD CC 1 A_FastChase
		TNT1 A 0 A_JumpIfCloser(130,"Dodge")
		SGCD DD 1 A_FastChase
		TNT1 A 0 A_JumpIfCloser(130,"Dodge")
		SGCD DD 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("FootStep",0,0,2,0,0,-20)
		TNT1 A 0 A_Jump(64,"Dodge")
		Loop
	Strafing:
		TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		SGCD AABB 3 A_GiveInventory("CommandoStrafing",1)
		SGCD C 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		SGCD CCDD 3 A_GiveInventory("CommandoStrafing",1)
		Goto See	
	Pause:
		//TNT1 A 0 A_PlayWeaponSound("csgun/windup")
		SGCD AAAAA 3
		Goto See	
	SeeNoDodge:
		SGCD AABB 2 A_Chase
		TNT1 A 0 A_SpawnItemEx("FootStep",0,0,2,0,0,-20)
		SGCD CCDD 2 A_Chase
		TNT1 A 0 A_SpawnItemEx("FootStep",0,0,2,0,0,-20)
		SGCD AABB 2 A_Chase
		TNT1 A 0 A_SpawnItemEx("FootStep",0,0,2,0,0,-20)
		SGCD CCDD 2 A_Chase
		TNT1 A 0 A_SpawnItemEx("FootStep",0,0,2,0,0,-20)
		SGCD AABB 2 A_Chase
		TNT1 A 0 A_SpawnItemEx("FootStep",0,0,2,0,0,-20)
		SGCD CCDD 2 A_Chase
		TNT1 A 0 A_SpawnItemEx("FootStep",0,0,2,0,0,-20)
		Goto Chase
	Dodge:
		SGCD A 1 A_FaceTarget
		TNT1 A 0 ThrustThingZ(0, 20, 0, 0)
		TNT1 A 0 A_Jump(256, "DodgeRight", "DodgeLeft")
	DodgeLeft:
		TNT1 A 0 ThrustThing(angle*256/360+192, 15, 0, 0)
		Goto SeeNoDodge
	DodgeRight:
		TNT1 A 0 ThrustThing(angle*256/360+64, 15, 0, 0)
		Goto SeeNoDodge
	Missile:
		SGCD EEEEEEEEEE 1 A_FaceTarget(45)
	MissileLoop:
		TNT1 A 0 A_CustomMissile("MonsterTracer2",Random(28,34),0,Random(6,-6),0)
		TNT1 A 0 A_SpawnItemEx("ShellCasing", 12, -6, 36, Random(2, 6), 0, Random(1, 3), Random(-80, -90), 128)
		TNT1 A 0 Bright A_CustomBulletAttack(22.5,18.3,4,Random(1,5)*3)
		//SGCD E 1 A_GiveInventory("CommandoStrafing",1)	
		SGCD E 5 Bright A_CPosAttack
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_CustomMissile("MonsterTracer2",Random(28,34),0,Random(6,-6),0)
		TNT1 A 0 A_SpawnItemEx("ShellCasing", 12, -6, 36, Random(2, 6), 0, Random(1, 3), Random(-80, -90), 128)
		TNT1 A 0 Bright A_CustomBulletAttack(22.5,18.3,4,Random(1,5)*3)
		//SGCD E 1 A_GiveInventory("CommandoStrafing",1)	
		SGCD F 5 Bright A_CPosAttack
		TNT1 A 0 A_CPosRefire
		TNT1 A 0 A_Jump(20,"Pause")
		Loop
	Pain:
		SGCD G 6 A_Pain
		Goto See
	Death:
		SGCD H 5
		SGCD I 5 A_Scream 
		SGCD J 5 A_Fall 
		SGCD K 5 A_SpawnItem("BodyCrash",0,0,0,0)
		SGCD L 5 
		SGCD M 5 
		SGCD N 5 
		SGCD O 5 
		SGCD P 5 
		SGCD P 63000 CanRaise
		Stop
	Raise:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("VileHealEffect",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		SGCD PONMLKJIH 5
		Goto See
	}
}

Actor CommandoStrafing : CustomInventory
{
-COUNTITEM
+INVENTORY.QUIET
+INVENTORY.UNDROPPABLE
+INVENTORY.ALWAYSPICKUP
+INVENTORY.AUTOACTIVATE       
Inventory.Amount 1
Inventory.MaxAmount 0
States
	{
	Pickup:
		NULL A 1 
		//NULL A 1 A_SpawnItem("LHellionSmokeSpawner",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,3,0,0)
		NULL A 1 A_Jump(256,2)	
		NULL A 1 ThrustThing(angle*256/360+38.7,-3,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	
	}
}