ACTOR FreakBeacon : MarineBeacon
{
Inventory.MaxAmount 1
Inventory.InterHubAmount 1
Inventory.Icon "FKBCZ0"
Inventory.PickupSound "Beacon/Pickup"
Inventory.PickupMessage "Bazooka Freak's Beacon"
Tag "Freak's Beacon - Summoning Bazooka Freak"
States
{
  Spawn:
	FKBC A -1
    Stop
  Use:
	TNT1 A 1 A_SpawnItemEx("FreakBeaconActivated",0,0,16,8,0,4,0,0,0,tid-1)
	Stop
}
}

ACTOR FreakBeaconActivated
{
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("FreakBeaconActivatedSpawners",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 FreakBeaconActivatedSpawners
{
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("BazookaFreak",0,0,0,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
   End:
	TNT1 A 1 A_Fall
	Stop
}
}

Actor BazookaFreak : UACHeavyMarine
{
	//AttackSound "weapons/dtrailf"
	SeeSound "efglunatic/sight"
    ActiveSound "efglunatic/active"
    PainSound "efglunatic/pain"
    DeathSound "efglunatic/death"
    Tag "\c[j9]Bazooka \c[w3]Freak\c-"
	Translation "112:127=192:207"
    DropItem "ModdedBackpack0" 128 1
    DropItem "Bazooka" 64 1
    DropItem "PortableMedCellPack" 64 1
    DropItem "ShieldSphere", 100, 1
	DropItem "PortableMedCell" 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:
		BAZF 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)
        BAZF 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)
        BAZF CCDD 3 A_Chase
        TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
		Loop
	Strafing:
		BAZF A 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		BAZF A 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		BAZF A 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		BAZF B 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		BAZF B 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 ACS_NamedExecuteAlways("Check For Master Player Calling Help",0,0,0,0)
		BAZF C 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        BAZF C 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        BAZF C 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        BAZF D 3 A_GiveInventory("AIStrafing",1)
        TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        BAZF 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)
		BAZF A 0 A_Jump(48,"Find")
        TNT1 A 0 ACS_NamedExecuteAlways("Check For Master Player Calling Help",0,0,0,0)
		BAZF A 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND)
		BAZF AABB 3 A_GiveInventory("AIPatroling",1)
        TNT1 A 0 A_Jump(6,"MineField")
		BAZF C 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND)
        BAZF CCDD 3 A_GiveInventory("AIPatroling",1)
		Loop
	Find:
		TNT1 A 0 ACS_NamedExecuteAlways("Find Master Player",0,0,0,0)
        Goto Idle
	GiveUp:
	    BAZF A 10 A_ClearTarget
	    Goto Idle
    MineField:
        BAZF E 1
        BAZF E 1 A_SetUserVar("user_minefield",0)
        BAZF E 0 A_SetUserVar("user_minefield",user_minefield+1)
        BAZF E 0 A_Jump(127,3)
        BAZF E 12 A_CustomMissile("MarineSpringMineSet",32,0,0,2,22)
        BAZF E 0 A_Jump(256,2)
        BAZF E 12 A_CustomMissile("MarineSpringMineSet",32,0,0,2,22)
        BAZF A 12 A_SetAngle(random(0,360))
        BAZF A 3 A_JumpIf(user_minefield >= 4,"See")
        BAZF A 3 A_Jump(192,"See")
        Goto MineField+2
        BAZF A 1
        Goto See
	Missile:
	    BAZF E 1 A_PlaySound("efglunatic/sight",CHAN_VOICE,1,0,0.5)
		TNT1 A 0 A_Changeflag(NOPAIN,1)
		BAZF EEEEEE 2 A_GiveInventory("AIStrafing",1)
		//TNT1 A 0 A_PlaySound("RPG/Fire",CHAN_WEAPON,1,0,0.5)
		TNT1 A 0 A_CustomMissile("AllyRPGRocket",40,10,frandom(-1.0,1.0))
		BAZF F 6 Bright A_PlaySound("RPG/Fire",CHAN_WEAPON,1,0,0.5)
		BAZF EEEEEE 2 A_GiveInventory("AIStrafing",1)
	Reload:
		TNT1 A 0 A_PlaySound("Bazooka/Load",6,1,0,ATTN_NONE)
		BAZF EEEEEEEEEEE 1 A_GiveInventory("AIStrafing",1)
		BAZF EEEEEEEEEEE 1 A_GiveInventory("AIStrafing",1)
		BAZF EEEEEEEEEEE 1 A_GiveInventory("AIStrafing",1)
		BAZF EEEEEEEEEEE 1 A_GiveInventory("AIStrafing",1)
		BAZF EEEEEEEEEEE 1 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_Changeflag(NOPAIN,0)
		Goto See
    FragGrenade:
        BAZF E 1 A_JumpIfCloser(1000,1)
		Goto Missile
		BAZF E 0 A_JumpIfCloser(280,"Missile")
        BAZF E 6 A_GiveInventory("AIStrafing",1)
        BAZF EEE 4 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
        BAZF E 6 A_CustomMissile("MThrownGrenade",32,0,0,2,10)
		BAZF E 1
		Goto See
	LandMine:
        BAZF E 1 A_JumpIfCloser(500,1)
		Goto FragGrenade
        BAZF E 0 A_Jump(127,"SpringMine")
        BAZF E 3 A_GiveInventory("AIStrafing",1)
        BAZF EE 4 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
        BAZF E 6 A_CustomMissile("MarineSpringMineSet",32,0,0,2,10)
		BAZF E 1
		Goto See
    SpringMine:
        BAZF E 3 A_GiveInventory("AIStrafing",1)
        BAZF EE 4 A_GiveInventory("AIStrafing",1)
		TNT1 A 0 A_GiveInventory("AIStrafing",1)
        BAZF E 6 A_CustomMissile("MarineSpringMineSet",32,0,0,2,10)
		BAZF E 1
		Goto See
	Pain:
		BAZF G 3 A_GiveInventory("AIStrafing",1)
		BAZF G 3 A_Pain
		Goto See
    Death:
        BAZF H 10 A_Scream
        BAZF I 10 A_NoBlocking
        BAZF JKLM 10
        BAZF N -1
        Stop
    XDeath:
        BAZF O 5
        BAZF P 5 A_XScream
        BAZF Q 0 A_SpawnItemEx("GibbedGenerator",0,0,0,0,0,0,0,128,0)
        BAZF Q 5 A_NoBlocking
        BAZF RSTUV 5
        BAZF W -1
        Stop
	}
}

ACTOR AllyRPGRocket : PlayerRPGRocket
{
+THRUSPECIES
+MTHRUSPECIES
+DONTHARMSPECIES
-FOILINVUL
Damagetype "ExplosiveAlly" 
//Damage (random(10,40))
Obituary "%o was directly hit from a distance by a Bazooka PsychoManiac."
Species "Player"
}