Actor TaskForceGuyTechVulcan : UACHeavyMarine
{
	AttackSound ""
    Tag "\c[a4]Task Force \c[v2]Marine - \c[d4]Tech Vulcan\c-"
	Translation "112:127=%[0.00,0.00,0.00]:[0.29,0.29,0.29]"
    DropItem "ModdedBackpack0" 128 1
    DropItem "Tech Vulcan" 128 1
	DropItem "ShieldSphere", 100, 1
    DropItem "DemonAmmoBox" 256 200
	DropItem "PortableMedkit" 200 1
    DropItem "ArmorPlate" 200 1
    DropItem "HandGrenadeAmmo" 200 1
    DropItem "Mineammo2" 200 1
    DropItem "SpringMine" 200 1
    DropItem "AmmoPack" 200 1
    DropItem "LiteBeaconSupplyPickup" 16 1  
	States
	{
	Spawn:
		PL42 A 10 A_Look
		Goto Idle
	See:
		TNT1 A 0 A_JumpIfTargetInLOS("Strafing")
        PL42 AABB 3 A_Chase
        TNT1 A 0 ACS_NamedExecuteAlways("Check For Master Player Calling Help",0,0,0,0)
		TNT1 A 0 A_Jump(16,"GiveUp")
        TNT1 A 0 A_Jump(6,"MineField")
        TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
        PL42 CCDD 3 A_Chase
        TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
		Loop
	Strafing:
		PL42 A 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		PL42 A 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		PL42 A 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		PL42 B 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		PL42 B 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 ACS_NamedExecuteAlways("Check For Master Player Calling Help",0,0,0,0)
		PL42 C 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        PL42 C 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        PL42 C 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        PL42 D 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        PL42 D 3 A_GiveInventory("AIStrafing",1)
		Goto See
	Idle:
		PL42 A 0 A_Jump(48,"Find")
        TNT1 A 0 ACS_NamedExecuteAlways("Check For Master Player Calling Help",0,0,0,0)
		PL42 A 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND)
		PL42 AABB 3 A_GiveInventory("AIPatroling",1)
        TNT1 A 0 A_Jump(6,"MineField")
		PL42 C 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND)
        PL42 CCDD 3 A_GiveInventory("AIPatroling",1)
		Loop
	Find:
		TNT1 A 0 ACS_NamedExecuteAlways("Find Master Player",0,0,0,0)
        Goto Idle
	GiveUp:
	    PLA1 A 10 A_ClearTarget
	    Goto Idle
    MineField:
        PLA1 E 1
        PLA1 E 1 A_SetUserVar("user_minefield",0)
        PLA1 E 0 A_SetUserVar("user_minefield",user_minefield+1)
        PLA1 E 0 A_Jump(127,3)
        PLA1 E 12 A_CustomMissile("MarineThrownMine",32,0,0,2,15)
        PLA1 E 0 A_Jump(256,2)
        PLA1 E 12 A_CustomMissile("MarineSpringMineSet",32,0,0,2,22)
        PLA1 A 12 A_SetAngle(random(0,360))
        PLA1 A 3 A_JumpIf(user_minefield >= 4,"See")
        PLA1 A 3 A_Jump(192,"See")
        Goto MineField+2
        PLA1 A 1
        Goto See
	Missile:
		TNT1 A 0 A_Jump(65,"FragGrenade2","LandMine2","Altfire")
	Normal:
		TNT1 A 0 A_Jump(96,"Altfire")
        PL42 EE 5 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
		TNT1 A 0  A_PlayWeaponSound("vulcan/fire")
		TNT1 A 0 A_SpawnItemEx("RedCasing",12,6,30,random(2,6),0,random(1,3),random(-80,-90),128)
		PL42 F 2 Bright A_CustomMissile("MarineVulcanTracer",30,-8,0)
		PL42 E 2 A_GiveInventory("AIStrafing",1)
		TNT1 A 0  A_PlayWeaponSound("vulcan/fire")
		TNT1 A 0 A_SpawnItemEx("RedCasing",12,6,30,random(2,6),0,random(1,3),random(-80,-90),128)
		PL42 F 2 Bright A_CustomMissile("MarineVulcanTracer",30,8,0)
		PL42 E 2 A_GiveInventory("AIStrafing",1)
		TNT1 A 0  A_PlayWeaponSound("vulcan/fire")
		TNT1 A 0 A_SpawnItemEx("RedCasing",12,6,30,Random(2, 6),0,Random(1,3),Random(-80,-90),128)
		PL42 F 2 Bright A_CustomMissile("MarineVulcanTracer",30,8,0)
		PL42 E 2 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_Jump(8,"See")
        TNT1 A 0 A_CPosRefire
        Goto Missile+4
	Altfire:
        PL42 EEE 4 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
		PL42 E 0 A_PlaySound("vulcan/altfire")
		TNT1 A 0 A_CustomMissile("MarineVulcanLazer",30,-8,0)
		TNT1 A 0 A_CustomMissile("MarineVulcanLazer",30,0,0)
        PL42 F 3 Bright A_CustomMissile("MarineVulcanLazer",30,8,0)
		PL42 E 3 A_GiveInventory("AIStrafing",1)
		PL42 EEE 4 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_Jump(24,"See")
        TNT1 A 0 A_CPosRefire
        Goto Missile+4
    FragGrenade:
        PLA1 E 1 A_JumpIfCloser(1000,1)
		Goto Missile
		PLA1 E 0 A_JumpIfCloser(280,"Missile")
        PLA1 E 6 A_GiveInventory("AIStrafing",1)
        PLA1 EEE 4 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
        PLA1 E 6 A_CustomMissile("MThrownGrenade",32,0,0,2,10)
		PLA1 E 1
		Goto See
    FragGrenade2:
        PLA1 E 1 A_JumpIfCloser(1000,1)
		Goto Missile
		PLA1 E 0 A_JumpIfCloser(280,"Normal")
        PLA1 E 6 A_GiveInventory("AIStrafing",1)
        PLA1 EEE 4 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
        PLA1 E 6 A_CustomMissile("MThrownGrenade",32,0,0,2,10)
		PLA1 E 1
		TNT1 A 0 A_Jump(127,"Altfire")
		Goto Normal
	LandMine:
        PLA1 E 1 A_JumpIfCloser(500,1)
		Goto FragGrenade
        PLA1 E 0 A_Jump(127,"SpringMine")
        PLA1 E 3 A_GiveInventory("AIStrafing",1)
        PLA1 EE 4 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
        PLA1 E 6 A_CustomMissile("MarineThrownMine",32,0,0,2,10)
		PLA1 E 1
		Goto See
    SpringMine:
        PLA1 E 3 A_GiveInventory("AIStrafing",1)
        PLA1 EE 4 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
        PLA1 E 6 A_CustomMissile("MarineSpringMineSet",32,0,0,2,10)
		PLA1 E 1
		Goto See
	LandMine2:
        PLA1 E 1 A_JumpIfCloser(500,1)
		Goto FragGrenade2
        PLA1 E 0 A_Jump(127,"SpringMine2")
        PLA1 E 3 A_GiveInventory("AIStrafing",1)
        PLA1 EE 4 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
        PLA1 E 6 A_CustomMissile("MarineThrownMine",32,0,0,2,10)
		PLA1 E 1
		TNT1 A 0 A_Jump(127,"Altfire")
		Goto Normal
    SpringMine2:
        PLA1 E 3 A_GiveInventory("AIStrafing",1)
        PLA1 EE 4 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
        PLA1 E 6 A_CustomMissile("MarineSpringMineSet",32,0,0,2,10)
		PLA1 E 1
		TNT1 A 0 A_Jump(127,"Altfire")
		Goto Normal
	Pain:
		PL42 G 3 A_GiveInventory("AIStrafing",1)
		PL42 G 3 A_Pain
		Goto See
	}
}

Actor MarineVulcanTracer : FastProjectile
{
  Radius 1
  Height 1
  Speed 250
  Damage 4
  +NOGRAVITY
  +FORCERADIUSDMG
  +FORCEXYBILLBOARD
  +THRUSPECIES
  +MTHRUSPECIES
  Projectile
  Scale 0.5 
  Renderstyle Add
  Alpha 0.75
  Decal BulletChip
  Species "Player"
  DamageType "Players"
  States
  {
  Spawn:
    TRA3 A 1 Bright
	Loop
  Death:
    TNT1 A 0
  	TNT1 A 0 A_SpawnItemEx("RedParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128) 
	TNT1 AAA 0 A_CustomMissile("Kaboom10", 0, 0, random(0,360), 2, random(0,360))
	TNT1 AAA 0 A_CustomMissile("SmokeFX4", 0, 0, random(0,360), 2, random(0,360))
	RFOG A 3 Bright A_Explode(Random(25,36),72)
    RFOG BCDEF 3 Bright
    Stop
  }
}

Actor MarineVulcanLazer : FastProjectile
{
  Radius 6
  Height 8
  Speed 75
  Damage 1
  Scale 0.45
  Species "Player"
  DamageType "Players"
  RenderStyle Add
  DeathSound "monsters/newfireexplode"
  Decal DoomImpScorch
  MissileType "ZombieVulcanLazerEffect2"
  ReactionTime 35
  Projectile
  +RIPPER
  +BLOODLESSIMPACT
  +THRUSPECIES
  +MTHRUSPECIES
  States
  {
  Spawn:
    TNT1 A 1 A_CountDown
    Loop
  Death:
	TNT1 A 0
  	TNT1 A 0 A_SpawnItemEx("RedParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
	TNT1 A 0 A_SpawnItemEX("MarineVulcanLazerEffect", 0, 0, 0, 0, 0, 0, 0, 128)
	TNT1 AAA 0 A_CustomMissile("Kaboom10", 0, 0, random(0,360), 2, random(0,360))
	TNT1 AAA 0 A_CustomMissile("SmokeFX4", 0, 0, random(0,360), 2, random(0,360))	
    TNT1 A 1
    Stop
  }
}

Actor MarineVulcanLazerEffect
{
  +NOBLOCKMAP
  +NOGRAVITY
  +PAINLESS
  +FORCERADIUSDMG
  +THRUSPECIES
  +MTHRUSPECIES
  Scale 0.22
  RenderStyle Add
  Species "Player"
  DamageType "Players"
  MissileType ""
  Radius 1
  Height 2
  States
  {
  Spawn:
    VUEL A 0 A_Explode(4,8)
    VUEL A 1 bright A_FadeOut(0.3)
    Loop
  }
}

ACTOR TestBeacon : MarineBeacon
{
Inventory.MaxAmount 6
Inventory.InterHubAmount 6
Inventory.Icon "FKBCZ0"
Inventory.PickupSound "Beacon/Pickup"
Inventory.PickupMessage "Test Beacon"
Tag "Test Beacon - Summoning Upcoming Marine"
States
{
  Spawn:
	FKBC A -1
    Stop
  Use:
	TNT1 A 1 A_SpawnItemEx("TestBeaconActivated",0,0,16,8,0,4,0,0,0,tid-1)
	Stop
}
}

ACTOR TestBeaconActivated
{
Monster
Health 1000
Radius 6
Height 28
Mass 9999
+FLOORCLIP
+FRIENDLY
+NOTELEPORT
-COUNTKILL
-SHOOTABLE
-SOLID
States
{
  Spawn:
    FKBC ABCDE 6
    FKBC E 20
    FKBC F 15 Bright A_PlaySound("beacon/alarm")
    FKBC E 20
    FKBC F 15 Bright A_PlaySound("beacon/alarm")
    FKBC E 20
    FKBC F 15 Bright A_PlaySound("beacon/alarm")
    FKBC F 35 Bright
    FKBC E 70 A_SpawnItemEx("TestBeaconActivatedSpawners",0,0,0,0,0,0,0,32|SXF_SETMASTER,0,tid)
	FKBC A 1
    Goto Death
  Death:
	TNT1 A 0
    TNT1 A 1 A_SpawnItemEx("TeleportFog")
	Stop
  Explosion:
    FKBC F 15 Bright A_PlaySound("weapon/warn")
    FKBC E 20
    FKBC F 15 Bright A_PlaySound("weapon/warn")
	TNT1 A 0 A_SpawnItem("BeaconKaboom")
    Stop
  }
}

ACTOR TestBeaconActivatedSpawners
{
Radius 12
Height 8
Speed 17
Monster
+FRIENDLY
-SHOOTABLE
-COUNTKILL
-SOLID
States
{
   Spawn:
    TNT1 A 0
    TNT1 A 0 A_SpawnItemEx("TeleportFog")
    TNT1 A 5 A_SpawnItemEx("TaskForceGuyTechBlaster",0,0,0,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
   End:
	TNT1 A 1 A_Fall
	Stop
}
}

Actor TaskForceGuyTechRipper : UACHeavyMarine
{
	AttackSound ""
    Tag "\c[a4]Task Force \c[v2]Marine - \c[d4]Tech Ripper\c-"
	Translation "112:127=%[0.00,0.00,0.00]:[0.29,0.29,0.29]"
    DropItem "ModdedBackpack0" 128 1
    DropItem "TechRipper" 128 1
	DropItem "ShieldSphere", 100, 1
    DropItem "DemonAmmoBox" 256 200
	DropItem "PortableMedkit" 200 1
    DropItem "ArmorPlate" 200 1
    DropItem "HandGrenadeAmmo" 200 1
    DropItem "Mineammo2" 200 1
    DropItem "SpringMine" 200 1
    DropItem "AmmoPack" 200 1
    DropItem "LiteBeaconSupplyPickup" 16 1  
	States
	{
	Spawn:
		PSTN A 10 A_Look
		Goto Idle
	See:
		TNT1 A 0 A_JumpIfTargetInLOS("Strafing")
        PSTN AABB 3 A_Chase
        TNT1 A 0 ACS_NamedExecuteAlways("Check For Master Player Calling Help",0,0,0,0)
		TNT1 A 0 A_Jump(16,"GiveUp")
        TNT1 A 0 A_Jump(6,"MineField")
        TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
        PSTN CCDD 3 A_Chase
        TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
		Loop
	Strafing:
		PSTN A 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		PSTN A 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		PSTN A 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		PSTN B 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		PSTN B 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 ACS_NamedExecuteAlways("Check For Master Player Calling Help",0,0,0,0)
		PSTN C 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        PSTN C 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        PSTN C 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        PSTN D 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        PSTN D 3 A_GiveInventory("AIStrafing",1)
		Goto See
	Idle:
		PSTN A 0 A_Jump(48,"Find")
        TNT1 A 0 ACS_NamedExecuteAlways("Check For Master Player Calling Help",0,0,0,0)
		PSTN A 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND)
		PSTN AABB 3 A_GiveInventory("AIPatroling",1)
        TNT1 A 0 A_Jump(6,"MineField")
		PSTN C 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND)
        PSTN CCDD 3 A_GiveInventory("AIPatroling",1)
		Loop
	Find:
		TNT1 A 0 ACS_NamedExecuteAlways("Find Master Player",0,0,0,0)
        Goto Idle
	GiveUp:
	    PLA1 A 10 A_ClearTarget
	    Goto Idle
    MineField:
        PLA1 E 1
        PLA1 E 1 A_SetUserVar("user_minefield",0)
        PLA1 E 0 A_SetUserVar("user_minefield",user_minefield+1)
        PLA1 E 0 A_Jump(127,3)
        PLA1 E 12 A_CustomMissile("MarineThrownMine",32,0,0,2,15)
        PLA1 E 0 A_Jump(256,2)
        PLA1 E 12 A_CustomMissile("MarineSpringMineSet",32,0,0,2,22)
        PLA1 A 12 A_SetAngle(random(0,360))
        PLA1 A 3 A_JumpIf(user_minefield >= 4,"See")
        PLA1 A 3 A_Jump(192,"See")
        Goto MineField+2
        PLA1 A 1
        Goto See
    Missile:
		TNT1 A 0 A_Jump(65,"FragGrenade2","LandMine2")
	Normal:
		TNT1 A 0 A_Jump(96,"Altfire")
        PSTN EE 5 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
        PSTN F 0 A_PlayWeaponSound("TechRipper/fire")
        PSTN F 6 Bright A_CustomMissile("MarinePlasmaRazor",30,4,0)
        PSTN E 5 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_Jump(6,"See")
        TNT1 A 0 A_CPosRefire
        Goto Normal+3
	Altfire:
        PSTN EE 5 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
        PSTN F 0 A_PlayWeaponSound("TechRipper/altfire")
		TNT1 A 0 Radius_Quake(8,2,0,1,0)
        PSTN F 8 Bright A_CustomMissile("MarinePlasmaRazorAlt",30,4,0)
        PSTN E 7 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_Jump(6,"See")
        TNT1 A 0 A_CPosRefire
        Goto Altfire+3
	FragGrenade:
        PLA1 E 1 A_JumpIfCloser(1000,1)
		Goto Missile
		PLA1 E 0 A_JumpIfCloser(280,"Missile")
        PLA1 E 6 A_GiveInventory("AIStrafing",1)
        PLA1 EEE 4 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
        PLA1 E 6 A_CustomMissile("MThrownGrenade",32,0,0,2,10)
		PLA1 E 1
		Goto See
    FragGrenade2:
        PLA1 E 1 A_JumpIfCloser(1000,1)
		Goto Missile
		PLA1 E 0 A_JumpIfCloser(280,"Normal")
        PLA1 E 6 A_GiveInventory("AIStrafing",1)
        PLA1 EEE 4 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
        PLA1 E 6 A_CustomMissile("MThrownGrenade",32,0,0,2,10)
		PLA1 E 1
		TNT1 A 0 A_Jump(127,"Altfire")
		Goto Normal
	LandMine:
        PLA1 E 1 A_JumpIfCloser(500,1)
		Goto FragGrenade
        PLA1 E 0 A_Jump(127,"SpringMine")
        PLA1 E 3 A_GiveInventory("AIStrafing",1)
        PLA1 EE 4 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
        PLA1 E 6 A_CustomMissile("MarineThrownMine",32,0,0,2,10)
		PLA1 E 1
		Goto See
    SpringMine:
        PLA1 E 3 A_GiveInventory("AIStrafing",1)
        PLA1 EE 4 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
        PLA1 E 6 A_CustomMissile("MarineSpringMineSet",32,0,0,2,10)
		PLA1 E 1
		Goto See
	LandMine2:
        PLA1 E 1 A_JumpIfCloser(500,1)
		Goto FragGrenade2
        PLA1 E 0 A_Jump(127,"SpringMine2")
        PLA1 E 3 A_GiveInventory("AIStrafing",1)
        PLA1 EE 4 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
        PLA1 E 6 A_CustomMissile("MarineThrownMine",32,0,0,2,10)
		PLA1 E 1
		TNT1 A 0 A_Jump(127,"Altfire")
		Goto Normal
    SpringMine2:
        PLA1 E 3 A_GiveInventory("AIStrafing",1)
        PLA1 EE 4 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
        PLA1 E 6 A_CustomMissile("MarineSpringMineSet",32,0,0,2,10)
		PLA1 E 1
		TNT1 A 0 A_Jump(127,"Altfire")
		Goto Normal
	Pain:
		PSTN G 3 A_GiveInventory("AIStrafing",1)
		PSTN G 3 A_Pain
		Goto See
	}
}

Actor MarinePlasmaRazor : PlasmaRazor
{
  +MTHRUSPECIES
  +DONTHARMSPECIES
  +DONTHURTSPECIES
  Species "Player"
  Species "Players"
}

Actor MarinePlasmaRazorAlt : PlasmaRazorAlt
{
  +MTHRUSPECIES
  +DONTHARMSPECIES
  +DONTHURTSPECIES
  Species "Player"
  Species "Players"
  Damage 20
}

Actor TaskForceGuyTechBlaster : UACHeavyMarine
{
	AttackSound ""
    Tag "\c[a4]Task Force \c[v2]Marine - \c[d4]Tech Blaster\c-"
	Translation "112:127=%[0.00,0.00,0.00]:[0.29,0.29,0.29]"
    DropItem "ModdedBackpack0" 128 1
    DropItem "Tech Blaster" 128 1
	DropItem "ShieldSphere", 100, 1
    DropItem "DemonAmmoBox" 256 200
	DropItem "PortableMedkit" 200 1
    DropItem "ArmorPlate" 200 1
    DropItem "HandGrenadeAmmo" 200 1
    DropItem "Mineammo2" 200 1
    DropItem "SpringMine" 200 1
    DropItem "AmmoPack" 200 1
    DropItem "LiteBeaconSupplyPickup" 16 1  
	States
	{
	Spawn:
		P2TS A 10 A_Look
		Goto Idle
	See:
		TNT1 A 0 A_JumpIfTargetInLOS("Strafing")
        P2TS AABB 3 A_Chase
        TNT1 A 0 ACS_NamedExecuteAlways("Check For Master Player Calling Help",0,0,0,0)
		TNT1 A 0 A_Jump(16,"GiveUp")
        TNT1 A 0 A_Jump(6,"MineField")
        TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
        P2TS CCDD 3 A_Chase
        TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
		Loop
	Strafing:
		P2TS A 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		P2TS A 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		P2TS A 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		P2TS B 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		P2TS B 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 ACS_NamedExecuteAlways("Check For Master Player Calling Help",0,0,0,0)
		P2TS C 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        P2TS C 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        P2TS C 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        P2TS D 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        P2TS D 3 A_GiveInventory("AIStrafing",1)
		Goto See
	Idle:
		P2TS A 0 A_Jump(48,"Find")
        TNT1 A 0 ACS_NamedExecuteAlways("Check For Master Player Calling Help",0,0,0,0)
		P2TS A 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND)
		P2TS AABB 3 A_GiveInventory("AIPatroling",1)
        TNT1 A 0 A_Jump(6,"MineField")
		P2TS C 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND)
        P2TS CCDD 3 A_GiveInventory("AIPatroling",1)
		Loop
	Find:
		TNT1 A 0 ACS_NamedExecuteAlways("Find Master Player",0,0,0,0)
        Goto Idle
	GiveUp:
	    PLA1 A 10 A_ClearTarget
	    Goto Idle
    MineField:
        PLA1 E 1
        PLA1 E 1 A_SetUserVar("user_minefield",0)
        PLA1 E 0 A_SetUserVar("user_minefield",user_minefield+1)
        PLA1 E 0 A_Jump(127,3)
        PLA1 E 12 A_CustomMissile("MarineThrownMine",32,0,0,2,15)
        PLA1 E 0 A_Jump(256,2)
        PLA1 E 12 A_CustomMissile("MarineSpringMineSet",32,0,0,2,22)
        PLA1 A 12 A_SetAngle(random(0,360))
        PLA1 A 3 A_JumpIf(user_minefield >= 4,"See")
        PLA1 A 3 A_Jump(192,"See")
        Goto MineField+2
        PLA1 A 1
        Goto See
    Missile:
		TNT1 A 0 A_Jump(65,"FragGrenade","LandMine")
        P2TS EE 5 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
        P2TS F 0 A_PlayWeaponSound("TechBlaster/Fire")
        P2TS F 4 Bright A_CustomMissile("MarineBlasterProjectile",30,4,0)
        P2TS E 3 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_Jump(10,"See")
        TNT1 A 0 A_CPosRefire
        Goto Missile+3
	FragGrenade:
        PLA1 E 1 A_JumpIfCloser(1000,1)
		Goto Missile
		PLA1 E 0 A_JumpIfCloser(280,"Missile")
        PLA1 E 6 A_GiveInventory("AIStrafing",1)
        PLA1 EEE 4 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
        PLA1 E 6 A_CustomMissile("MThrownGrenade",32,0,0,2,10)
		PLA1 E 1
		Goto See
	LandMine:
        PLA1 E 1 A_JumpIfCloser(500,1)
		Goto FragGrenade
        PLA1 E 0 A_Jump(127,"SpringMine")
        PLA1 E 3 A_GiveInventory("AIStrafing",1)
        PLA1 EE 4 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
        PLA1 E 6 A_CustomMissile("MarineThrownMine",32,0,0,2,10)
		PLA1 E 1
		Goto See
    SpringMine:
        PLA1 E 3 A_GiveInventory("AIStrafing",1)
        PLA1 EE 4 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
        PLA1 E 6 A_CustomMissile("MarineSpringMineSet",32,0,0,2,10)
		PLA1 E 1
		Goto See
	Pain:
		P2TS G 3 A_GiveInventory("AIStrafing",1)
		P2TS G 3 A_Pain
		Goto See
	}
}

ACTOR MarineBlasterProjectile : TBlasterProjectile //Too OP
{
+DONTHARMSPECIES
+DONTHURTSPECIES
Species "Player"
DamageType "Players"
Decal Scorch
States
{
  Death:
    TNT1 A 0 A_PlaySound("TechBlaster/Explode",5)
    TNT1 AAAAAAAAAA 0 A_SpawnItemEx("TBlasterProjectileTrailSparks",random(19,-19),random(19,-19),random(19,-19),0,0,0,0,128,0)
    TNT1 A 0 A_SpawnItemEx("TBlasterExplode",0,0,0,0,0,0,0,128,0)
	TNT1 A 0 A_Explode(200,32,0)
    TNT1 A 0 A_Explode(60,80,0)
    TNT1 BCD 4
    Stop
  }
}

Actor TaskForceGuyExAR : UACHeavyMarine
{
	AttackSound ""
    Tag "\c[a4]Task Force \c[v2]Marine - \c[d4]Explosive Assault Rifle\c-"
	Translation "112:127=%[0.00,0.00,0.00]:[0.29,0.29,0.29]"
    DropItem "ModdedBackpack0" 128 1
    DropItem "ExplosiveRifle2" 128 1
	DropItem "ShieldSphere", 100, 1
    DropItem "BulletBox" 256 200
	DropItem "PortableMedkit" 200 1
    DropItem "ArmorPlate" 200 1
    DropItem "HandGrenadeAmmo" 200 1
    DropItem "Mineammo2" 200 1
    DropItem "SpringMine" 200 1
    DropItem "AmmoPack" 200 1
    DropItem "LiteBeaconSupplyPickup" 16 1  
	States
	{
	Spawn:
		PLAY A 10 A_Look
		Goto Idle
	See:
	    TNT1 A 0 A_JumpIfTargetInLOS("Strafing")
        PLAY AABB 3 A_Chase
        TNT1 A 0 ACS_NamedExecuteAlways("Check For Master Player Calling Help",0,0,0,0)
	    TNT1 A 0 A_Jump(16,"GiveUp")
        TNT1 A 0 A_Jump(6,"MineField")
        TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
        PLAY CCDD 3 A_Chase
        TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
        Loop
	Strafing:
		PLAY A 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		PLAY A 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		PLAY A 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		PLAY B 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		PLAY B 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 ACS_NamedExecuteAlways("Check For Master Player Calling Help",0,0,0,0)
		PLAY C 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        PLAY C 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        PLAY C 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        PLAY D 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        PLAY D 3 A_GiveInventory("AIStrafing",1)
		Goto See
	Idle:
	    PLAY A 0 A_Jump(48,"Find")
        TNT1 A 0 ACS_NamedExecuteAlways("Check For Master Player Calling Help",0,0,0,0)
		PLAY A 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND)
		PLAY AABB 3 A_GiveInventory("AIPatroling",1)
        TNT1 A 0 A_Jump(6,"MineField")
		PLAY C 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND)
        PLAY CCDD 3 A_GiveInventory("AIPatroling",1)
		Loop
	Find:
		TNT1 A 0 ACS_NamedExecuteAlways("Find Master Player",0,0,0,0)
        Goto Idle
	GiveUp:
	    PLA1 A 10 A_ClearTarget
	    Goto Idle
    MineField:
        PLA1 E 1
        PLA1 E 1 A_SetUserVar("user_minefield",0)
        PLA1 E 0 A_SetUserVar("user_minefield",user_minefield+1)
        PLA1 E 0 A_Jump(127,3)
        PLA1 E 12 A_CustomMissile("MarineThrownMine",32,0,0,2,15)
        PLA1 E 0 A_Jump(256,2)
        PLA1 E 12 A_CustomMissile("MarineSpringMineSet",32,0,0,2,22)
        PLA1 A 12 A_SetAngle(random(0,360))
        PLA1 A 3 A_JumpIf(user_minefield >= 4,"See")
        PLA1 A 3 A_Jump(192,"See")
        Goto MineField+2
        PLA1 A 1
        Goto See
    Missile:
		TNT1 A 0 A_Jump(65,"FragGrenade","LandMine")
		TNT1 A 0 A_JumpIfCloser(750,"Close")
    Far:
        PLAY EE 5 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
		PLAY F 0 A_PlayWeaponSound("PulseNail/fire")
		TNT1 A 0 A_CustomMissile("MarineExplosiveTracer2",32,0,0)
        PLAY F 2 Bright A_CustomMissile("MarineExplosiveBullet",32,0,random(-1,1))
		TNT1 A 0 A_Jump(6,"See")
        TNT1 A 0 A_CPosRefire
        PLAY EEEEE 3 A_GiveInventory("AIStrafing",1)
		Goto Far+2
    Close:
        PLAY EE 5 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
		PLAY F 0 A_PlayWeaponSound("PulseNail/fire")
		TNT1 A 0 A_CustomMissile("MarineExplosiveTracer2",32,0,random(-5,5),0,random(-5,5))
        PLAY F 2 Bright A_CustomMissile("MarineExplosiveBullet",32,0,random(-5,5),0,random(-5,5))
		PLAY E 3 A_GiveInventory("AIStrafing",1)
		PLAY F 0 A_PlayWeaponSound("PulseNail/fire")
		TNT1 A 0 A_CustomMissile("MarineExplosiveTracer2",32,0,random(-5,5),0,random(-5,5))
        PLAY F 2 Bright A_CustomMissile("MarineExplosiveBullet",32,0,random(-5,5),0,random(-5,5))
		PLAY E 3 A_GiveInventory("AIStrafing",1)
		PLAY F 0 A_PlayWeaponSound("PulseNail/fire")
		TNT1 A 0 A_CustomMissile("MarineExplosiveTracer2",32,0,random(-5,5),0,random(-5,5))
        PLAY F 2 Bright A_CustomMissile("MarineExplosiveBullet",32,0,random(-5,5),0,random(-5,5))
		PLAY E 3 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_Jump(16,"See")
        TNT1 A 0 A_CPosRefire
        PLAY E 3 A_GiveInventory("AIStrafing",1)
		Goto Close+2
    FragGrenade:
        PLA1 E 1 A_JumpIfCloser(1000,1)
		Goto Missile
		PLA1 E 0 A_JumpIfCloser(280,"LandMine")
        PLA1 E 6 A_GiveInventory("AIStrafing",1)
        PLA1 EEE 4 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
        PLA1 E 6 A_CustomMissile("MThrownGrenade",32,0,0,2,10)
		PLA1 E 1
		Goto See
	LandMine:
        PLA1 E 1 A_JumpIfCloser(500,1)
		Goto FragGrenade
        PLA1 E 0 A_Jump(127,"SpringMine")
        PLA1 E 3 A_GiveInventory("AIStrafing",1)
        PLA1 EE 4 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
        PLA1 E 6 A_CustomMissile("MarineThrownMine",32,0,0,2,10)
		PLA1 E 1
		Goto See
    SpringMine:
        PLA1 E 3 A_GiveInventory("AIStrafing",1)
        PLA1 EE 4 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
        PLA1 E 6 A_CustomMissile("MarineSpringMineSet",32,0,0,2,10)
		PLA1 E 1
		Goto See
	Pain:
		PLAY G 3 A_GiveInventory("AIStrafing",1)
		PLAY G 3 A_Pain
		Goto See
	}
}

Actor MarineExplosiveTracer2 : PlayerExplosiveTracer2
{
+MTHRUSPECIES
Damagetype "AllyExplosion"
}

ACTOR MarineExplosiveBullet : ExplosiveBullet 
{
Damagetype "AllyExplosion"
}

Actor TaskForceGuyBarbatos : UACHeavyMarine
{
	AttackSound ""
    Tag "\c[a4]Task Force \c[v2]Marine - \c[d4]Barbatos Cannon\c-"
	Translation "112:127=%[0.00,0.00,0.00]:[0.29,0.29,0.29]"
    DropItem "ModdedBackpack0" 128 1
    DropItem "BarbatosCannon" 128 1
	DropItem "ShieldSphere", 100, 1
    DropItem "DemonAmmoBox" 256 20
	DropItem "PortableMedkit" 200 1
    DropItem "ArmorPlate" 200 1
    DropItem "HandGrenadeAmmo" 200 1
    DropItem "Mineammo2" 200 1
    DropItem "SpringMine" 200 1
    DropItem "AmmoPack" 200 1
    DropItem "LiteBeaconSupplyPickup" 16 1  
	States
	{
	Spawn:
		PUNM A 10 A_Look
		Goto Idle
	See:
		TNT1 A 0 A_JumpIfTargetInLOS("Strafing")
        PUNM AABB 3 A_Chase
        TNT1 A 0 ACS_NamedExecuteAlways("Check For Master Player Calling Help",0,0,0,0)
		TNT1 A 0 A_Jump(16,"GiveUp")
        TNT1 A 0 A_Jump(6,"MineField")
        TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
        PUNM CCDD 3 A_Chase
        TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
		Loop
	Strafing:
		PUNM A 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		PUNM A 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		PUNM A 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		PUNM B 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		PUNM B 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 ACS_NamedExecuteAlways("Check For Master Player Calling Help",0,0,0,0)
		PUNM C 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        PUNM C 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        PUNM C 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        PUNM D 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        PUNM D 3 A_GiveInventory("AIStrafing",1)
		Goto See
	Idle:
		PUNM A 0 A_Jump(48,"Find")
        TNT1 A 0 ACS_NamedExecuteAlways("Check For Master Player Calling Help",0,0,0,0)
		PUNM A 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND)
		PUNM AABB 3 A_GiveInventory("AIPatroling",1)
        TNT1 A 0 A_Jump(6,"MineField")
		PUNM C 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND)
        PUNM CCDD 3 A_GiveInventory("AIPatroling",1)
		Loop
	Find:
		TNT1 A 0 ACS_NamedExecuteAlways("Find Master Player",0,0,0,0)
        Goto Idle
	GiveUp:
	    PLA1 A 10 A_ClearTarget
	    Goto Idle
    MineField:
        PLA1 E 1
        PLA1 E 1 A_SetUserVar("user_minefield",0)
        PLA1 E 0 A_SetUserVar("user_minefield",user_minefield+1)
        PLA1 E 0 A_Jump(127,3)
        PLA1 E 12 A_CustomMissile("MarineThrownMine",32,0,0,2,15)
        PLA1 E 0 A_Jump(256,2)
        PLA1 E 12 A_CustomMissile("MarineSpringMineSet",32,0,0,2,22)
        PLA1 A 12 A_SetAngle(random(0,360))
        PLA1 A 3 A_JumpIf(user_minefield >= 4,"See")
        PLA1 A 3 A_Jump(192,"See")
        Goto MineField+2
        PLA1 A 1
        Goto See
	Missile:
        TNT1 A 0 A_Jump(64,"Homing")
    Normal:
        PUNM EEE 4 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
        PUNM F 0 A_PlayWeaponSound("cannon/fire")
        PUNM F 0 A_CustomMissile("BarbatosCometMarine",30,0,-2)
        PUNM F 0 A_CustomMissile("BarbatosCometMarine",30,0,2)
        PUNM F 0 A_CustomMissile("BarbatosCometMarine",30,0,0)
		PUNM FFF 5 Bright A_GiveInventory("AIStrafing",1)
		PUNM EEE 5 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_Jump(32,"See","See","Homing")
        TNT1 A 0 A_CPosRefire
        Goto Normal+4
 	Homing:
        PUNM EEE 4 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
        PUNM F 0 A_PlayWeaponSound("cannon/fire")
        PUNM F 0 A_CustomMissile("BarbatosSeekingCometMarine",30,0,-10)
        PUNM F 0 A_CustomMissile("BarbatosSeekingCometMarine",30,0,10)
		PUNM FFF 5 Bright A_GiveInventory("AIStrafing",1)
		PUNM EEE 5 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_Jump(32,"See","See","Normal")
        TNT1 A 0 A_CPosRefire
        Goto Homing+4
	Pain:
		PUNM G 3 A_GiveInventory("AIStrafing",1)
		PUNM G 3 A_Pain
		Goto See
	}
}

ACTOR BarbatosCometMarine : BarbatosCometPlayer
{
+MTHRUSPECIES
+DONTHARMSPECIES
DamageType "Players"
States
{
Spawn:
BRTB AAABBB 1 Bright A_SpawnItemEx("BarbCometTail", 0, 0, 0, 0, 0, 0, 0, 128)
Loop
Death:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("GreenParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
TNT1 AAA 0 A_CustomMissile("SmokeFX2", 0, 0, random(0,360), 2, random(0,360))
TNT1 AAA 0 A_CustomMissile("Kaboom13", 0, 0, random(0,360), random(2,3), random(0,360))
BRTB C 3 Bright A_Explode(70,100)
BRTB D 3 Bright A_SetTranslucent(0.75,1)
TNT1 AAAAA 0 A_SpawnItemEx("BarbatosPoisonMarine",0,0,10,Random(4,-4),Random(4,-4),Random(4,-2))
BRTB EFG 3 Bright
Stop
}
}

ACTOR BarbatosSeekingCometMarine : BarbatosCometMarine
{
+SeekerMissile
+ScreenSeeker
DamageType "Players"
States
{
Spawn:
TNT1 A 0 A_SeekerMissile(15,15,SMF_LOOK)
BRTB AAAAA 1 Bright A_SpawnItemEx("BarbCometTail", 0, 0, 0, 0, 0, 0, 0, 128)
TNT1 A 0 A_SeekerMissile(15,15,SMF_LOOK)
BRTB BBBBB 1 Bright A_SpawnItemEx("BarbCometTail", 0, 0, 0, 0, 0, 0, 0, 128)
Loop
}
}

ACTOR BarbatosPoisonMarine : BarbatosPoisonPlayer
{ 
+MTHRUSPECIES
+DONTHARMSPECIES
+DONTHURTSPECIES
DamageType "Players"
}

Actor TaskForceGuyBFG10K : UACHeavyMarine
{
	AttackSound "weapons/bfg15kidle"
    Tag "\c[a4]Task Force \c[v2]Marine - \c[d4]BFG10K\c-"
	Translation "112:127=%[0.00,0.00,0.00]:[0.29,0.29,0.29]"
    DropItem "ModdedBackpack0" 128 1
    DropItem "BFG10K " 128 1
	DropItem "ShieldSphere", 100, 1
    DropItem "DemonAmmoBox" 256 20
	DropItem "PortableMedkit" 200 1
    DropItem "ArmorPlate" 200 1
    DropItem "HandGrenadeAmmo" 200 1
    DropItem "Mineammo2" 200 1
    DropItem "SpringMine" 200 1
    DropItem "AmmoPack" 200 1
    DropItem "LiteBeaconSupplyPickup" 16 1  
	States
	{
	Spawn:
		PB10 A 10 A_Look
		Goto Idle
	See:
        TNT1 A 0 A_JumpIf(user_protection == 1,3)
        TNT1 A 0 ACS_NamedExecuteAlways("Marine Protection",0,0,0,0)
        TNT1 A 0 A_SetUserVar("user_protection",1)
		TNT1 A 0 A_JumpIfTargetInLOS("Strafing")
        TNT1 A 0 A_ChangeFlag(NOPAIN,FALSE)
        PB10 AABB 3 A_Chase
        TNT1 A 0 ACS_NamedExecuteAlways("Check For Master Player Calling Help",0,0,0,0)
		TNT1 A 0 A_Jump(16,"GiveUp")
        TNT1 A 0 A_Jump(6,"MineField")
        TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
        PB10 CCDD 3 A_Chase
        TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
		Loop
	Strafing:
		PB10 A 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		PB10 A 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		PB10 A 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		PB10 B 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		PB10 B 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 ACS_NamedExecuteAlways("Check For Master Player Calling Help",0,0,0,0)
		PB10 C 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        PB10 C 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        PB10 C 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        PB10 D 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        PB10 D 3 A_GiveInventory("AIStrafing",1)
		Goto See
	Idle:
        TNT1 A 0 A_JumpIf(user_protection == 1,3)
        TNT1 A 0 ACS_NamedExecuteAlways("Marine Protection",0,0,0,0)
        TNT1 A 0 A_SetUserVar("user_protection",1)
		PB10 A 0 A_Jump(48,"Find")
        TNT1 A 0 ACS_NamedExecuteAlways("Check For Master Player Calling Help",0,0,0,0)
		PB10 A 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND)
		PB10 AABB 3 A_GiveInventory("AIPatroling",1)
        TNT1 A 0 A_Jump(6,"MineField")
		PB10 C 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND)
        PB10 CCDD 3 A_GiveInventory("AIPatroling",1)
		Loop
	Find:
		TNT1 A 0 ACS_NamedExecuteAlways("Find Master Player",0,0,0,0)
        Goto Idle
	GiveUp:
	    PLA1 A 10 A_ClearTarget
	    Goto Idle
    MineField:
        PLA1 E 1
        PLA1 E 1 A_SetUserVar("user_minefield",0)
        PLA1 E 0 A_SetUserVar("user_minefield",user_minefield+1)
        PLA1 E 0 A_Jump(127,3)
        PLA1 E 12 A_CustomMissile("MarineThrownMine",32,0,0,2,15)
        PLA1 E 0 A_Jump(256,2)
        PLA1 E 12 A_CustomMissile("MarineSpringMineSet",32,0,0,2,22)
        PLA1 A 12 A_SetAngle(random(0,360))
        PLA1 A 3 A_JumpIf(user_minefield >= 4,"See")
        PLA1 A 3 A_Jump(192,"See")
        Goto MineField+2
        PLA1 A 1
        Goto See
	Missile:
        TNT1 A 0 A_Jump(65,"FragGrenade","LandMine")
    Normal:
        TNT1 A 0 A_ChangeFlag(NOPAIN,TRUE)
        TNT1 A 0 A_PlayWeaponSound("weapons/charge15k")
		PB10 EEEEE 5 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
		PB10 F 3 Bright A_CustomMissile("Turret10K",30,0,random(-4,4))
		PB10 EE 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
		PB10 F 3 Bright A_CustomMissile("Turret10K",30,0,random(-4,4))
		PB10 EE 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Jump(48,"Cooling")
        TNT1 A 0 A_MonsterRefire(40,"Cooling")
        Goto Normal+7
    Cooling:
		PB10 E 0 A_PlaySound("weapons/bfg15kcooldown")
        PB10 EEEEEEE 5 A_GiveInventory("AIStrafing",1)
		Goto See
    FragGrenade:
        PLA1 E 1 A_JumpIfCloser(1000,1)
		Goto Missile
		PLA1 E 0 A_JumpIfCloser(280,"Missile")
        PLA1 E 6 A_GiveInventory("AIStrafing",1)
        PLA1 EEE 4 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
        PLA1 E 6 A_CustomMissile("MThrownGrenade",32,0,0,2,10)
		PLA1 E 1
		Goto See
	LandMine:
        PLA1 E 1 A_JumpIfCloser(500,1)
		Goto FragGrenade
        PLA1 E 0 A_Jump(127,"SpringMine")
        PLA1 E 3 A_GiveInventory("AIStrafing",1)
        PLA1 EE 4 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
        PLA1 E 6 A_CustomMissile("MarineThrownMine",32,0,0,2,10)
		PLA1 E 1
		Goto See
    SpringMine:
        PLA1 E 3 A_GiveInventory("AIStrafing",1)
        PLA1 EE 4 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
        PLA1 E 6 A_CustomMissile("MarineSpringMineSet",32,0,0,2,10)
		PLA1 E 1
		Goto See
	Pain:
		PB10 G 3 A_GiveInventory("AIStrafing",1)
		PB10 G 3 A_Pain
		Goto See
	}
}

Actor TaskForceGuyExNailgun : UACHeavyMarine
{
	AttackSound ""
    Tag "\c[a4]Task Force \c[v2]Marine - \c[d4]Explosive Nailgun\c-"
	Translation "112:127=%[0.00,0.00,0.00]:[0.29,0.29,0.29]"
    DropItem "ModdedBackpack0" 128 1
    DropItem "ExplosiveNailgun" 128 1
	DropItem "ShieldSphere", 100, 1
    DropItem "DemonAmmoBox" 256 20
	DropItem "PortableMedkit" 200 1
    DropItem "ArmorPlate" 200 1
    DropItem "HandGrenadeAmmo" 200 1
    DropItem "Mineammo2" 200 1
    DropItem "SpringMine" 200 1
    DropItem "AmmoPack" 200 1
    DropItem "LiteBeaconSupplyPickup" 16 1  
	States
	{
	Spawn:
		PNLG A 10 A_Look
		Goto Idle
	See:
		TNT1 A 0 A_JumpIfTargetInLOS("Strafing")
        PNLG AABB 3 A_Chase
        TNT1 A 0 ACS_NamedExecuteAlways("Check For Master Player Calling Help",0,0,0,0)
		TNT1 A 0 A_Jump(16,"GiveUp")
        TNT1 A 0 A_Jump(6,"MineField")
        TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
        PNLG CCDD 3 A_Chase
        TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
		Loop
	Strafing:
		PNLG A 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		PNLG A 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		PNLG A 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		PNLG B 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		PNLG B 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 ACS_NamedExecuteAlways("Check For Master Player Calling Help",0,0,0,0)
		PNLG C 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        PNLG C 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        PNLG C 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        PNLG D 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        PNLG D 3 A_GiveInventory("AIStrafing",1)
		Goto See
	Idle:
		PNLG A 0 A_Jump(48,"Find")
        TNT1 A 0 ACS_NamedExecuteAlways("Check For Master Player Calling Help",0,0,0,0)
		PNLG A 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND)
		PNLG AABB 3 A_GiveInventory("AIPatroling",1)
        TNT1 A 0 A_Jump(6,"MineField")
		PNLG C 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND)
        PNLG CCDD 3 A_GiveInventory("AIPatroling",1)
		Loop
	Find:
		TNT1 A 0 ACS_NamedExecuteAlways("Find Master Player",0,0,0,0)
        Goto Idle
	GiveUp:
	    PLA1 A 10 A_ClearTarget
	    Goto Idle
    MineField:
        PLA1 E 1
        PLA1 E 1 A_SetUserVar("user_minefield",0)
        PLA1 E 0 A_SetUserVar("user_minefield",user_minefield+1)
        PLA1 E 0 A_Jump(127,3)
        PLA1 E 12 A_CustomMissile("MarineThrownMine",32,0,0,2,15)
        PLA1 E 0 A_Jump(256,2)
        PLA1 E 12 A_CustomMissile("MarineSpringMineSet",32,0,0,2,22)
        PLA1 A 12 A_SetAngle(random(0,360))
        PLA1 A 3 A_JumpIf(user_minefield >= 4,"See")
        PLA1 A 3 A_Jump(192,"See")
        Goto MineField+2
        PLA1 A 1
        Goto See
    Missile:
		TNT1 A 0 A_Jump(65,"FragGrenade","LandMine")
		TNT1 A 0 A_JumpIfCloser(300,"Close")
	Normal:
        PNLG EE 5 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
		TNT1 A 0  A_PlayWeaponSound("weapons/nailfire")
        PNLG F 3 Bright A_CustomMissile("MarineExNail",32,-3,frandom(0,-5))
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
		TNT1 A 0  A_PlayWeaponSound("weapons/nailfire")
        PNLG F 3 Bright A_CustomMissile("MarineExNail",32,3,frandom(5,0))
		TNT1 A 0 A_Jump(16,"See")
        TNT1 A 0 A_CPosRefire
        Goto Normal+2
 	Close:
        PNLG EEE 4 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
        PNLG F 0 A_PlayWeaponSound("cannon/fire")
        PNLG F 0 A_CustomMissile("NailBombMarine",30,-3,1)
        PNLG F 0 A_CustomMissile("NailBombMarine",30,3,-1)
		PNLG FFF 5 Bright A_GiveInventory("AIStrafing",1)
		PNLG EEE 5 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_CPosRefire
        Goto Close+4
    FragGrenade:
        PLA1 E 1 A_JumpIfCloser(1000,1)
		Goto Missile
		PLA1 E 0 A_JumpIfCloser(280,"Missile")
        PLA1 E 6 A_GiveInventory("AIStrafing",1)
        PLA1 EEE 4 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
        PLA1 E 6 A_CustomMissile("MThrownGrenade",32,0,0,2,10)
		PLA1 E 1
		Goto See
	LandMine:
        PLA1 E 1 A_JumpIfCloser(500,1)
		Goto FragGrenade
        PLA1 E 0 A_Jump(127,"SpringMine")
        PLA1 E 3 A_GiveInventory("AIStrafing",1)
        PLA1 EE 4 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
        PLA1 E 6 A_CustomMissile("MarineThrownMine",32,0,0,2,10)
		PLA1 E 1
		Goto See
    SpringMine:
        PLA1 E 3 A_GiveInventory("AIStrafing",1)
        PLA1 EE 4 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
        PLA1 E 6 A_CustomMissile("MarineSpringMineSet",32,0,0,2,10)
		PLA1 E 1
		Goto See
	Pain:
		PNLG G 3 A_GiveInventory("AIStrafing",1)
		PNLG G 3 A_Pain
		Goto See
	}
}

Actor MarineExNail : NewExplosiveNailProjectile
{
  DamageType "AllyExplosion"
  +DONTHARMSPECIES
  +DONTHURTSPECIES
}

Actor NailBombMarine : NailBombPlayer
{
  DamageType "AllyExplosion"
  +MTHRUSPECIES
  +DONTHARMSPECIES
  +DONTHURTSPECIES
  states
  {
  Spawn:
	NBMB A 2 A_Countdown
	NBMB AB 6
	Loop
  Death:
	TNT1 A 0 A_CustomMissile("MarineNailProjectile",4,2,0)
	TNT1 A 0 A_CustomMissile("MarineNailProjectile",4,2,40)
	TNT1 A 0 A_CustomMissile("MarineNailProjectile",4,2,80)
	TNT1 A 0 A_CustomMissile("MarineNailProjectile",4,2,120)
	TNT1 A 0 A_CustomMissile("MarineNailProjectile",4,2,160)
	TNT1 A 0 A_CustomMissile("MarineNailProjectile",4,2,200)
	TNT1 A 0 A_CustomMissile("MarineNailProjectile",4,2,240)
	TNT1 A 0 A_CustomMissile("MarineNailProjectile",4,2,280)
	TNT1 A 0 A_CustomMissile("MarineNailProjectile",4,2,320)
	TNT1 A 0 A_CustomMissile("MarineNailProjectile",4,2,350)
	TNT1 A 0 A_Explode(16,48,0)
	TNT1 AA 0 A_CustomMissile("Kaboom9",0,0,random(0,360),2,random(0,360))
	WSMK ABCDE 5
	Stop
	}
}

Actor MarineNailProjectile : NailProjectile
{
  Species "Player"
  DamageType "Players"
  +MTHRUSPECIES
  +DONTHARMSPECIES
  +DONTHURTSPECIES
  States
  {
  Spawn:
    NAIL A 1
    TNT1 A 0
    Loop
  Death:
    NWAL AAAAAAAAAAAAAAAAAAAA 1 A_FadeOut(0.05)
    Stop
  }
}

Actor TaskForceGuyBFG15K : UACHeavyMarine
{
	AttackSound "weapons/bfg15kidle"
    Tag "\c[a4]Task Force \c[v2]Marine - \c[d4]BFG15K\c-"
	Translation "112:127=%[0.00,0.00,0.00]:[0.29,0.29,0.29]"
    DropItem "ModdedBackpack0" 128 1
    DropItem "BFG15K" 128 1
	DropItem "ShieldSphere", 100, 1
    DropItem "DemonAmmoBox" 256 20
	DropItem "PortableMedkit" 200 1
    DropItem "ArmorPlate" 200 1
    DropItem "HandGrenadeAmmo" 200 1
    DropItem "Mineammo2" 200 1
    DropItem "SpringMine" 200 1
    DropItem "AmmoPack" 200 1
    DropItem "LiteBeaconSupplyPickup" 16 1  
	States
	{
	Spawn:
		PKSW A 10 A_Look
		Goto Idle
	See:
        TNT1 A 0 A_JumpIf(user_protection == 1,3)
        TNT1 A 0 ACS_NamedExecuteAlways("Marine Protection",0,0,0,0)
        TNT1 A 0 A_SetUserVar("user_protection",1)
		TNT1 A 0 A_JumpIfTargetInLOS("Strafing")
        TNT1 A 0 A_ChangeFlag(NOPAIN,FALSE)
        PKSW AABB 3 A_Chase
        TNT1 A 0 ACS_NamedExecuteAlways("Check For Master Player Calling Help",0,0,0,0)
		TNT1 A 0 A_Jump(16,"GiveUp")
        TNT1 A 0 A_Jump(6,"MineField")
        TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
        PKSW CCDD 3 A_Chase
        TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
		Loop
	Strafing:
		PKSW A 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		PKSW A 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		PKSW A 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		PKSW B 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		PKSW B 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 ACS_NamedExecuteAlways("Check For Master Player Calling Help",0,0,0,0)
		PKSW C 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        PKSW C 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        PKSW C 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        PKSW D 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        PKSW D 3 A_GiveInventory("AIStrafing",1)
		Goto See
	Idle:
        TNT1 A 0 A_JumpIf(user_protection == 1,3)
        TNT1 A 0 ACS_NamedExecuteAlways("Marine Protection",0,0,0,0)
        TNT1 A 0 A_SetUserVar("user_protection",1)
		PKSW A 0 A_Jump(48,"Find")
        TNT1 A 0 ACS_NamedExecuteAlways("Check For Master Player Calling Help",0,0,0,0)
		PKSW A 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND)
		PKSW AABB 3 A_GiveInventory("AIPatroling",1)
        TNT1 A 0 A_Jump(6,"MineField")
		PKSW C 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND)
        PKSW CCDD 3 A_GiveInventory("AIPatroling",1)
		Loop
	Find:
		TNT1 A 0 ACS_NamedExecuteAlways("Find Master Player",0,0,0,0)
        Goto Idle
	GiveUp:
	    PLA1 A 10 A_ClearTarget
	    Goto Idle
    MineField:
        PLA1 E 1
        PLA1 E 1 A_SetUserVar("user_minefield",0)
        PLA1 E 0 A_SetUserVar("user_minefield",user_minefield+1)
        PLA1 E 0 A_Jump(127,3)
        PLA1 E 12 A_CustomMissile("MarineThrownMine",32,0,0,2,15)
        PLA1 E 0 A_Jump(256,2)
        PLA1 E 12 A_CustomMissile("MarineSpringMineSet",32,0,0,2,22)
        PLA1 A 12 A_SetAngle(random(0,360))
        PLA1 A 3 A_JumpIf(user_minefield >= 4,"See")
        PLA1 A 3 A_Jump(192,"See")
        Goto MineField+2
        PLA1 A 1
        Goto See
	Missile:
        TNT1 A 0 A_Jump(65,"FragGrenade","LandMine")
    Normal:
        TNT1 A 0 A_ChangeFlag(NOPAIN,TRUE)
        TNT1 A 0 A_PlayWeaponSound("weapons/charge15k")
		PKSW EEEEE 5 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
		PKSW F 3 Bright A_CustomMissile("Marine15K",34,0,0)
		PKSW EE 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
		PKSW F 3 Bright A_CustomMissile("Marine15K",34,0,0)
		PKSW EE 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Jump(48,"Cooling")
        TNT1 A 0 A_MonsterRefire(40,"Cooling")
        Goto Normal+7
    Cooling:
		PKSW E 0 A_PlaySound("weapons/bfg15kcooldown")
        PKSW EEEEEEE 5 A_GiveInventory("AIStrafing",1)
		Goto See
    FragGrenade:
        PLA1 E 1 A_JumpIfCloser(1000,1)
		Goto Missile
		PLA1 E 0 A_JumpIfCloser(280,"Missile")
        PLA1 E 6 A_GiveInventory("AIStrafing",1)
        PLA1 EEE 4 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
        PLA1 E 6 A_CustomMissile("MThrownGrenade",32,0,0,2,10)
		PLA1 E 1
		Goto See
	LandMine:
        PLA1 E 1 A_JumpIfCloser(500,1)
		Goto FragGrenade
        PLA1 E 0 A_Jump(127,"SpringMine")
        PLA1 E 3 A_GiveInventory("AIStrafing",1)
        PLA1 EE 4 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
        PLA1 E 6 A_CustomMissile("MarineThrownMine",32,0,0,2,10)
		PLA1 E 1
		Goto See
    SpringMine:
        PLA1 E 3 A_GiveInventory("AIStrafing",1)
        PLA1 EE 4 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
        PLA1 E 6 A_CustomMissile("MarineSpringMineSet",32,0,0,2,10)
		PLA1 E 1
		Goto See
	Pain:
		PKSW G 3 A_GiveInventory("AIStrafing",1)
		PKSW G 3 A_Pain
		Goto See
	}
}

ACTOR Marine15K : PlayerBFG15KBall
{
Decal BFG10K
DamageType "Players"
Species "Player"
+THRUSPECIES
+DONTHARMSPECIES
+DONTHURTSPECIES
}

Actor TaskForceGuyEFG9000 : UACHeavyMarine
{
	AttackSound ""
    Tag "\c[a4]Task Force \c[v2]Marine - \c[x1]EFG 9000\c-"
	Translation "112:127=%[0.00,0.00,0.00]:[0.29,0.29,0.29]"
    DropItem "ModdedBackpack0" 128 1
    DropItem "EFG9000" 64 1
    DropItem "ShieldSphere", 100, 1
	DropItem "PortableMedkit" 200 1
    DropItem "ArmorPlate" 200 1
    DropItem "HandGrenadeAmmo" 200 1
    DropItem "Mineammo2" 200 1
    DropItem "SpringMine" 200 1
    DropItem "AmmoPack" 200 1
    DropItem "LiteBeaconSupplyPickup" 16 1  
	var int user_fusion;
	States
	{
	Spawn:
		PRDM A 10 A_Look
		Goto Idle
	See:
        TNT1 A 0 A_JumpIf(user_protection == 1,3)
        TNT1 A 0 ACS_NamedExecuteAlways("Marine Protection",0,0,0,0)
        TNT1 A 0 A_SetUserVar("user_protection",1)
		TNT1 A 0 A_JumpIfTargetInLOS("Strafing")
        TNT1 A 0 A_ChangeFlag(NOPAIN,FALSE)
        PRDM AABB 3 A_Chase
        TNT1 A 0 ACS_NamedExecuteAlways("Check For Master Player Calling Help",0,0,0,0)
		TNT1 A 0 A_Jump(16,"GiveUp")
        TNT1 A 0 A_Jump(6,"MineField")
        TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
        PRDM CCDD 3 A_Chase
        TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
		Loop
	Strafing:
		PRDM A 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		PRDM A 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		PRDM A 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		PRDM B 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		PRDM B 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 ACS_NamedExecuteAlways("Check For Master Player Calling Help",0,0,0,0)
		PRDM C 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        PRDM C 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        PRDM C 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        PRDM D 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        PRDM D 3 A_GiveInventory("AIStrafing",1)
		Goto See
	Idle:
        TNT1 A 0 A_JumpIf(user_protection == 1,3)
        TNT1 A 0 ACS_NamedExecuteAlways("Marine Protection",0,0,0,0)
        TNT1 A 0 A_SetUserVar("user_protection",1)
		PRDM A 0 A_Jump(48,"Find")
        TNT1 A 0 ACS_NamedExecuteAlways("Check For Master Player Calling Help",0,0,0,0)
		PRDM A 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND)
		PRDM AABB 3 A_GiveInventory("AIPatroling",1)
        TNT1 A 0 A_Jump(6,"MineField")
		PRDM C 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND)
        PRDM CCDD 3 A_GiveInventory("AIPatroling",1)
		Loop
	Find:
		TNT1 A 0 ACS_NamedExecuteAlways("Find Master Player",0,0,0,0)
        Goto Idle
	GiveUp:
	    PLA1 A 10 A_ClearTarget
	    Goto Idle
    MineField:
        PLA1 E 1
        PLA1 E 1 A_SetUserVar("user_minefield",0)
        PLA1 E 0 A_SetUserVar("user_minefield",user_minefield+1)
        PLA1 E 0 A_Jump(127,3)
        PLA1 E 12 A_CustomMissile("MarineThrownMine",32,0,0,2,15)
        PLA1 E 0 A_Jump(256,2)
        PLA1 E 12 A_CustomMissile("MarineSpringMineSet",32,0,0,2,22)
        PLA1 A 12 A_SetAngle(random(0,360))
        PLA1 A 3 A_JumpIf(user_minefield >= 4,"See")
        PLA1 A 3 A_Jump(192,"See")
        Goto MineField+2
        PLA1 A 1
        Goto See
	Missile:
        //TNT1 A 0 A_Jump(65,"FragGrenade","LandMine")
        TNT1 A 0 A_Jump(55,"Nuke")
    Normal:
        TNT1 A 0 A_ChangeFlag(NOPAIN,TRUE)
        TNT1 A 0 A_PlayWeaponSound("efg/charge3")
		PRDM EEEEEEE 5 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_PlaySound("mrl/fire")
		PRDM F 2 Bright A_CustomMissile("MarineEFGRocket",34,9,frandom(-2.0,2.0))
		PRDM EE 4 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_PlaySound("mrl/fire")
		PRDM F 2 Bright A_CustomMissile("MarineEFGRocket",34,9,frandom(-2.0,2.0))
		PRDM EE 4 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_PlaySound("mrl/fire")
		PRDM F 2 Bright A_CustomMissile("MarineEFGSeekRocket",34,9,frandom(-2.0,2.0))
		PRDM EE 4 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_PlaySound("mrl/fire")
		PRDM F 2 Bright A_CustomMissile("MarineEFGSeekRocket",34,9,frandom(-2.0,2.0))
		PRDM EE 4 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Jump(48,"Cooling","Nuke")
        TNT1 A 0 A_MonsterRefire(40,"Cooling")
        Goto Normal+9
    Cooling:
		PRDM E 0 A_PlaySound("weapon/warn")
        PRDM EEEEEEE 5 A_GiveInventory("AIStrafing",1)
		Goto See
    Nuke:
		TNT1 A 0 A_JumpIf(user_fusion > 3,"Normal")
        TNT1 A 0 A_ChangeFlag(NOPAIN,TRUE)
        TNT1 A 0 A_PlaySound("efg/nukecharge")
		PRDM EEEEEEEEEEEEEEEEEE 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_PlaySound("efg/nuke",CHAN_AUTO)
		PRDM F 4 Bright A_CustomMissile("MarineEFGFusionNuke",34,9,frandom(-1.0,1.0))
		TNT1 A 0 A_SetUserVar("user_fusion",1)
		PRDM EEEEEEEEE 3 A_GiveInventory("AIStrafing",1)
        Goto See
    FragGrenade:
        PLA1 E 1 A_JumpIfCloser(1000,1)
		Goto Missile
		PLA1 E 0 A_JumpIfCloser(280,"Missile")
        PLA1 E 6 A_GiveInventory("AIStrafing",1)
        PLA1 EEE 4 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
        PLA1 E 6 A_CustomMissile("MThrownGrenade",32,0,0,2,10)
		PLA1 E 1
		Goto See
	LandMine:
        PLA1 E 1 A_JumpIfCloser(500,1)
		Goto FragGrenade
        PLA1 E 0 A_Jump(127,"SpringMine")
        PLA1 E 3 A_GiveInventory("AIStrafing",1)
        PLA1 EE 4 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
        PLA1 E 6 A_CustomMissile("MarineThrownMine",32,0,0,2,10)
		PLA1 E 1
		Goto See
    SpringMine:
        PLA1 E 3 A_GiveInventory("AIStrafing",1)
        PLA1 EE 4 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
        PLA1 E 6 A_CustomMissile("MarineSpringMineSet",32,0,0,2,10)
		PLA1 E 1
		Goto See
	Pain:
		PRDM G 3 A_GiveInventory("AIStrafing",1)
		PRDM G 3 A_Pain
		Goto See
	}
}

ACTOR MarineEFGRocket : EFGRocket
{
+MTHRUSPECIES
+DONTHARMSPECIES
Species "Player"
Damagetype "AllyExplosion"
States
	{
	Spawn:
		TNT1 A 0 Bright A_CustomMissile("EFGRocketSmoke",Random(4,6),Random(-2,2)) 
		TNT1 AAA 0 Bright A_CustomMissile("EFGRockeParticleTrail",Random(4,6),Random(-2,2)) 
		TNT1 A 0 Bright A_ChangeVelocity(1,0.5*random(-3,3),0.5*random(-2,2),CVF_RELATIVE)
		MIS7 A 1 Bright A_PlaySoundEx("rpg/fly","SoundSlot7",1)
		Loop
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_StopSoundEx("SoundSlot7")
		TNT1 AAAA 0 Bright A_SpawnItemEx("Debris",0,0,0,Random(4,-4),Random(4,-4),Random(4,8),0,SXF_CLIENTSIDE,0)
		TNT1 AAA 0 Bright A_SpawnItemEx("OrangeParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 AAA 0 Bright A_CustomMissile("SmokeFX3",0,0,random(0,360),2,random(0,360))
		TNT1 AAAAAA 0 Bright A_CustomMissile("Kaboom",0,0,random(0,360),2,random(0,360))
		TNT1 A 0 Bright A_SetTranslucent(0.75,1)
		MISL B 4 Bright A_Explode(148,148)
		MISL CD 4 Bright
		Stop
	}
}

ACTOR MarineEFGSeekRocket : EFGSeekRocket
{
+MTHRUSPECIES
+DONTHARMSPECIES
Species "Player"
Damagetype "AllyExplosion"
States
	{
	Spawn:
		TNT1 A 0 Bright A_CustomMissile("EFGRocketSmoke",Random(4,6),Random(-2,2)) 
		TNT1 AAA 0 Bright A_CustomMissile("EFGRockeParticleTrail",Random(4,6),Random(-2,2)) 
		TNT1 A 0 Bright A_BishopMissileWeave
		TNT1 A 0 Bright A_SeekerMissile(30,45,SMF_LOOK)
		MIS8 A 2 Bright A_PlaySoundEx("rpg/fly","SoundSlot7",1)
		TNT1 A 0 Bright A_CustomMissile("EFGRocketSmoke",Random(4,6),Random(-2,2)) 
		TNT1 AAA 0 Bright A_CustomMissile("EFGRockeParticleTrail",Random(4,6),Random(-2,2)) 
		TNT1 A 0 Bright A_BishopMissileWeave
		TNT1 A 0 Bright A_SeekerMissile(30,45,SMF_LOOK)
		MIS8 A 2 Bright A_PlaySoundEx("rpg/fly","SoundSlot7",1)
		TNT1 A 0 Bright A_CustomMissile("EFGRocketSmoke",Random(4,6),Random(-2,2)) 
		TNT1 AAA 0 Bright A_CustomMissile("EFGRockeParticleTrail",Random(4,6),Random(-2,2)) 
		TNT1 A 0 Bright A_BishopMissileWeave
		TNT1 A 0 Bright A_SeekerMissile(30,45,SMF_LOOK)
		MIS8 A 2 Bright A_PlaySoundEx("rpg/fly","SoundSlot7",1)
		TNT1 A 0 Bright A_CustomMissile("EFGRocketSmoke",Random(4,6),Random(-2,2)) 
		TNT1 AAA 0 Bright A_CustomMissile("EFGRockeParticleTrail",Random(4,6),Random(-2,2))
		TNT1 A 0 Bright A_BishopMissileWeave
		TNT1 A 0 Bright A_SeekerMissile(30,45,SMF_LOOK)
		MIS8 A 2 Bright A_PlaySoundEx("rpg/fly","SoundSlot7",1)	
		TNT1 A 0 Bright A_PlaySound("monster/homingrockbeep")	
		Loop
	Death:
		TNT1 A 0 Bright
		TNT1 AAA 0 Bright A_StopSoundEx("SoundSlot7")
		TNT1 AAAA 0 Bright A_SpawnItemEx("Debris",0,0,0,Random(4,-4),Random(4,-4),Random(4,8),0,SXF_CLIENTSIDE)
		TNT1 AAA 0 Bright A_SpawnItemEx("OrangeParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE)  
		TNT1 AAA 0 Bright A_CustomMissile("SmokeFX3",0,0,random(0,360),2,random(0,360))
		TNT1 AAAAAA 0 Bright A_CustomMissile("Kaboom",0,0,random(0,360),2,random(0,360))
		TNT1 A 0 Bright A_SetTranslucent(0.75,1)
		MISL B 4 Bright A_Explode(148,148)
		MISL CD 4 Bright
		Stop
	}
}

ACTOR MarineEFGFusionNuke : EFGFusionNuke
{
+DONTHARMSPECIES
Species "Player"
Damagetype "AllyExplosion"
States
	{
	Spawn:
		TNT1 A 0 Bright A_CustomMissile("MissileTrail",Random(4,6),Random(-2,2)) 
		TNT1 A 0 Bright A_CustomMissile("ProjectileTrailParticleOrange",Random(4,6),Random(-2,2)) 
		NKS1 A 2 Bright A_CustomMissile("NuclearMissileTrail",0,0,0)
		Loop
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIfInventory("Tic",1,"End")
		TNT1 A 0 Bright A_GiveInventory("Tic",1)
		TNT1 A 0 Bright A_SpawnItemEx("EFGFusionNukeFX",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_CustomMissile("MarineEFGFusionNukeExplode",0,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER,0)
		TNT1 AAAAAAAA 3 Bright A_SpawnItemEx("MarineWelderFlare",0,0,0,random(2,4),random(2,4),2,random(0,360),SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS|SXF_SETMASTER,64)
		Stop
	End:
		TNT1 A 1 Bright
		Stop
	}
}

Actor MarineEFGFusionNukeExplode
{
PROJECTILE
Height 8
Radius 13
Speed 0
+DONTREFLECT
+MTHRUSPECIES
+FORCERADIUSDMG
+NOINTERACTION
+DONTHARMSPECIES
Species "Player"
Damagetype "AllyExplosion"
Obituary "%o ate %k's Rocket."
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_Explode(1024,256,XF_HURTSOURCE,1,256)
		TNT1 A 1 Bright ThrustThingZ(0,8,0,1)
		TNT1 A 1 Bright A_Explode(512,512,XF_HURTSOURCE,1,256)
		TNT1 A 1 Bright A_Explode(256,1024,0,0,256)
		TNT1 A 1 Bright A_Explode(128,2048,0,0,256)
		Stop
	}
}

Actor MarineWelderFlare : BaseFireFlare
{
+MTHRUSPECIES
+DONTHARMSPECIES
Species "Player"
DamageType "Players"
Obituary "%o fell in the little flares from %k's Welder."
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_SetUserVar("user_firedamage",30)
		TNT1 A 0 Bright A_Die
		Goto Death
	}
}