ACTOR PrePlacedMarineMinigun Replaces MarineChaingun
{
Translation  "112:127=[220,0,0]:[0,0,0]", "48:76=[205,133,63]:[0,0,0]"
MONSTER
Height 56
Radius 16
-COUNTKILL
    States
	{
	Spawn:
	PL42 A 1
	TNT1 A 0 A_NoBlocking
	PL42 A 1
	TNT1 A 0 A_SpawnItemEx ("Marine_MinigunSpawn",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	Stop
    }
}

ACTOR Marine_MinigunSpawn: RedTorch
{
    Radius 10
    Height 48
	MONSTER
	-SHOOTABLE
	-COUNTKILL
	-FRIENDLY
	Translation  "112:127=[220,0,0]:[0,0,0]", "48:76=[205,133,63]:[0,0,0]"
	States
    {
    Spawn:
	    PL42 A 10
		PL42 A 1 A_CheckSight("DontSpawn")
		TNT1 A 0 A_Chase
		TNT1 A 0 A_Look
	See:
		TNT1 A 0 ACS_NamedExecute("AddMarineMinigun")
		TNT1 A 0 A_SpawnItemEx ("Marine_Minigun",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        Stop
	DontSpawn:
	    PL42 A 1
		Goto Spawn
    }
}

ACTOR Marine_Minigun: Marine_Rifle
{
	DropItem "DropedChaingunSpawner"
	Translation  "112:127=[220,0,0]:[0,0,0]", "48:76=[205,133,63]:[0,0,0]"
	MaxTargetRange 4096
	States
	{
	Active:
		TNT1 A 0
		TNT1 A 0 A_CustomMissile ("OrderTitle2", 50, 0, 0, 2, 90)
		TNT1 A 0 A_PlaySound("MarineGuard", 2)
		TNT1 A 0 A_ChangeFlag("NOPAIN", 1)
		PL42 A 30
		TNT1 A 0 A_SpawnItemEx ("MinigunMarineGuarding",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Thing_Remove(0)
		Stop

	Spawn:
		TNT1 A 0
		TNT1 A 0 A_ChangeFLag("FRIENDLY", 1)
		TNT1 A 0 A_ChangeFLag("SOLID", 0)
		TNT1 A 0 A_ChangeFlag("MISSILEMORE", 1)
		TNT1 A 0 A_ChangeFlag("MISSILEEVENMORE", 1)
		TNT1 A 0 A_GiveInventory("TargetIsAMarine")
		PL42 A 4 A_Look
		Goto FindPlayer

	ForgetTarget:
		TNT1 A 0
		TNT1 A 0 A_ClearTarget
		Goto Spawn

	ForgetActiveTarget:
		TNT1 A 0
		TNT1 A 0 A_StopSound(5)
		TNT1 A 0 A_PlaySound("CHAINSTO", 5)
		PL42 E 60 A_Look
		TNT1 A 0 A_ClearTarget
		Goto Spawn

	See:
		TNT1 A 0
		TNT1 A 0 A_ChangeFLag("FRIENDLY", 1)
		TNT1 A 0 A_ChangeFLag("SOLID", 0)
		TNT1 A 0 A_ChangeFlag("MISSILEMORE", 1)
		TNT1 A 0 A_ChangeFlag("MISSILEEVENMORE", 1)
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMarine", 1, "FollowPlayer")
		MAR4 AAA 1 A_Chase

		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMarine", 1, "FollowPlayer")
		MAR4 BBB 1 A_Chase
		TNT1 A 0 A_JumpIfInventory("evmarinenoway", 1, "CheckIfCanJumpSee")

		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMarine", 1, "FollowPlayer")
		MAR4 CCC 1 A_Chase
		TNT1 A 0 A_CustomMissile("EvilMarineCheckFront", 28, 0, 0, 2, 0)

		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMarine", 1, "FollowPlayer")
		MAR4 BBB 1 A_Chase
		TNT1 A 0 A_CustomMissile("EvilMarineCheckJump", 64, 0, 0, CMF_AIMDIRECTION, 45)

		TNT1 A 0 A_CheckSight("ForgetTarget")
		TNT1 A 0 A_ChangeFlag("FRIENDLY", 0)
		TNT1 A 0 A_ChangeFLag("SOLID", 0)
		TNT1 A 0 A_ChangeFlag("MISSILEMORE", 0)
		TNT1 A 0 A_ChangeFlag("MISSILEEVENMORE", 0)

		TNT1 A 0 A_JumpIfCloser(256, "Waits")
		PL42 AAA 1 A_Chase("","")
		TNT1 A 0 A_JumpIfCloser(256, "Waits")
		PL42 BBA 1 A_Chase("","")

		TNT1 A 0 A_CheckSight("CheckIfPlayerSee")

		TNT1 A 0 A_JumpIfCloser(256, "Waits")
		PL42 CCC 1 A_Chase("","")
		TNT1 A 0 A_JumpIfCloser(256, "Waits")
		PL42 DDD 1 A_Chase("","")

		TNT1 A 0 A_CheckSight("CheckIfPlayerSee")

		TNT1 A 0 A_JumpIfCloser(256, "Waits")
		PL42 AAA 1 A_Chase("","")
		TNT1 A 0 A_JumpIfCloser(256, "Waits")
		PL42 BBB 1 A_Chase("","")
		TNT1 A 0 A_JumpIfInventory("evmarinenoway", 1, "CheckIfCanJumpFollow")

		TNT1 A 0 A_CheckSight("CheckIfPlayerSee")

		TNT1 A 0 A_JumpIfCloser(256, "Waits")
		PL42 CCC 1 A_Chase("","")
		TNT1 A 0 A_CustomMissile("EvilMarineCheckFront", 28, 0, 0, 2, 0)
		TNT1 A 0 A_JumpIfCloser(256, "Waits")
		PL42 DDD 1 A_Chase("","")
		TNT1 A 0 A_CustomMissile("EvilMarineCheckJump", 64, 0, 0, CMF_AIMDIRECTION, 45)

		TNT1 A 0 A_CheckSight("CheckIfPlayerSee")
		Loop

	CheckIfCanJumpSee:
		TNT1 A 0
		PL42 H 2 A_FaceTarget
		TNT1 A 0 A_TakeInventory("evmarinenoway", 1)
		TNT1 A 0 A_JumpIfInventory("evmarinecanjump", 1, "Jump")
		Goto See

	CheckIfCanJumpFollow:
		TNT1 A 0
		PL42 H 2 A_FaceTarget
		TNT1 A 0 A_TakeInventory("evmarinenoway", 1)
		TNT1 A 0 A_JumpIfInventory("evmarinecanjump", 1, "Jump")
		Goto FollowPlayer

	FindPlayer:
		TNT1 A 0
	    TNT1 A 0 A_ChangeFlag("FRIENDLY", 0)
		TNT1 A 0 A_ChangeFLag("SOLID", 0)
		TNT1 A 0 A_ChangeFlag("MISSILEMORE", 0)
		TNT1 A 0 A_ChangeFlag("MISSILEEVENMORE", 0)
		PL42 H 12 A_LookEx(0,0,0,0,360,"FollowPlayer")
		MAR4 AAA 1 A_Wander
		MAR4 BBB 1 A_Wander
		MAR4 CCC 1 A_Wander
		MAR4 BBB 1 A_Wander

	    TNT1 A 0 A_ChangeFlag("FRIENDLY", 1)
		TNT1 A 0 A_ChangeFLag("SOLID", 0)
		TNT1 A 0 A_ChangeFlag("MISSILEMORE", 1)
		TNT1 A 0 A_ChangeFlag("MISSILEEVENMORE", 1)
		PL42 H 12 A_Look
		MAR4 AAA 1 A_Wander
		MAR4 BBB 1 A_Wander
		MAR4 CCC 1 A_Wander
		MAR4 BBB 1 A_Wander
		Loop

	FollowPlayer:
		TNT1 A 0
		TNT1 A 0 A_JumpIfCloser(256, "Waits")
		PL42 AAA 1 A_Chase("","")
		TNT1 A 0 A_JumpIfCloser(256, "Waits")
		PL42 BBA 1 A_Chase("","")

		TNT1 A 0 A_CheckSight("CheckIfPlayerSee")

		TNT1 A 0 A_JumpIfCloser(256, "Waits")
		PL42 CCC 1 A_Chase("","")
		TNT1 A 0 A_JumpIfCloser(256, "Waits")
		PL42 DDD 1 A_Chase("","")

		TNT1 A 0 A_CheckSight("CheckIfPlayerSee")

		TNT1 A 0 A_JumpIfCloser(256, "Waits")
		PL42 AAA 1 A_Chase("","")
		TNT1 A 0 A_JumpIfCloser(256, "Waits")
		PL42 BBB 1 A_Chase("","")
		TNT1 A 0 A_JumpIfInventory("evmarinenoway", 1, "CheckIfCanJumpFollow")

		TNT1 A 0 A_CheckSight("CheckIfPlayerSee")

		TNT1 A 0 A_JumpIfCloser(256, "Waits")
		PL42 CCC 1 A_Chase("","")
		TNT1 A 0 A_CustomMissile("EvilMarineCheckFront", 28, 0, 0, 2, 0)
		TNT1 A 0 A_JumpIfCloser(256, "Waits")
		PL42 DDD 1 A_Chase("","")
		TNT1 A 0 A_CustomMissile("EvilMarineCheckJump", 64, 0, 0, CMF_AIMDIRECTION, 45)

		TNT1 A 0 A_CheckSight("CheckIfPlayerSee")
		Goto FollowPlayer

	CheckIfPlayerSee:
		TNT1 A 0
		TNT1 A 0 A_JumpIfCloser(256, 1)
		Goto Pathfind
		TNT1 AAA 0
		Goto FollowPlayer

	Pathfind:
		TNT1 A 0
		TNT1 A 0 A_JumpIFInTargetInventory("IsPLayer", 1, 1)
		Goto FindPlayer
		TNT1 AAA 0
		TNT1 A 0 A_SpawnItemEx ("Marine_MinigunPathfinder",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		Stop

	Waits:
		PL42 E 0
		PL42 E 8 A_FaceTarget
		TNT1 A 0 A_JumpIfInTargetInventory("IsPlayer", 1, 1)
		Goto ForgetTarget
		TNT1 A 0 A_Jump(32, "Waits2", "Waits3")
		PL42 E 8 A_FaceTarget
		TNT1 A 0 A_ClearTarget
		TNT1 A 0 A_ChangeFLag("FRIENDLY", 1)
		TNT1 A 0 A_ChangeFlag("MISSILEMORE", 1)
		TNT1 A 0 A_ChangeFlag("MISSILEEVENMORE", 1)
		PL42 EE 16 A_Look
		TNT1 A 0 A_JumpIfHealthLower(160,"Heal")
		TNT1 A 0 A_ClearTarget
		TNT1 A 0 A_ChangeFLag("FRIENDLY", 0)
		TNT1 A 0 A_ChangeFlag("MISSILEMORE", 0)
		TNT1 A 0 A_ChangeFlag("MISSILEEVENMORE", 0)
		TNT1 A 0 A_CheckSight("FollowPlayer")
		PL42 E 8 A_LookEx(0,0,0,0,360,"FollowPlayer")
		Goto FindPlayer

	Waits2:
		PL42 E 0
		TNT1 A 0 A_PlaySound("MRNWT", 2)
		PL42 E 8 A_SetAngle(90 + angle)
		TNT1 A 0 A_ClearTarget
		TNT1 A 0 A_ChangeFLag("FRIENDLY", 1)
		TNT1 A 0 A_ChangeFlag("MISSILEMORE", 1)
		TNT1 A 0 A_ChangeFlag("MISSILEEVENMORE", 1)
		PL42 EE 16 A_Look
		TNT1 A 0 A_JumpIfHealthLower(160,"Heal")
		TNT1 A 0 A_ClearTarget
		TNT1 A 0 A_ChangeFLag("FRIENDLY", 0)
		TNT1 A 0 A_ChangeFlag("MISSILEMORE", 0)
		TNT1 A 0 A_ChangeFlag("MISSILEEVENMORE", 0)
		TNT1 A 0 A_CheckSight("FollowPlayer")
		PL42 E 8 A_LookEx(0,0,0,0,360,"FollowPlayer")
		Goto FindPlayer

	Waits3:
		PL42 E 0
		TNT1 A 0 A_JumpIfInTargetInventory("Clip2", 30, 1)
		Goto GiveAmmo
		TNT1 A 0 A_PlaySound("MRNWC", 2)
		PL42 E 8 A_SetAngle(-90 + angle)
		TNT1 A 0 A_ClearTarget
		TNT1 A 0 A_ChangeFLag("FRIENDLY", 1)
		TNT1 A 0 A_ChangeFlag("MISSILEMORE", 1)
		TNT1 A 0 A_ChangeFlag("MISSILEEVENMORE", 1)
		PL42 EE 16 A_Look
		TNT1 A 0 A_JumpIfHealthLower(160,"Heal")
		TNT1 A 0 A_ClearTarget
		TNT1 A 0 A_ChangeFLag("FRIENDLY", 0)
		TNT1 A 0 A_ChangeFlag("MISSILEMORE", 0)
		TNT1 A 0 A_ChangeFlag("MISSILEEVENMORE", 0)
		TNT1 A 0 A_CheckSight("FollowPlayer")
		PL42 E 8 A_LookEx(0,0,0,0,360,"FollowPlayer")
		Goto FindPlayer

	Heal:
		TNT1 A 0
		TNT1 A 0 HealThing(1)
		TNT1 A 0 A_CustomMissile ("OrderTitle4", 50, 0, 0, 2, 90)
		TNT1 A 0 A_ClearTarget
		TNT1 A 0 A_ChangeFLag("FRIENDLY", 0)
		TNT1 A 0 A_ChangeFlag("MISSILEMORE", 0)
		TNT1 A 0 A_ChangeFlag("MISSILEEVENMORE", 0)
		PL42 E 8 A_LookEx(0,0,0,0,360,"FollowPlayer")
		Goto FindPlayer

	GiveAmmo:
		TNT1 A 0
		PL42 E 10 A_FaceTarget
		TNT1 A 0 A_PlaySound("MRNGI1")
		PL42 E 15 A_FaceTarget
		PLA1 H 1 A_FaceTarget
		PLA1 E 4 A_SpawnItemEx("Clip2Spawner",16,0,32,5)
		PLA1 H 1 A_FaceTarget
		PL42 E 9 A_FaceTarget
		Goto Waits

	Missile:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsACyberdemon", 1, "CheckRetreat")
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMastermind", 1, "CheckRetreat")
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsABaronOfHell", 1, "CheckRetreat")
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMancubus", 1, "CheckRetreat")
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMarine", 1, "FollowPlayer")
		TNT1 A 0 A_JumpIfInTargetInventory("IsPlayer", 1, "FollowPlayer")
	MissileContinue:
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsACyberdemon", 1, "CheckRetreat")
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMastermind", 1, "CheckRetreat")
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsABaronOfHell", 1, "CheckRetreat")
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMancubus", 1, "CheckRetreat")
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMarine", 1, "FollowPlayer")
		TNT1 A 0 A_JumpIfInTargetInventory("IsPlayer", 1, "FollowPlayer")
		TNT1 A 0 A_Jump(128, "MissileLeft", "MissileRight")
		PL42 E 1 A_FaceTarget
		PL42 H 1 BRIGHT A_CustomMissile("MarineMuzzle1", 32)
		TNT1 A 0 A_AlertMonsters(0, AMF_TARGETEMITTER)
		TNT1 A 0 A_CustomMissile("DistantFireSoundMachinegun", 32, 0, 0, 1, 0)
		TNT1 A 0 A_PlaySound("CHGNSHOT", 5)
		TNT1 A 0 A_CustomMissile("MarineMinigunTracer", 48, 0, random(-2,2), CMF_OFFSETPITCH, random(-2,2))
		TNT1 A 0 A_SpawnItem ("RifleCaseSpawn", 0, 30,0)

		TNT1 A 0 A_MonsterRefire(0,"ForgetActiveTarget")
		Goto MissileContinue

	MissileLeft:
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMarine", 1, "FollowPlayer")
		TNT1 A 0 A_JumpIfInTargetInventory("IsPlayer", 1, "FollowPlayer")
		PL42 E 1 A_FaceTarget
		TNT1 A 0 ThrustThing(angle*256/360+192, 3, 0, 0)
		PL42 H 1 BRIGHT A_CustomMissile("MarineMuzzle1", 32)
		TNT1 A 0 A_AlertMonsters(0, AMF_TARGETEMITTER)
		TNT1 A 0 A_CustomMissile("DistantFireSoundMachinegun", 32, 0, 0, 1, 0)
		TNT1 A 0 A_PlaySound("CHGNSHOT", 5)
		TNT1 A 0 A_CustomMissile("MarineMinigunTracer", 48, 0, random(-2,2), CMF_OFFSETPITCH, random(-2,2))
		TNT1 A 0 A_SpawnItem ("RifleCaseSpawn", 0, 30,0)

		TNT1 A 0 A_MonsterRefire(0,"ForgetActiveTarget")
		Goto MissileContinue

	MissileRight:
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMarine", 1, "FollowPlayer")
		TNT1 A 0 A_JumpIfInTargetInventory("IsPlayer", 1, "FollowPlayer")
		PL42 E 1 A_FaceTarget
		TNT1 A 0 ThrustThing(angle*256/360+64, 3, 0, 0)
		PL42 H 1 BRIGHT A_CustomMissile("MarineMuzzle1", 32)
		TNT1 A 0 A_AlertMonsters(0, AMF_TARGETEMITTER)
		TNT1 A 0 A_CustomMissile("DistantFireSoundMachinegun", 32, 0, 0, 1, 0)
		TNT1 A 0 A_PlaySound("CHGNSHOT", 5)
		TNT1 A 0 A_CustomMissile("MarineMinigunTracer", 48, 0, random(-2,2), CMF_OFFSETPITCH, random(-2,2))
		TNT1 A 0 A_SpawnItem ("RifleCaseSpawn", 0, 30,0)

		TNT1 A 0 A_MonsterRefire(0,"ForgetActiveTarget")
		Goto MissileContinue

	CheckRetreat:
		TNT1 A 0
		TNT1 A 0 A_JumpIfCloser(256, "Retreat")
		Goto MissileContinue+4

	Retreat:
		PL42 E 1 A_FaceTarget
		TNT1 A 0 A_Recoil(5)
		PL42 H 1 BRIGHT A_CustomMissile("MarineMuzzle1", 32)
		TNT1 A 0 A_AlertMonsters(0, AMF_TARGETEMITTER)
		TNT1 A 0 A_CustomMissile("DistantFireSoundMachinegun", 32, 0, 0, 1, 0)
		TNT1 A 0 A_PlaySound("CHGNSHOT", 5)
		TNT1 A 0 A_CustomMissile("MarineMinigunTracer", 48, 0, random(-2,2), CMF_OFFSETPITCH, random(-2,2))
		TNT1 A 0 A_SpawnItem ("RifleCaseSpawn", 0, 30,0)

		PL42 E 1 A_FaceTarget
		TNT1 A 0 A_Recoil(5)
		PL42 H 1 BRIGHT A_CustomMissile("MarineMuzzle1", 32)
		TNT1 A 0 A_AlertMonsters(0, AMF_TARGETEMITTER)
		TNT1 A 0 A_CustomMissile("DistantFireSoundMachinegun", 32, 0, 0, 1, 0)
		TNT1 A 0 A_PlaySound("CHGNSHOT", 5)
		TNT1 A 0 A_CustomMissile("MarineMinigunTracer", 48, 0, random(-2,2), CMF_OFFSETPITCH, random(-2,2))
		TNT1 A 0 A_SpawnItem ("RifleCaseSpawn", 0, 30,0)

		PL42 E 1 A_FaceTarget
		TNT1 A 0 A_Recoil(5)
		PL42 H 1 BRIGHT A_CustomMissile("MarineMuzzle1", 32)
		TNT1 A 0 A_AlertMonsters(0, AMF_TARGETEMITTER)
		TNT1 A 0 A_CustomMissile("DistantFireSoundMachinegun", 32, 0, 0, 1, 0)
		TNT1 A 0 A_PlaySound("CHGNSHOT", 5)
		TNT1 A 0 A_CustomMissile("MarineMinigunTracer", 48, 0, random(-2,2), CMF_OFFSETPITCH, random(-2,2))
		TNT1 A 0 A_SpawnItem ("RifleCaseSpawn", 0, 30,0)

		PL42 E 1 A_FaceTarget
		TNT1 A 0 A_Recoil(5)
		PL42 H 1 BRIGHT A_CustomMissile("MarineMuzzle1", 32)
		TNT1 A 0 A_AlertMonsters(0, AMF_TARGETEMITTER)
		TNT1 A 0 A_CustomMissile("DistantFireSoundMachinegun", 32, 0, 0, 1, 0)
		TNT1 A 0 A_PlaySound("CHGNSHOT", 5)
		TNT1 A 0 A_CustomMissile("MarineMinigunTracer", 48, 0, random(-2,2), CMF_OFFSETPITCH, random(-2,2))
		TNT1 A 0 A_SpawnItem ("RifleCaseSpawn", 0, 30,0)
		Goto Pain.Avoid

	Melee:
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsACyberdemon", 1, "CheckRetreat")
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMastermind", 1, "CheckRetreat")
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsABaronOfHell", 1, "CheckRetreat")
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMancubus", 1, "CheckRetreat")
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMarine", 1, "FollowPlayer")
		TNT1 A 0 A_JumpIfInTargetInventory("IsPlayer", 1, "FollowPlayer")
		TNT1 A 0 A_PlaySound("MRNAT", 2)

		PL42 H 3 A_FaceTarget
		PKIK AB 3 A_FastChase
		PKIK C 3 A_CustomMissile("MarineKick",32,0,0,0)
		PKIK B 3 A_FastChase
		PL42 H 3 A_FaceTarget
		Goto See

	Jump:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("evmarinecanjump", 1)
		TNT1 A 0 ThrustThingZ(0, 32, 0, 1)
		TNT1 A 0 A_Recoil(-6)
		MAR4 J 3
		TNT1 A 0 A_CheckSight("WaitforLand")
		MAR4 J 1
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMarine", 1, "WaitForLand")
		TNT1 A 0 A_JumpIfInTargetInventory("IsPlayer", 1, "WaitForLand")
		TNT1 A 0 A_JumpIfTargetInLOS(1)
		Goto FollowPlayer
		TNT1 AAA 0
		TNT1 A 0 A_JumpIfCloser(128, "JumpKick")
		Goto Missile

	WaitforLand:
		TNT1 A 0
		MAR4 JJJJJJJJJJJ 3 A_Checkfloor("See")
		Goto See

	JumpBack:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("evmarinecanjump", 1)
		TNT1 A 0 ThrustThingZ(0, 32, 0, 1)
		TNT1 A 0 A_Recoil(6)
		MAR4 J 3
		TNT1 A 0 A_CheckSight("WaitforLand")
		MAR4 J 1
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMarine", 1, "WaitForLand")
		TNT1 A 0 A_JumpIfInTargetInventory("IsPlayer", 1, "WaitForLand")
		TNT1 A 0 A_JumpIfTargetInLOS(1)
		Goto WaitForLand
		TNT1 AAA 0
		TNT1 A 0 A_JumpIfCloser(128, "JumpKick")
		Goto WaitForLand

	Pain:
	    MAR4 E 3
		TNT1 A 0 A_Jump(128,"Pain.Avoid")
		MAR4 E 3 A_Pain
		Goto FollowPlayer

	Pain.Kick:
	Pain.ExtremePunches:
		MAR4 E 3 A_Pain
		Goto See

	Pain.Avoid:
		TNT1 A 0
		TNT1 A 0 A_Jump(192, "RollLeft", "RollRight")
		Goto JumpBack

	RollLeft:
		TNT1 A 0
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 ThrustThing(angle*256/360+192, 10, 0, 0)
		PROL EDCBA 3
		Goto See

	RollRight:
		TNT1 A 0
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 ThrustThing(angle*256/360+64, 10, 0, 0)
		PROL ABCDE 3
		Goto See

	Death:
	Death.Bullet:
		TNT1 A 0 A_CustomMissile ("MuchBlood", 50, 0, random (0, 360), 2, random (0, 160))
		TNT1 A 0 A_ChangeFlag("FRIENDLY", 0)	TNT1 A 0 A_ChangeFlag("USESPECIAL", 0)
		PLAY H 10 A_PlayerScream

		PLAY I 10 A_NoBlocking
		PLAY J 10
		TNT1 A 0 ACS_NamedExecute("RemoveMarineMinigun")
		PLAY KLM 10
		TNT1 A 0 A_SpawnItem ("MediumBloodSpot")
		PLAY N -1
		Stop

    Death.Eat:
		TNT1 A 0 A_ChangeFlag("FRIENDLY", 0)	TNT1 A 0 A_ChangeFlag("USESPECIAL", 0)
        TNT1 A 0 A_GiveToTarget("EatMe",1)
		TNT1 A 0 A_CustomMissile ("XDeath1", 1, 0, random (0, 360), 2, random (0, 160))
		TNT1 A 0 A_CustomMissile ("XDeath4", 1, 0, random (0, 360), 2, random (0, 160))
		TNT1 A 0 A_CustomMissile ("MuchBlood", 50, 0, random (0, 360), 2, random (0, 160))
		TNT1 A 0 ACS_NamedExecute("RemoveMarineMinigun")
        XPL1 A 10 A_XScream
        XPL1 B 20 A_NoBlocking
        XPL1 CDE 10
		TNT1 A 0 A_SpawnItem ("MediumBloodSpot")
        XPL1 E -1
        Stop

    Death.Cut:
	Death.Saw:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag("FRIENDLY", 0)	TNT1 A 0 A_ChangeFlag("USESPECIAL", 0)
		TNT1 A 0 A_CustomMissile ("XDeath1", 1, 0, random (0, 360), 2, random (0, 160))
		TNT1 A 0 A_CustomMissile ("XDeath2", 1, 0, random (0, 360), 2, random (0, 160))
		TNT1 A 0 A_CustomMissile ("XDeath3", 1, 0, random (0, 360), 2, random (0, 160))
		TNT1 A 0 A_CustomMissile ("XDeath4", 1, 0, random (0, 360), 2, random (0, 160))
        TNT1 A 0 A_CustomMissile ("RipGuts", 50, 0, random (0, 360), 2, random (0, 160))
        TNT1 A 0 A_CustomMissile ("XDeathHalfMarine", 50, 0, random (0, 360), 2, random (0, 160))
        TNT1 AA 0 A_CustomMissile ("MuchBlood", 50, 0, random (0, 360), 2, random (0, 160))
        XPL2 A 10 A_XScream
        TNT1 AA 0 A_CustomMissile ("MuchBlood", 50, 0, random (0, 360), 2, random (0, 160))
        XPL2 B 20 A_NoBlocking
		TNT1 A 0 ACS_NamedExecute("RemoveMarineMinigun")
        TNT1 AA 0 A_CustomMissile ("MuchBlood", 50, 0, random (0, 360), 2, random (0, 160))
        XPL2 C 10 A_CustomMissile ("MuchBlood", 50, 0, random (0, 360), 2, random (0, 160))
        TNT1 AA 0 A_CustomMissile ("MuchBlood", 50, 0, random (0, 360), 2, random (0, 160))
        XPL2 DE 10 A_CustomMissile ("MuchBlood", 50, 0, random (0, 360), 2, random (0, 160))
		TNT1 A 0 A_SpawnItem ("MediumBloodSpot")
        XPL2 E -1
        Stop

    Death.Slime:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag("FRIENDLY", 0)	TNT1 A 0 A_ChangeFlag("USESPECIAL", 0)
        TNT1 A 0 A_PlaySound("BIGSCREA")
		TNT1 A 0 ACS_NamedExecute("RemoveMarineMinigun")
        PMET ABCDEFGHI 10 A_CustomMissile ("PlasmaSmoke", 25, 0, random (0, 180), 2, random (0, 180))
        PMET JJJKKKLLL 3 A_CustomMissile ("PlasmaSmoke", 25, 0, random (0, 180), 2, random (0, 180))
        NULL A 0 A_NoBlocking
        PMET M -1
        Stop

    Death.Minigun:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag("FRIENDLY", 0)	TNT1 A 0 A_ChangeFlag("USESPECIAL", 0)
        TNT1 A 0 A_Jump (128, 3)
        Goto Death
        TNT1 AAA 0
		TNT1 A 0 A_CustomMissile ("XDeath1", 1, 0, random (0, 360), 2, random (0, 160))
		TNT1 A 0 A_CustomMissile ("XDeath2", 1, 0, random (0, 360), 2, random (0, 160))
		TNT1 A 0 A_CustomMissile ("XDeath3", 1, 0, random (0, 360), 2, random (0, 160))
		TNT1 A 0 A_CustomMissile ("XDeath4", 1, 0, random (0, 360), 2, random (0, 160))
        TNT1 A 0 A_CustomMissile ("RipGuts", 50, 0, random (0, 360), 2, random (0, 160))
        TNT1 A 0 A_CustomMissile ("XDeathHalfMarine", 50, 0, random (0, 360), 2, random (0, 160))
        TNT1 AA 0 A_CustomMissile ("MuchBlood", 50, 0, random (0, 360), 2, random (0, 160))
        XPL2 A 10 A_XScream
		TNT1 A 0 ACS_NamedExecute("RemoveMarineMinigun")
        TNT1 AA 0 A_CustomMissile ("MuchBlood", 50, 0, random (0, 360), 2, random (0, 160))
        XPL2 B 20 A_NoBlocking
        TNT1 AA 0 A_CustomMissile ("MuchBlood", 50, 0, random (0, 360), 2, random (0, 160))
        XPL2 C 10 A_CustomMissile ("MuchBlood", 50, 0, random (0, 360), 2, random (0, 160))
        TNT1 AA 0 A_CustomMissile ("MuchBlood", 50, 0, random (0, 360), 2, random (0, 160))
        XPL2 DE 10 A_CustomMissile ("MuchBlood", 50, 0, random (0, 360), 2, random (0, 160))
		TNT1 A 0 A_SpawnItem ("MediumBloodSpot")
        XPL2 E -1
        Stop

    Death.Rip:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag("FRIENDLY", 0)	TNT1 A 0 A_ChangeFlag("USESPECIAL", 0)
        TNT1 AAAAAAAAAAA 0 A_CustomMissile ("MuchBlood", 50, 0, random (0, 360), 2, random (0, 160))
        XPL3 A 10 A_XScream
        TNT1 AAAAA 0 A_CustomMissile ("MuchBlood", 50, 0, random (0, 360), 2, random (0, 160))
        XPL3 B 20 A_NoBlocking
		TNT1 A 0 ACS_NamedExecute("RemoveMarineMinigun")
        TNT1 A 0 A_CustomMissile ("MuchBlood", 50, 0, random (0, 360), 2, random (0, 160))
        XPL3 C 10 A_CustomMissile ("MuchBlood", 50, 0, random (0, 360), 2, random (0, 160))
        TNT1 A 0 A_CustomMissile ("MuchBlood", 50, 0, random (0, 360), 2, random (0, 160))
        XPL3 D 10 A_CustomMissile ("MuchBlood", 50, 0, random (0, 360), 2, random (0, 160))
        TNT1 A 0 A_CustomMissile ("MuchBlood", 50, 0, random (0, 360), 2, random (0, 160))
        XPL3 E 10 A_CustomMissile ("MuchBlood", 50, 0, random (0, 360), 2, random (0, 160))
        TNT1 A 0 A_CustomMissile ("MuchBlood", 50, 0, random (0, 360), 2, random (0, 160))
        XPL3 F 10 A_CustomMissile ("MuchBlood", 50, 0, random (0, 360), 2, random (0, 160))
        TNT1 A 0 A_CustomMissile ("MuchBlood", 50, 0, random (0, 360), 2, random (0, 160))
        XPL3 F 10 A_CustomMissile ("MuchBlood", 50, 0, random (0, 360), 2, random (0, 160))
		TNT1 A 0 A_SpawnItem ("MediumBloodSpot")
        XPL3 F -1
        Stop
	Death.Massacre:
	Death.Explosive:
	XDeath:
		TNT1 A 0 ThrustThingZ(0,60,0,1)
		TNT1 A 0 A_ChangeFlag("FRIENDLY", 0)	TNT1 A 0 A_ChangeFlag("USESPECIAL", 0)
        TNT1 A 0 A_CustomMissile ("MarineXDeath", 0, 0, random (0, 360), 2, random (0, 160))
		PPOD A 0 A_SpawnItemEx("BasicMarineGib1", 0, 0, 0, 0, 0, 0, 0, SXF_TRANSFERTRANSLATION)
		PPOD A 0 A_SpawnItemEx("BasicMarineGib2", 0, 0, 0, 0, 0, 0, 0, SXF_TRANSFERTRANSLATION)
		PPOD A 0 A_SpawnItemEx("BasicMarineGib3", 0, 0, 0, 0, 0, 0, 0, SXF_TRANSFERTRANSLATION)
		PPOD A 0 A_SpawnItemEx("BasicMarineGib4", 0, 0, 0, 0, 0, 0, 0, SXF_TRANSFERTRANSLATION)
        MHEA A 7 A_XScream
        MHEA B 7 A_NoBlocking
		TNT1 A 0 ACS_NamedExecute("RemoveMarineMinigun")
        MHEA CD 7
        MHEA E -1
		Stop

	 Crush:
	 Death.Stomp:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag("FRIENDLY", 0)	TNT1 A 0 A_ChangeFlag("USESPECIAL", 0)
	    TNT1 AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("Brutal_FlyingBloodTrail8", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 AAAAAA 0 bright A_CustomMissile ("SuperGoreSpawner", 5, 0, random (0, 360), 2, random (30, 180))
		TNT1 AAAAAA 0 bright A_CustomMissile ("XDeath1", 5, 0, random (0, 360), 2, random (30, 180))
		TNT1 AA 0 bright A_CustomMissile ("XDeath2", 55, 0, random (0, 360), 2, random (30, 180))
		TNT1 AA 0 bright A_CustomMissile ("XDeath3", 55, 0, random (0, 360), 2, random (30, 180))
		TNT1 A 0 A_SpawnItem ("GrowingBloodPool")
		TNT1 A 0 A_SpawnItem ("CrushedRemains")
		TNT1 A 0 ACS_NamedExecute("RemoveMarineMinigun")
		TNT1 A 1
		TNT1 A 1 A_XScream
		TNT1 A 1 A_NoBlocking
		Stop

	Death.SuperPunch:
	Death.SSG:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag("FRIENDLY", 0)	TNT1 A 0 A_ChangeFlag("USESPECIAL", 0)
	    PL42 O 2 A_FaceTarget
        TNT1 AAAA 0 A_CustomMissile ("XDeath1", 32, 0, random (170, 190), 2, random (0, 40))
		TNT1 AAAA 0 A_CustomMissile ("XDeath2", 32, 0, random (170, 190), 2, random (0, 40))
		TNT1 AAAA 0 A_CustomMissile ("XDeath3", 32, 0, random (170, 190), 2, random (0, 40))
		TNT1 AAAA 0 A_CustomMissile ("Brutal_FlyingBlood", 32, 0, random (170, 190), 2, random (0, 40))
		TNT1 AAAA 0 A_CustomMissile ("Brutal_FlyingBloodFaster", 32, 0, random (170, 190), 2, random (0, 40))
		TNT1 AAAA 0 A_CustomMissile ("Brutal_FlyingBloodMuchFaster", 32, 0, random (170, 190), 2, random (0, 40))
		TNT1 AAAA 0 A_CustomMissile ("SuperWallRedBlood", 32, 0, random (170, 190), 2, random (0, 40))
		TNT1 AAAA 0 A_CustomMissile ("SuperWallRedBlood", 46, 0, random (170, 190), 2, random (0, 40))
		TNT1 A 0 A_CustomMissile ("XDeathArm1", 32, 0, random (170, 190), 2, random (0, 40))
        TNT1 A 0 A_XScream
		TNT1 A 0 A_NoBlocking
		TNT1 A 0 ACS_NamedExecute("RemoveMarineMinigun")
        PL42 OPQRSTU 8
		TNT1 A 0 A_SpawnItem ("MediumBloodSpot")
        PL42 U -1
        Stop

    Death.Rape:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag("FRIENDLY", 0)	TNT1 A 0 A_ChangeFlag("USESPECIAL", 0)
		TNT1 AAAAAAAAAAAAAA 0 A_CustomMissile ("MuchBlood", 50, 0, random (0, 360), 2, random (0, 160))
		XPL4 A 20 A_XScream
		 TNT1 A 0 A_CustomMissile ("XDeath1", 1, 0, random (0, 360), 2, random (0, 160))
		 TNT1 A 0 A_CustomMissile ("XDeath2", 1, 0, random (0, 360), 2, random (0, 160))
		 TNT1 A 0 A_CustomMissile ("XDeath3", 1, 0, random (0, 360), 2, random (0, 160))
		 TNT1 A 0 A_CustomMissile ("XDeath4", 1, 0, random (0, 360), 2, random (0, 160))
        TNT1 AAAA 0 A_CustomMissile ("MuchBlood", 50, 0, random (0, 360), 2, random (0, 160))
        XPL4 B 20 A_NoBlocking
		TNT1 A 0 ACS_NamedExecute("RemoveMarineMinigun")
        TNT1 AAA 0 A_CustomMissile ("MuchBlood", 50, 0, random (0, 360), 2, random (0, 160))
        XPL4 C 20
        TNT1 AAA 0 A_CustomMissile ("MuchBlood", 50, 0, random (0, 360), 2, random (0, 160))
        XPL4 D 20
        TNT1 AAAA 0 A_CustomMissile ("MuchBlood", 50, 0, random (0, 360), 2, random (0, 160))
        XPL4 E 20
        TNT1 AAA 0 A_CustomMissile ("MuchBlood", 50, 0, random (0, 360), 2, random (0, 160))
        XPL4 F 20
        TNT1 AAAA 0 A_CustomMissile ("MuchBlood", 50, 0, random (0, 360), 2, random (0, 160))
		TNT1 A 0 A_SpawnItem ("MediumBloodSpot")
        XPL4 F -1
        Stop

    Death.plasma:
        TNT1 A 0
		TNT1 A 0 A_ChangeFlag("FRIENDLY", 0)	TNT1 A 0 A_ChangeFlag("USESPECIAL", 0)
        TNT1 A 0 A_XScream
        TNT1 A 0 A_NoBlocking
		TNT1 A 0 ACS_NamedExecute("RemoveMarineMinigun")
        TNT1 AAA 0 A_CustomMissile ("Brutal_FlyingBlood", 50, 0, random (0, 360), 2, random (0, 160))
	    TNT1 A 0 A_CustomMissile ("XDeathBurnedArm", 32, 0, random (0, 360), 2, random (0, 160))
	    TNT1 A 0 A_CustomMissile ("XDeathBurnedLeg", 32, 0, random (0, 360), 2, random (0, 160))
	    TNT1 A 0 A_CustomMissile ("XDeathBurnedSkull", 32, 0, random (0, 360), 2, random (0, 160))
	    TNT1 A 0 A_CustomMissile ("XDeathBurnedMeat", 32, 0, random (0, 360), 2, random (0, 160))
	    TNT1 A 0 A_CustomMissile ("XDeathBurnedMeat2", 32, 0, random (0, 360), 2, random (0, 160))
	    TNT1 A 0 A_CustomMissile ("XDeathBurnedMeat3", 32, 0, random (0, 360), 2, random (0, 160))
		EXPL AAAAAA 0 A_CustomMissile ("ExplosionSmoke", 32, 0, random (0, 360), 2, random (0, 360))
        TNT1 A 1
        TNT1 A -1
        Stop

		Death.GreenFire:
        TNT1 A 0
		TNT1 A 0 A_ChangeFlag("FRIENDLY", 0)	TNT1 A 0 A_ChangeFlag("USESPECIAL", 0)
        TNT1 A 0 A_XScream
        TNT1 A 0 A_NoBlocking
		TNT1 A 0 ACS_NamedExecute("RemoveMarineMinigun")
        TNT1 AAAA 0 A_CustomMissile ("Brutal_Blood", 30, 0, random (0, 360), 2, random (0, 160))

	    TNT1 A 0 A_CustomMissile ("XDeathBurnedArm", 32, 0, random (0, 360), 2, random (0, 160))
	    TNT1 A 0 A_CustomMissile ("XDeathBurnedLeg", 32, 0, random (0, 360), 2, random (0, 160))
	    TNT1 A 0 A_CustomMissile ("XDeathBurnedSkull", 32, 0, random (0, 360), 2, random (0, 160))
	    TNT1 A 0 A_CustomMissile ("XDeathBurnedMeat", 32, 0, random (0, 360), 2, random (0, 160))
	    TNT1 A 0 A_CustomMissile ("XDeathBurnedMeat2", 32, 0, random (0, 360), 2, random (0, 160))
	    TNT1 A 0 A_CustomMissile ("XDeathBurnedMeat3", 32, 0, random (0, 360), 2, random (0, 160))

		EXPL AAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("GreenFlameTrails", 50, 0, random (0, 360), 2, random (0, 360))
		XBRN AAAA 2 BRIGHT A_SpawnItem("GreenFlare",0,43)
        Stop

    Death.burn:
	TNT1 A 0
	TNT1 A 0 A_ChangeFlag("FRIENDLY", 0)	TNT1 A 0 A_ChangeFlag("USESPECIAL", 0)
	 PBUR A 1
      PBUR A 1 A_Scream
      PBUR A 1 A_NoBlocking
	  TNT1 A 0 ACS_NamedExecute("RemoveMarineMinigun")
       PBUR AAAABBBBCCCC 2 A_CustomMissile ("SmallFlameTrails", 32, 0, random (0, 180), 2, random (0, 180))
	    PBUR DDDDEEEE 2 A_CustomMissile ("SmallFlameTrails", 16, 0, random (0, 180), 2, random (0, 180))
        PBUR EEEEE 4 A_CustomMissile ("SmallFlameTrails", 8, 0, random (0, 180), 2, random (0, 180))
		PBUR EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 6 A_CustomMissile ("PlasmaSmoke", 8, 0, random (0, 180), 2, random (0, 180))
        PBUR E -1
        Stop

    Death.Fire:
	Death.Flames:
	Death.Burn:
	TNT1 A 0
		TNT1 A 0 A_ChangeFlag("FRIENDLY", 0)	TNT1 A 0 A_ChangeFlag("USESPECIAL", 0)
        TNT1 A 0 A_PlaySound("BIGSCREA")
      BURN W 6 A_Scream
      BURN X 6 A_NoBlocking
	  TNT1 A 0 ACS_NamedExecute("RemoveMarineMinigun")
       BUR2 ABCD 6 BRIGHT A_CustomMissile ("PlasmaSmoke", 8, 0, random (0, 180), 2, random (0, 180))
       BURN FGHIJKL 6 BRIGHT A_CustomMissile ("PlasmaSmoke", 8, 0, random (0, 180), 2, random (0, 180))
       BURN MNOPQRSTUV 6 BRIGHT A_CustomMissile ("PlasmaSmoke", 8, 0, random (0, 180), 2, random (0, 180))
        BURN VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV 6 A_CustomMissile ("PlasmaSmoke", 8, 0, random (0, 180), 2, random (0, 180))
        BURN V -1
      Stop

	  Death.ExplosiveImpact:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag("FRIENDLY", 0)	TNT1 A 0 A_ChangeFlag("USESPECIAL", 0)
		NULL A 0 ThrustThingZ(0,30,0,1)
		NULL AAAA 0 A_CustomMissile ("Brains1", 50, 0, random (0, 360), 2, random (0, 160))
		NULL A 0 A_CustomMissile ("Brains2", 50, 0, random (0, 360), 2, random (0, 160))
		NULL A 0 A_CustomMissile ("Brains3", 50, 0, random (0, 360), 2, random (0, 160))
		NULL A 0 A_CustomMissile ("Brains4", 50, 0, random (0, 360), 2, random (0, 160))
		NULL A 0 A_CustomMissile ("Brains5", 50, 0, random (0, 360), 2, random (0, 160))
		NULL AAAA 0 A_CustomMissile ("SmallBrainPiece", random (45, 55), random (5, -5), random (170, 190), 2, random (0, 40))
		NULL AAAA 0 A_CustomMissile ("SmallBrainPiece", 50, 0, random (0, 360), 2, random (0, 160))
		NULL AA 0 A_CustomMissile ("SuperWallRedBlood", 46, 0, random (170, 190), 2, random (0, 40))
        NULL AAAAAAAAAAA 0 A_CustomMissile ("BrainBlood", 50, 0, random (0, 360), 2, random (0, 160))
	    NULL A 0 A_CustomMissile ("XDeathArm1", 35, 0, random (0, 360), 2, random (0, 160))
	    NULL A 0 A_CustomMissile ("XDeath3", 40, 0, random (0, 360), 2, random (0, 160))
	    PPOD A 0 A_SpawnItemEx("BasicMarineGib1", 0, 0, 0, 0, 0, 0, 0, SXF_TRANSFERTRANSLATION)
        NULL AAAA 0 A_CustomMissile ("XDeath1", 40, 0, random (0, 360), 2, random (0, 160))
		TNT1 A 0 ACS_NamedExecute("RemoveMarineMinigun")
		NULL A 0 A_XScream
        XPL6 A 5
		NULL A 0 A_NoBlocking
        XPL6 BCDE 5
        XPL6 F -1
        Stop

    Crush:
        TNT1 A 0 A_PlaySound("misc/xdeath4")
        CRS1 A 5
        CRS1 A -1
        Stop

    Death.HKFT:
	Death.BHFT:
	Death.RVFT:
		TNT1 A 1 A_Scream
		TNT1 A 1 A_NoBlocking
        TNT1 A 0 A_GiveToTarget("Curbstomp_Marine",1)
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag("FRIENDLY", 0)	TNT1 A 0 A_ChangeFlag("USESPECIAL", 0)
		TNT1 A 0 ACS_NamedExecute("RemoveMarineMinigun")
		TNT1 A -1
        Stop

    Death.FatalityMarine:
		TNT1 A 1 A_PlayerScream
		TNT1 A 0 A_GiveToTarget("GoFatality", 1)
		TNT1 A 1 A_NoBlocking
		TNT1 A 0 ACS_NamedExecute("RemoveMarineMinigun")
        TNT1 A 0 A_GiveToTarget("Fatality_Marine",1)
		TNT1 A -1
        Stop
	}
}

ACTOR MinigunMarineGuarding: Marine_Minigun
{
	Speed 0
	FastSpeed 0
	MaxStepHeight 0
	+MISSILEMORE
	+NODROPOFF
	+MISSILEEVENMORE
	States
	{
	Active:
		TNT1 A 0
		TNT1 A 0 A_CustomMissile ("OrderTitle1", 50, 0, 0, 2, 90)
		TNT1 A 0 A_PlaySound("MarineFollow", 2)
		TNT1 A 0 A_ChangeFlag("NOPAIN", 1)
		PL42 A 30
		TNT1 A 0 A_SpawnItemEx ("Marine_Minigun",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Thing_Remove(0)
		Stop

	Spawn:
		TNT1 A 0
		TNT1 A 0 A_ChangeFLag("FRIENDLY", 1)
		TNT1 A 0 A_ChangeFLag("SOLID", 0)
		TNT1 A 0 A_GiveInventory("TargetIsAMarine")
		PL42 EEEEEEEE 4 A_Look
		TNT1 A 0 A_JumpIfHealthLower(160,"Heal")
		Loop

	ForgetTarget:
		TNT1 A 0
		TNT1 A 0 A_ClearTarget
		Goto Spawn

	ForgetActiveTarget:
		TNT1 A 0
		TNT1 A 0 A_StopSound(5)
		TNT1 A 0 A_PlaySound("CHAINSTO", 5)
		PL42 E 60 A_Look
		TNT1 A 0 A_ClearTarget
		Goto Spawn

	Heal:
		TNT1 A 0
		TNT1 A 0 HealThing(1)
		TNT1 A 0 A_CustomMissile ("OrderTitle4", 50, 0, 0, 2, 90)
		Goto Spawn

	See:
		PL42 EEEEEEHHHHHH 1 A_Chase
		TNT1 A 0 A_ClearTarget
		Goto Spawn

	Missile:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsACyberdemon", 1, "CheckRetreat")
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMastermind", 1, "CheckRetreat")
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsABaronOfHell", 1, "CheckRetreat")
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMancubus", 1, "CheckRetreat")
		TNT1 A 0 A_JumpIfInTargetInventory("IsPlayer", 1, "Spawn")
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMarine", 1, "Spawn")

	MissileContinue:
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsACyberdemon", 1, "CheckRetreat")
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMastermind", 1, "CheckRetreat")
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsABaronOfHell", 1, "CheckRetreat")
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMancubus", 1, "CheckRetreat")
		TNT1 A 0 A_JumpIfInTargetInventory("IsPlayer", 1, "Spawn")
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMarine", 1, "Spawn")
		TNT1 A 0 A_Jump(128, "MissileLeft", "MissileRight")
		PL42 E 1 A_FaceTarget
		PL42 H 1 BRIGHT A_CustomMissile("MarineMuzzle1", 32)
		TNT1 A 0 A_AlertMonsters(0, AMF_TARGETEMITTER)
		TNT1 A 0 A_CustomMissile("DistantFireSoundMachinegun", 32, 0, 0, 1, 0)
		TNT1 A 0 A_PlaySound("CHGNSHOT", 5)
		TNT1 A 0 A_CustomMissile("MarineMinigunTracer", 48, 0, random(-2,2), CMF_OFFSETPITCH, random(-2,2))
		TNT1 A 0 A_SpawnItem ("RifleCaseSpawn", 0, 30,0)

		TNT1 A 0 A_MonsterRefire(0,"ForgetActiveTarget")
		Goto MissileContinue

	MissileLeft:
		PL42 E 1 A_FaceTarget
		TNT1 A 0 ThrustThing(angle*256/360+192, 3, 0, 0)
		PL42 H 1 BRIGHT A_CustomMissile("MarineMuzzle1", 32)
		TNT1 A 0 A_AlertMonsters(0, AMF_TARGETEMITTER)
		TNT1 A 0 A_CustomMissile("DistantFireSoundMachinegun", 32, 0, 0, 1, 0)
		TNT1 A 0 A_PlaySound("CHGNSHOT", 5)
		TNT1 A 0 A_CustomMissile("MarineMinigunTracer", 48, 0, random(-2,2), CMF_OFFSETPITCH, random(-2,2))
		TNT1 A 0 A_SpawnItem ("RifleCaseSpawn", 0, 30,0)

		TNT1 A 0 A_MonsterRefire(0,"ForgetActiveTarget")
		Goto MissileContinue

	MissileRight:
		PL42 E 1 A_FaceTarget
		TNT1 A 0 ThrustThing(angle*256/360+64, 3, 0, 0)
		PL42 H 1 BRIGHT A_CustomMissile("MarineMuzzle1", 32)
		TNT1 A 0 A_AlertMonsters(0, AMF_TARGETEMITTER)
		TNT1 A 0 A_CustomMissile("DistantFireSoundMachinegun", 32, 0, 0, 1, 0)
		TNT1 A 0 A_PlaySound("CHGNSHOT", 5)
		TNT1 A 0 A_CustomMissile("MarineMinigunTracer", 48, 0, random(-2,2), CMF_OFFSETPITCH, random(-2,2))
		TNT1 A 0 A_SpawnItem ("RifleCaseSpawn", 0, 30,0)

		TNT1 A 0 A_MonsterRefire(0,"ForgetActiveTarget")
		Goto MissileContinue

	CheckRetreat:
		TNT1 A 0
		TNT1 A 0 A_JumpIfCloser(256, "Retreat")
		Goto MissileContinue+4

	Retreat:
		PL42 E 1 A_FaceTarget
		TNT1 A 0 A_Recoil(5)
		PL42 H 1 BRIGHT A_CustomMissile("MarineMuzzle1", 32)
		TNT1 A 0 A_AlertMonsters(0, AMF_TARGETEMITTER)
		TNT1 A 0 A_CustomMissile("DistantFireSoundMachinegun", 32, 0, 0, 1, 0)
		TNT1 A 0 A_PlaySound("CHGNSHOT", 5)
		TNT1 A 0 A_CustomMissile("MarineMinigunTracer", 48, 0, random(-2,2), CMF_OFFSETPITCH, random(-2,2))
		TNT1 A 0 A_SpawnItem ("RifleCaseSpawn", 0, 30,0)

		PL42 E 1 A_FaceTarget
		TNT1 A 0 A_Recoil(5)
		PL42 H 1 BRIGHT A_CustomMissile("MarineMuzzle1", 32)
		TNT1 A 0 A_AlertMonsters(0, AMF_TARGETEMITTER)
		TNT1 A 0 A_CustomMissile("DistantFireSoundMachinegun", 32, 0, 0, 1, 0)
		TNT1 A 0 A_PlaySound("CHGNSHOT", 5)
		TNT1 A 0 A_CustomMissile("MarineMinigunTracer", 48, 0, random(-2,2), CMF_OFFSETPITCH, random(-2,2))
		TNT1 A 0 A_SpawnItem ("RifleCaseSpawn", 0, 30,0)

		PL42 E 1 A_FaceTarget
		TNT1 A 0 A_Recoil(5)
		PL42 H 1 BRIGHT A_CustomMissile("MarineMuzzle1", 32)
		TNT1 A 0 A_AlertMonsters(0, AMF_TARGETEMITTER)
		TNT1 A 0 A_CustomMissile("DistantFireSoundMachinegun", 32, 0, 0, 1, 0)
		TNT1 A 0 A_PlaySound("CHGNSHOT", 5)
		TNT1 A 0 A_CustomMissile("MarineMinigunTracer", 48, 0, random(-2,2), CMF_OFFSETPITCH, random(-2,2))
		TNT1 A 0 A_SpawnItem ("RifleCaseSpawn", 0, 30,0)

		PL42 E 1 A_FaceTarget
		TNT1 A 0 A_Recoil(5)
		PL42 H 1 BRIGHT A_CustomMissile("MarineMuzzle1", 32)
		TNT1 A 0 A_AlertMonsters(0, AMF_TARGETEMITTER)
		TNT1 A 0 A_CustomMissile("DistantFireSoundMachinegun", 32, 0, 0, 1, 0)
		TNT1 A 0 A_PlaySound("CHGNSHOT", 5)
		TNT1 A 0 A_CustomMissile("MarineMinigunTracer", 48, 0, random(-2,2), CMF_OFFSETPITCH, random(-2,2))
		TNT1 A 0 A_SpawnItem ("RifleCaseSpawn", 0, 30,0)
		Goto Pain.Avoid

	Melee:
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsACyberdemon", 1, "CheckRetreat")
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMastermind", 1, "CheckRetreat")
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsABaronOfHell", 1, "CheckRetreat")
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMancubus", 1, "CheckRetreat")
		TNT1 A 0 A_JumpIfInTargetInventory("IsPlayer", 1, "Spawn")
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMarine", 1, "Spawn")
		TNT1 A 0 A_PlaySound("MRNAT", 2)

		PL42 H 3 A_FaceTarget
		PKIK AB 3 A_FastChase
		PKIK C 3 A_CustomMissile("MarineKick",32,0,0,0)
		PKIK B 3 A_FastChase
		PL42 H 3 A_FaceTarget
		Goto See

	WaitforLand:
		TNT1 A 0
		MAR4 JJJJJJJJJJJ 3 A_Checkfloor("See")
		Goto See

	JumpBack:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("evmarinecanjump", 1)
		TNT1 A 0 ThrustThingZ(0, 32, 0, 1)
		TNT1 A 0 A_Recoil(6)
		MAR4 J 3
		TNT1 A 0 A_CheckSight("WaitforLand")
		MAR4 J 1
		TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMarine", 1, "WaitForLand")
		TNT1 A 0 A_JumpIfInTargetInventory("IsPlayer", 1, "WaitForLand")
		TNT1 A 0 A_JumpIfTargetInLOS(1)
		Goto WaitForLand
		TNT1 AAA 0
		TNT1 A 0 A_JumpIfCloser(128, "JumpKick")
		Goto WaitForLand

	JumpKick:
		TNT1 A 0
		PKIK ABC 2 A_Facetarget
		TNT1 A 0 A_Recoil(-6)
		AKIK A 2 A_CustomMissile("MarineAirKick",28,0,0,0)
		PKIK CBA 2 A_Facetarget
		Goto WaitforLand

	Pain:
	    MAR4 E 3
		TNT1 A 0 A_Jump(128,"Pain.Avoid")
		MAR4 E 3 A_Pain
		Goto See

	Pain.Kick:
	Pain.ExtremePunches:
		MAR4 E 3 A_Pain
		Goto See

	Pain.Avoid:
		TNT1 A 0
		TNT1 A 0 A_Jump(192, "RollLeft", "RollRight")
		Goto JumpBack

	RollLeft:
		TNT1 A 0
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 ThrustThing(angle*256/360+192, 10, 0, 0)
		PROL EDCBA 3
		Goto See

	RollRight:
		TNT1 A 0
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 ThrustThing(angle*256/360+64, 10, 0, 0)
		PROL ABCDE 3
		Goto See
	}
}

ACTOR Marine_MinigunPathfinder
{
	Radius 16
	Height 56
	Speed 50
	PainChance 255
	Monster
	damagefactor "SpawnMarine", 8000.0
	-COUNTKILL
	+NODROPOFF
	+NOTARGET
	+THRUACTORS
	+MISSILEMORE
	+MISSILEEVENMORE
    +DONTSPLASH
	-SHOOTABLE
	-FRIENDLY
	+NOCLIP
	+LOOKALLAROUND
	+NOINFIGHTING
	+FIXMAPTHINGPOS
	States
	{
	Spawn:
		TNT1 A 0 A_GiveInventory("TargetIsAMarine", 1)
		TNT1 A 4 A_LookEx(0,0,0,0,360,"See")
		Loop

    See:
		TNT1 A 0 A_ChangeFlag("NOCLIP", 1)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Chase
		Goto Spawn

	Melee:
	Missile:
		TNT1 A 1 A_FaceTarget
		TNT1 A 0 A_ChangeFlag("NOCLIP", 0)
		TNT1 A 0 A_Recoil(4)
		TNT1 A 4 A_FaceTarget
		TNT1 A 0 A_JumpIf(((VelY == 0)&&(VelX == 0)), "CheckAgain")
	SpawnMarine:
		TNT1 A 0
		TNT1 A 2 A_NoBlocking
		TNT1 A 0 A_SpawnItemEx("Marine_Minigun",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItem("FriendlymarineTFog")
		Stop
	CheckAgain:
		TNT1 A 0
		TNT1 A 1 A_FaceTarget
		TNT1 A 0 A_JumpIf(((VelY == 0)&&(VelX == 0)), "See")
		Goto SpawnMarine
	}
}