// Brutalized Zombieman whit a Minigun
// XV117

ACTOR MinigunGuy : RifleZombie 31137
{
  //$Title "Minigun Guy"
  //$Category XV117Monsters
	DropItem "ClipBox2", 10
	DropItem "ChaingunSpawner"
	Obituary "%o became a Minigun Zombie's target practice."
	Tag "Minigun Guy"
	States
	{
	
	  Possession:
		TNT1 A 0 A_SetInvulnerable
		MGZM G 3
		MGZM G 3 A_Pain
		"####" "#" 35 ACS_NamedExecuteAlways("Pos - Flicker effect")
		TNT1 A 0 A_UnSetInvulnerable
		Goto See
	
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_GiveInventory("SKZombieMan", 1)
		TNT1 A 0 A_JumpIfInTargetInventory("ChainguyguyContinue", 1, "MissileContinue")
		Goto Stand
		
	STAND:
		TNT1 A 0
		TNT1 A 0 A_CheckSight("Stand2")
        TNT1 A 0 A_SpawnItem ("HeadshotTarget200", 0, 42,0)
		MGZM BBBBBBBBBB 10 A_Look
		MGZM BBBBBBBBBB 10 A_Look
		Loop
		
	Stand2:
		MGZM B 14 A_Look
		Goto Stand
		
	SearchForPlayer:
	Idle:
	    TNT1 A 0 A_ClearTarget
		TNT1 A 0 A_JumpIfHealthLower(1, "Death")
	    TNT1 A 0 A_TakeInventory("EnemyMemory", 30)
		TNT1 A 0 A_GiveInventory("SKZombieMan", 1)
        TNT1 A 0 A_SpawnItem ("HeadshotTarget10", 5, 44,0)
		TNT1 A 0 A_SpawnItem ("LegTargetBase", 10)
		MGZM A 10 A_Look
        TNT1 A 0 A_SpawnItem ("HeadshotTarget10", 5, 44,0)
		TNT1 A 0 A_SpawnItem ("LegTargetBase", 10)
		MGZM A 10 A_Look
		TNT1 A 0 A_SpawnItem ("HeadshotTarget10", 5, 44,0)
		TNT1 A 0 A_SpawnItem ("LegTargetBase", 10)
		MGZM A 10 A_Look
        TNT1 A 0 A_SpawnItem ("HeadshotTarget10", 5, 44,0)
		TNT1 A 0 A_SpawnItem ("LegTargetBase", 10)
		MGZM A 10 A_Look
		TNT1 A 0 A_SpawnItem ("HeadshotTarget10", 5, 44,0)
		TNT1 A 0 A_SpawnItem ("LegTargetBase", 10)
		MGZM A 10 A_Look
		TNT1 A 0 A_SpawnItem ("HeadshotTarget10", 5, 44,0)
		TNT1 A 0 A_SpawnItem ("LegTargetBase", 10)
		MGZM A 10 A_Look
		TNT1 A 0 A_SpawnItem ("HeadshotTarget10", 5, 44,0)
		TNT1 A 0 A_SpawnItem ("LegTargetBase", 10)
		MGZM A 10 A_Look
		
		MGZM A 4 A_Look
		TNT1 A 0 A_PlaySound("humans/step",3)
		TNT1 A 0 A_SpawnItem ("HeadshotTarget4", 5, 44,0)
		TNT1 A 0 A_Wander
		TNT1 A 0 A_Recoil(-1)
		MGZM B 4 A_Look
		TNT1 A 0 A_SpawnItem ("HeadshotTarget4", 5, 44,0)
		TNT1 A 0 A_Wander
		TNT1 A 0 A_Recoil(-1)
		MGZM C 4 A_Look
		TNT1 A 0 A_PlaySound("humans/step",3)
		TNT1 A 0 A_SpawnItem ("HeadshotTarget4", 5, 44,0)
		TNT1 A 0 A_Wander
		TNT1 A 0 A_Recoil(-1)
		MGZM D 4 A_Look
		TNT1 A 0 A_SpawnItem ("HeadshotTarget4", 5, 44,0)
		TNT1 A 0 A_Wander
		TNT1 A 0 A_Recoil(-1)
		
		TNT1 A 0 A_Jump(128, "Idle")
		MGZM A 4 A_Look
		TNT1 A 0 A_PlaySound("humans/step",3)
		TNT1 A 0 A_SpawnItem ("HeadshotTarget4", 5, 44,0)
		TNT1 A 0 A_Wander
		TNT1 A 0 A_Recoil(-1)
		MGZM B 4 A_Look
		TNT1 A 0 A_SpawnItem ("HeadshotTarget4", 5, 44,0)
		TNT1 A 0 A_Wander
		TNT1 A 0 A_Recoil(-1)
		MGZM C 4 A_Look
		TNT1 A 0 A_PlaySound("humans/step",3)
		TNT1 A 0 A_SpawnItem ("HeadshotTarget4", 5, 44,0)
		TNT1 A 0 A_Wander
		TNT1 A 0 A_Recoil(-1)
		MGZM D 4 A_Look
		TNT1 A 0 A_SpawnItem ("HeadshotTarget4", 5, 44,0)
		TNT1 A 0 A_Wander
		TNT1 A 0 A_Recoil(-1)
		Loop
		
		
	FallBack:
	TNT1 A 0 A_CheckSight("Advance")
	TNT1 A 0 A_ChangeFLag("NODROPOFF", 1)
	TNT1 A 0 A_SpawnItem ("HeadshotTarget4", 5, 44,0)
	TNT1 A 0 A_SpawnItem ("LegTarget4", 10)
	MGZM D 2 A_FaceTarget
	MGZM D 2 A_Recoil(2)
	TNT1 A 0 A_jump(64, "Missile")
	TNT1 A 0 A_SpawnItem ("HeadshotTarget4", 5, 44,0)
	TNT1 A 0 A_SpawnItem ("LegTarget4", 10)
	TNT1 A 0 A_PlaySound("humans/step",3)
	MGZM C 2 A_FaceTarget
	MGZM C 2 A_Recoil(2)
	TNT1 A 0 A_SpawnItem ("HeadshotTarget4", 5, 44,0)
	TNT1 A 0 A_SpawnItem ("LegTarget4", 10)
	MGZM B 2 A_FaceTarget
	MGZM B 2 A_Recoil(2)
	TNT1 A 0 A_PlaySound("humans/step",3)
	TNT1 A 0 A_SpawnItem ("HeadshotTarget4", 5, 44,0)
	TNT1 A 0 A_SpawnItem ("LegTarget4", 10)
	MGZM A 2 A_FaceTarget
	MGZM A 2 A_Recoil(2)
	TNT1 A 0 A_SpawnItem ("HeadshotTarget4", 5, 44,0)
	TNT1 A 0 A_SpawnItem ("LegTarget4", 10)
	TNT1 A 0 A_PlaySound("humans/step",3)
	MGZM D 2 A_FaceTarget
	MGZM D 2 A_Recoil(2)
	TNT1 A 0 A_jump(64, "Missile")
	TNT1 A 0 A_SpawnItem ("HeadshotTarget4", 5, 44,0)
	TNT1 A 0 A_SpawnItem ("LegTarget4", 10)
	MGZM C 2 A_FaceTarget
	MGZM C 2 A_Recoil(2)
	TNT1 A 0 A_PlaySound("humans/step",3)
	TNT1 A 0 A_SpawnItem ("HeadshotTarget4", 5, 44,0)
	TNT1 A 0 A_SpawnItem ("LegTarget4", 10)
	MGZM B 2 A_FaceTarget
	MGZM B 2 A_Recoil(2)
	TNT1 A 0 A_SpawnItem ("HeadshotTarget4", 5, 44,0)
	TNT1 A 0 A_SpawnItem ("LegTarget4", 10)
	MGZM A 2 A_FaceTarget
	MGZM A 2 A_Recoil(2)
	TNT1 A 0 A_PlaySound("humans/step",3)
	GOto Missile
	
	See:
	TNT1 A 0 A_JumpIfHealthLower(1, "Death")
	TNT1 A 0 A_ChangeFLag("NODROPOFF", 0)
	TNT1 A 0 A_TakeInventory("SKZombieman", 1)
	TNT1 A 0 A_TakeInventory("EnemyMemory", 15)
	TNT1 A 0 A_CheckSight("SeeNeverSeen")
	Goto SeeContinue
	
	SeeContinue:
	TNT1 A 0 A_JumpIfHealthLower(1, "Death")
		TNT1 A 0 A_ChangeFlag("SOLID", 1)
		TNT1 A 0 A_ChangeFlag("SHOOTABLE", 1)
		TNT1 A 0 A_ChangeFlag("GHOST", 0)
		TNT1 A 0 A_ChangeFlag("INVULNERABLE", 0)
		TNT1 A 0 A_JumpIfCloser(200, "FallBack")
		Advance:
		TNT1 A 0 A_ChangeFLag("NODROPOFF", 0)
        TNT1 A 0 A_SpawnItemEx("FootStep", 0, 0, 10, 0, 0)
		TNT1 A 0 A_JumpIfInventory("EnemyMemory", 15, "SearchForPlayer")
		TNT1 A 0 A_GiveInventory("EnemyMemory", 1)
		TNT1 A 0 A_SpawnItem ("HeadshotTarget4", 5, 44,0)
		TNT1 A 0 A_SpawnItem ("LegTargetBase", 10)
		
		MGZM AA 2 A_Chase
		TNT1 A 0 A_TakeInventory("SKZombieman", 1)
		
		TNT1 A 0 A_SpawnItem ("HeadshotTarget4", 5, 44,0)
		TNT1 A 0 A_SpawnItem ("LegTargetBase", 10)
		MGZM BB 2 A_Chase
		TNT1 A 0 A_PlaySound("humans/step",3)
		
		TNT1 A 0 A_SpawnItem ("HeadshotTarget4", 5, 44,0)
		TNT1 A 0 A_SpawnItem ("LegTargetBase", 10)
		MGZM CC 2 A_Chase
		
		TNT1 A 0 A_SpawnItem ("HeadshotTarget4", 5, 44,0)
		TNT1 A 0 A_SpawnItem ("LegTargetBase", 10)
		MGZM DD 2 A_Chase
		TNT1 A 0 A_PlaySound("humans/step",3)
		Loop
		
	SeeNeverSeen:
		TNT1 A 0 A_JumpIfCloser(200, "FallBack")
		Advance:
		TNT1 A 0 A_ChangeFLag("NODROPOFF", 0)
        TNT1 A 0 A_SpawnItemEx("FootStep", 0, 0, 10, 0, 0)
		TNT1 A 0 A_SpawnItem ("HeadshotTarget4", 5, 44,0)
		TNT1 A 0 A_SpawnItem ("LegTargetBase", 10)
		MGZM AA 2 A_Chase
		TNT1 A 0 A_TakeInventory("SKZombieman", 1)
		TNT1 A 0 A_SpawnItem ("HeadshotTarget4", 5, 44,0)
		TNT1 A 0 A_SpawnItem ("LegTargetBase", 10)
		MGZM BB 2 A_Chase
		TNT1 A 0 A_PlaySound("humans/step",3)
		TNT1 A 0 A_SpawnItem ("HeadshotTarget4", 5, 44,0)
		TNT1 A 0 A_SpawnItem ("LegTargetBase", 10)
		MGZM CC 2 A_Chase
		TNT1 A 0 A_SpawnItem ("HeadshotTarget4", 5, 44,0)
		TNT1 A 0 A_SpawnItem ("LegTargetBase", 10)
		MGZM DD 2 A_Chase
		TNT1 A 0 A_PlaySound("humans/step",3)
		Loop	
		
		
    Missile:
	TNT1 A 0 A_JumpIfHealthLower(1, "Death")
	TNT1 A 0 A_PlaySound("CHAINSTA")
	TNT1 A 0 A_SpawnItem("HeadshotTarget10", 0, 42,0)
	TNT1 A 0 A_TakeInventory("SKChaingunGuy", 1)
	TNT1 A 0 A_SpawnItem("HeadshotTarget10", 0, 42,0)
    MGZM E 9 A_FaceTarget
	TNT1 A 0 A_SpawnItem("HeadshotTarget10", 0, 42,0)
	MGZM E 9 A_FaceTarget
	MGZM E 2 A_FaceTarget
	TNT1 A 0 A_SpawnItem("HeadshotTarget10", 0, 42,0)
    TNT1 A 0

	MissileContinue:
	SpecialAttack:
	TNT1 A 0 A_JumpIfHealthLower(1, "Death")
	MGZM E 1 A_FaceTarget
	TNT1 A 0 A_SpawnItem("HeadshotTarget10", 0, 42,0)
    TNT1 AA 0 A_CustomMissile("OrangeLensFlareAltFast", 34, 10, 15, 0)
		TNT1 A 0 A_PlaySound("FARMGN", 6)
		TNT1 A 0 A_PlaySound("CHGNSHOT", 5)
	MGZM FF 1 BRIGHT A_CustomMissile("MonsterMinigunTracer", 38, 0, random(-11, 11), 0) //A_CPosAttack
	TNT1 A 0 A_SpawnItem("HeadshotTarget10", 0, 42,0)
    TNT1 A 0 A_SpawnItem ("RifleCaseSpawn", 0, 30,0)
    MGZM E 1 //A_CPosRefire
	
	MGZM E 1 A_FaceTarget
	TNT1 A 0 A_SpawnItem("HeadshotTarget10", 0, 42,0)
    TNT1 AA 0 A_CustomMissile("OrangeLensFlareAltFast", 34, 10, 15, 0)
		TNT1 A 0 A_PlaySound("FARMGN", 6)
		TNT1 A 0 A_PlaySound("CHGNSHOT", 5)
	MGZM FF 1 BRIGHT A_CustomMissile("MonsterMinigunTracer", 38, 0, random(-11, 11), 0) //A_CPosAttack
	TNT1 A 0 A_SpawnItem("HeadshotTarget10", 0, 42,0)
    TNT1 A 0 A_SpawnItem ("RifleCaseSpawn", 0, 30,0)
    MGZM E 1 //A_CPosRefire
	
	MGZM E 1 A_FaceTarget
	TNT1 A 0 A_SpawnItem("HeadshotTarget10", 0, 42,0)
    TNT1 AA 0 A_CustomMissile("OrangeLensFlareAltFast", 34, 10, 15, 0)
		TNT1 A 0 A_PlaySound("FARMGN", 6)
		TNT1 A 0 A_PlaySound("CHGNSHOT", 5)
	MGZM F 1 BRIGHT A_CustomMissile("MonsterMinigunTracer", 38, 0, random(-11, 11), 0) //A_CPosAttack
	TNT1 A 0 A_SpawnItem("HeadshotTarget10", 0, 42,0)
    TNT1 A 0 A_SpawnItem ("RifleCaseSpawn", 0, 30,0)
    MGZM E 1 //A_CPosRefire
	
	MGZM E 1 A_FaceTarget
	TNT1 A 0 A_SpawnItem("HeadshotTarget10", 0, 42,0)
    TNT1 AA 0 A_CustomMissile("OrangeLensFlareAltFast", 34, 10, 15, 0)
		TNT1 A 0 A_PlaySound("FARMGN", 6)
		TNT1 A 0 A_PlaySound("CHGNSHOT", 5)
	MGZM FF 3 BRIGHT A_CustomMissile("MonsterMinigunTracer", 38, 0, random(-11, 11), 0) //A_CPosAttack
	TNT1 A 0 A_SpawnItem("HeadshotTarget10", 0, 42,0)
    TNT1 A 0 A_SpawnItem ("RifleCaseSpawn", 0, 30,0)
    MGZM E 1 //A_CPosRefire
	
	MGZM E 2 A_FaceTarget
	TNT1 A 0 A_SpawnItem("HeadshotTarget10", 0, 42,0)
    TNT1 AA 0 A_CustomMissile("OrangeLensFlareAltFast", 34, 10, 15, 0)
		TNT1 A 0 A_PlaySound("FARMGN", 6)
		TNT1 A 0 A_PlaySound("CHGNSHOT", 5)
	MGZM FF 1 BRIGHT A_CustomMissile("MonsterMinigunTracer", 38, 0, random(-11, 11), 0) //A_CPosAttack
	TNT1 A 0 A_SpawnItem("HeadshotTarget10", 0, 42,0)
    TNT1 A 0 A_SpawnItem ("RifleCaseSpawn", 0, 30,0)
    MGZM E 1 //A_CPosRefire
	TNT1 A 0 A_JumpIfInTargetInventory("ChainguyguyContinue", 1, "MissileContinue")
	
	MGZM E 2 A_FaceTarget
	TNT1 A 0 A_SpawnItem("HeadshotTarget10", 0, 42,0)
    TNT1 AA 0 A_CustomMissile("OrangeLensFlareAltFast", 34, 10, 15, 0)
		TNT1 A 0 A_PlaySound("FARMGN", 6)
		TNT1 A 0 A_PlaySound("CHGNSHOT", 5)
	MGZM FF 1 BRIGHT A_CustomMissile("MonsterMinigunTracer", 38, 0, random(-11, 11), 0) //A_CPosAttack
	TNT1 A 0 A_SpawnItem("HeadshotTarget10", 0, 42,0)
    TNT1 A 0 A_SpawnItem ("RifleCaseSpawn", 0, 30,0)
    MGZM E 1 A_CPosRefire
	TNT1 A 0 A_JumpIfInTargetInventory("ChainguyguyContinue", 1, "MissileContinue")
	Goto MissileContinue
	
Pain.Avoid:
	    TNT1 A 0
	    TNT1 A 0 A_Jump(255, "AvoidLeft", "AvoidRight")
        Goto AvoidLeft
	  
   AvoidLeft:
	    MGZM A 1 A_FaceTarget
	    TNT1 A 0 ThrustThing(angle*256/360+192, 15, 0, 0)
        ZRO2 ABCDEFGH 2 A_FaceTarget
        Goto Missile
	AvoidRight:
	    MGZM A 1 A_FaceTarget
	    TNT1 A 0 ThrustThing(angle*256/360+64, 15, 0, 0)
        ZRO1 ABCDEFGH 2 A_FaceTarget
        Goto Missile

   //If the monster is hit by the "Killme" damage (which is "exploded" by the captured marine), automatically start firing at the target.
    Pain.KillMe:
        TNT1 A 0
        Goto Missile
	//Emergency manuever in case the monster gets killed by an "alerter" actor	
    Death.KillMe:
    Death.Taunt:
    Death.Avoid:
	    TNT1 A 0
		TNT1 A 0 A_ChangeFlag("SOLID", 0)
        TNT1 A 0 A_SpawnItem("MinigunGuy")
		TNT1 A 0
        Stop

	Pain:
	    TNT1 A 0 A_TakeInventory("SKZombieman", 1)
        TNT1 A 0 A_JumpIfInventory ("IsDown", 1, 6)
		TNT1 A 0 A_SpawnItem ("HeadshotTarget4", 0, 40,0)
		TNT1 A 0 A_CustomMissile ("brutal_FlyingBlood", 35, 0, random (0, 360), 2, random (0, 160))
	    MGZM G 3
		TNT1 A 0 A_SpawnItem ("HeadshotTarget4", 0, 40,0)
		MGZM G 3 A_Pain
	    Goto SeeContinue
        TNT1 AAAA 0
        TNT1 A 0 A_Pain
        ID11 FRRRQ 10
        TNT1 A 0 A_TakeInventory("IsDown", 1)
        Goto SeeContinue

        Pain.Melee:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory ("SKZombieMan", 1, "StealthKill")
        TNT1 A 0 A_JumpIfInventory ("IsDown", 1, 6)
		TNT1 A 0 A_SpawnItem ("HeadshotTarget4", 0, 40,0)
	    MGZM G 3
		TNT1 A 0 A_SpawnItem ("HeadshotTarget4", 0, 40,0)
		MGZM G 3 A_Pain
		Goto SeeContinue
        TNT1 AAAA 0
        TNT1 A 0 A_Pain
        ID11 FRRRQ 10
		TNT1 A 0 A_TakeInventory("SKZombieman", 1)
        TNT1 A 0 A_TakeInventory("IsDown", 1)
        Goto SeeContinue
		
	Pain.Kick:
	Pain.HeavyImpact:
         TNT1 A 0
		 TNT1 A 0 A_ChangeFlag("NOBLOCKMONST", 1)
		 TNT1 A 0 A_ChangeFLag("NODROPOFF", 0)
		 TNT1 A 0 A_ChangeFlag("NOPAIN", 1)
		 TNT1 A 0 A_ChangeFlag("USESPECIAL", 1)
         POS4 U 0 A_Pain
		 TNT1 A 0 A_ChangeFlag("NOPAIN", 0)
		 TNT1 A 0 A_ChangeFlag("FORCEXYBILLBOARD", 1)
		 TNT1 A 0 A_JumpIfInventory ("IsDown", 1, "Pain")
		 TNT1 A 0 A_TakeInventory("SKZombieman", 1)
		 POS4 U 1 A_facetarget
         TNT1 A 0 ThrustThingZ(0,30,0,1)
		 TNT1 A 0 A_FaceTarget
         POS4 U 3 ThrustThing(angle*256/360+128, 10, 0, 0)
		 TNT1 A 0 A_GiveInventory("IsDown", 1)
		 
         POS4 UVWXY 3
		 Goto FallingAfterImpact

	FallingAfterImpact:
		ID31 B 1 A_GiveInventory ("FallingHeight", 1)
		ID31 B 1 A_CheckFloor ("GetUp")
		TNT1 A 0 A_PlaySound("BODYF",6)
		TNT1 A 0 A_JumpIf (momz == 0, "GetUp")
		Loop
		
		GetUp:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory ("FallingHeight", 5, "FallingDie")
		TNT1 A 0 A_TakeInventory("FallingHeight", 100)
		ID94 AAAAAAA 5 A_JumpIf(momz < 0, "FallingAfterImpact")
        TNT1 A 0 A_TakeInventory("IsDown", 1)
		ID94 B 10
        Goto SeeContinue
		
}}