Actor LiteBeaconSupplyPickup : CustomInventory //"Bacon set! bacon... bacon?! I shouldn't have skipped breakfast." - Serious Sam
{
Height 10
Radius 10
+INVENTORY.INVBAR
Inventory.Amount 1
Inventory.MaxAmount 1
Inventory.Icon "BELTZ0" //HDAN - new icon
Inventory.PickupSound "misc/i_pkup"
Inventory.PickupMessage "You picked up a lite supply beacon!"
Tag "Lite Supply Beacon"
States
{
  Spawn:
	BELT A -1
	Loop
  Use:
	TNT1 A 0
	TNT1 A 1 A_SpawnItemEx("LiteBeaconSupply",0,0,8,0,0,0,0,SXF_NOCHECKPOSITION,0)
	Stop
	}
}

Actor FullBeaconSupplyPickup : CustomInventory
{
Height 10
Radius 10
+INVENTORY.INVBAR
Inventory.Amount 1
Inventory.MaxAmount 1
Inventory.Icon "BEFLZ0" //HDAN - new icon
Inventory.PickupSound "misc/i_pkup"
Inventory.PickupMessage "You picked up a full supply beacon!"
Tag "Full Supply Beacon"
States
{
  Spawn:
	BEFL A -1
	Loop
  Use:
	TNT1 A 0
	TNT1 A 1 A_SpawnItemEx("FullBeaconSupply",0,0,8,0,0,0,0,SXF_NOCHECKPOSITION,0)
	Stop
	}
}

Actor RandomBeaconSupplyPickup : CustomInventory
{
Height 10
Radius 10
+INVENTORY.INVBAR
Inventory.Amount 1
Inventory.MaxAmount 1
Inventory.Icon "BERDZ0" //HDAN - new icon
Inventory.PickupSound "misc/i_pkup"
Inventory.PickupMessage "You picked up a random supply beacon!"
Tag "Random Supply Beacon"
States
{
  Spawn:
	BERT A -1
	Loop
  Use:
	TNT1 A 0
	TNT1 A 1 A_SpawnItemEx("RandomBeaconSupply",0,0,8,0,0,0,0,SXF_NOCHECKPOSITION,0)
	Stop
	}
}

Actor BeaconSupplyCooldown : PowerDamage
{
+INVENTORY.ADDITIVETIME
DamageFactor "nothing", 1.0
Powerup.duration -32  // in order to match BeaconCache is necessary add "BeaconCache amount + 2" as powerup duration
}

ACTOR BeaconCache : Inventory { Inventory.MaxAmount 30 } //HDAN - Loading lights
ACTOR BeaconSupplyAmmo : Inventory { Inventory.MaxAmount 5 } //HDAN - The fuel

Actor BeaconArmorBonus : ArmorBonus
{
-COUNTITEM
+INVENTORY.QUIET
+INVENTORY.ALWAYSPICKUP
Armor.SaveAmount 10
Armor.SavePercent 40
Armor.MaxSaveAmount 200
Inventory.Icon "ARSDA0"
States
{
  Spawn:
	ARSD A 6
	ARSD B 12
	Loop
	}
}

ACTOR ArkCombatpack: CustomInventory
{
  +INVENTORY.ALWAYSPICKUP
  Height 36
  Inventory.PickupSound "items/pack"
  Inventory.PickupMessage "You picked up an ark combat pack!"
  States
  {
  Spawn:
	CBPK A -1
    Loop
  Pickup:
	TNT1 A 0 A_GiveInventory("BulletMag",50)
	TNT1 A 0 A_GiveInventory("NewShell",13)
	TNT1 A 0 A_GiveInventory("Missile",13)
	TNT1 A 0 A_GiveInventory("Gas",75)
	TNT1 A 0 A_GiveInventory("NewCell",75)
	TNT1 A 0 A_GiveInventory("DemonAmmo",75)
	TNT1 A 0 A_GiveInventory("DustMana",32)
	TNT1 A 0 A_GiveInventory("ExplosiveAmmo",4)
	TNT1 A 0 A_GiveInventory("ProxMines",5)
	TNT1 A 0 A_GiveInventory("HandGrenadeAmmo",2)
	TNT1 A 0 A_GiveInventory("MineAmmo",2)
    TNT1 A 0 A_GiveInventory("ArmorBonus", 1)
    TNT1 A 0 A_GiveInventory("ArmorBonus", 1)
    TNT1 A 0 A_GiveInventory("ArmorBonus", 1)
    TNT1 A 0 A_GiveInventory("ArmorBonus", 1)
    TNT1 A 0 A_GiveInventory("ArmorBonus", 1)
    TNT1 A 0 HealThing(10,200)
    Stop
  }
}

Actor LiteCombatPack : CustomInventory
{
Height 36
+INVENTORY.ALWAYSPICKUP
Inventory.PickupSound "items/pack"
Inventory.PickupMessage "You got a lite combat pack."
States
{
  Spawn:
	CLTP A -1
	Loop
  Pickup:
	TNT1 A 0
	TNT1 A 0 A_GiveInventory("BulletMag",100)
	TNT1 A 0 A_GiveInventory("NewShell",25)
	TNT1 A 0 A_GiveInventory("Missile",25)
	TNT1 A 0 A_GiveInventory("Gas",150)
	TNT1 A 0 A_GiveInventory("NewCell",150)
	TNT1 A 0 A_GiveInventory("DemonAmmo",150)
	TNT1 A 0 A_GiveInventory("DustMana",63)
	TNT1 A 0 A_GiveInventory("ExplosiveAmmo",6)
	TNT1 A 0 A_GiveInventory("ProxMines",5)
	TNT1 A 0 A_GiveInventory("HandGrenadeAmmo",2)
	TNT1 A 0 A_GiveInventory("MineAmmo",2)
	TNT1 A 0 A_GiveInventory("NLDemonAmmo",16)
	TNT1 A 0 A_GiveInventory("NemesisShell",5)
	TNT1 A 0 A_GiveInventory("DCell",10)
	TNT1 A 0 A_GiveInventory("SpringMine",1)
	TNT1 A 0 A_GiveInventory("BeaconArmorBonus")
	TNT1 A 1 Healthing(10,200)
	Stop
	}
}

Actor FullCombatPack : CustomInventory
{
Height 36
+INVENTORY.ALWAYSPICKUP
Inventory.PickupSound "items/pack"
Inventory.PickupMessage "You got a full combat pack."
States
{
  Spawn:
	CFLT A -1
	Loop
  Pickup:
	TNT1 A 0
	TNT1 A 0 ACS_NamedExecuteWithResult("MaxAmmoCapacity", 0)
	TNT1 A 0 A_GiveInventory("BulletMag",133)
	TNT1 A 0 A_GiveInventory("LegendaryLMGBulletMag",12)
	TNT1 A 0 A_GiveInventory("LegendaryBulletMag",12)
	TNT1 A 0 A_GiveInventory("ELegendaryLMGBulletMag",12)
	TNT1 A 0 A_GiveInventory("NewShell",33)
	TNT1 A 0 A_GiveInventory("LegendaryShell",3)
	TNT1 A 0 A_GiveInventory("EnragedLegendaryShell",3)
	TNT1 A 0 A_GiveInventory("Missile",33)
	TNT1 A 0 A_GiveInventory("Gas",200)
	TNT1 A 0 A_GiveInventory("NewCell",200)
	TNT1 A 0 A_GiveInventory("DemonAmmo",200)
	TNT1 A 0 A_GiveInventory("LDemonAmmo",16)
	TNT1 A 0 A_GiveInventory("ILDemonAmmo",16)
	TNT1 A 0 A_GiveInventory("DustMana",100)
	TNT1 A 0 A_GiveInventory("ExplosiveAmmo",10)
	TNT1 A 0 A_GiveInventory("ProxMines",5)
	TNT1 A 0 A_GiveInventory("HandGrenadeAmmo",4)
	TNT1 A 0 A_GiveInventory("MineAmmo",4)
	TNT1 A 0 A_GiveInventory("NLDemonAmmo",32)
	TNT1 A 0 A_GiveInventory("NemesisShell",7)
	TNT1 A 0 A_GiveInventory("DCell",10)
	TNT1 A 0 A_GiveInventory("BeaconArmorBonus")
	TNT1 A 0 A_GiveInventory("SpringMine",3)
	TNT1 A 1 Healthing(10,200)
	Stop
	}
}

ACTOR ExplosiveCombatpack : CustomInventory
{
+INVENTORY.ALWAYSPICKUP
Height 36
Inventory.PickupSound "items/pack"
Inventory.PickupMessage "You got an explosive combat pack."
States
{
  Spawn:
	CEXP A -1
	Loop
  Remove:
	TNT1 A 0
	Stop
  Pickup:
	TNT1 A 0 ACS_NamedExecuteWithResult("MaxAmmoCapacity", 0)
	TNT1 A 0 A_GiveInventory("BulletMag",50)
	TNT1 A 0 A_GiveInventory("NewShell",13)
	TNT1 A 0 A_GiveInventory("Missile",100)
	TNT1 A 0 A_GiveInventory("Gas",600)
	TNT1 A 0 A_GiveInventory("NewCell",75)
	TNT1 A 0 A_GiveInventory("DemonAmmo",75)
	TNT1 A 0 A_GiveInventory("LDemonAmmo",16)
	TNT1 A 0 A_GiveInventory("ILDemonAmmo",16)
	TNT1 A 0 A_GiveInventory("DustMana",32)
	TNT1 A 0 A_GiveInventory("ExplosiveAmmo",30)
	TNT1 A 0 A_GiveInventory("ProxMines",5)
	TNT1 A 0 A_GiveInventory("HandGrenadeAmmo",8)
	TNT1 A 0 A_GiveInventory("MineAmmo",8)
	TNT1 A 0 A_GiveInventory("NLDemonAmmo",10)
	TNT1 A 0 A_GiveInventory("DCell",4)
	TNT1 A 0 A_GiveInventory("SpringMine",6)
	TNT1 A 0 A_GiveInventory("BeaconArmorBonus",1)
	//TNT1 A 0 ACS_NamedExecuteAlways("ExplosiveGiveAway", 0)	
 	TNT1 A 1 Healthing(15,200)
	Stop
	}
}

Actor EnergyCombatPack : CustomInventory
{
Height 36
+INVENTORY.ALWAYSPICKUP
Inventory.PickupSound "items/pack"
Inventory.PickupMessage "You got an energy combat pack."
States
{
  Spawn:
	CENG A -1
	Loop
  Pickup:
	TNT1 A 0
	TNT1 A 0 ACS_NamedExecuteWithResult("MaxAmmoCapacity", 0)
	TNT1 A 0 A_GiveInventory("BulletMag",50)
	TNT1 A 0 A_GiveInventory("NewShell",13)
	TNT1 A 0 A_GiveInventory("Missile",13)
	TNT1 A 0 A_GiveInventory("Gas",75)
	TNT1 A 0 A_GiveInventory("NewCell",300)
	TNT1 A 0 A_GiveInventory("DemonAmmo",300)
	TNT1 A 0 A_GiveInventory("LDemonAmmo",32)
	TNT1 A 0 A_GiveInventory("ILDemonAmmo",3) 
	TNT1 A 0 A_GiveInventory("DustMana",250)
	TNT1 A 0 A_GiveInventory("ExplosiveAmmo",6)
	TNT1 A 0 A_GiveInventory("ProxMines",5)
	TNT1 A 0 A_GiveInventory("HandGrenadeAmmo",2)
	TNT1 A 0 A_GiveInventory("MineAmmo",2)
	TNT1 A 0 A_GiveInventory("NLDemonAmmo",16)
	TNT1 A 0 A_GiveInventory("NemesisShell",5)
	TNT1 A 0 A_GiveInventory("DCell",15)
	TNT1 A 0 A_GiveInventory("SpringMine",1)
	TNT1 A 0 A_GiveInventory("BeaconArmorBonus",1)
	//TNT1 A 0 ACS_NamedExecuteAlways("BigGunGiveAway", 0)
 	TNT1 A 1 Healthing(15,200)
	Stop
	}
}

ACTOR CapacityCombatpack: CustomInventory
{
  -INVENTORY.ALWAYSPICKUP
  Height 36
  Inventory.PickupSound "items/pack"
  Inventory.PickupMessage "You picked up a capacity combat pack"
  States
  {
  Spawn:
	CBPK A -1
    Loop
  Pickup:
    TNT1 A 0 A_GiveInventory("MaxCapacitor", 1)
	TNT1 A 0 ACS_NamedExecuteWithResult("MaxAmmoCapacity", 0)
	TNT1 A 0 A_GiveInventory("BulletMag",50)
	TNT1 A 0 A_GiveInventory("LegendaryLMGBulletMag",19)
	TNT1 A 0 A_GiveInventory("LegendaryBulletMag",19)
	TNT1 A 0 A_GiveInventory("ELegendaryLMGBulletMag",19)
	TNT1 A 0 A_GiveInventory("NewShell",13)
	TNT1 A 0 A_GiveInventory("LegendaryShell",6)
	TNT1 A 0 A_GiveInventory("EnragedLegendaryShell",6)
	TNT1 A 0 A_GiveInventory("Missile",13)
	TNT1 A 0 A_GiveInventory("Gas",75)
	TNT1 A 0 A_GiveInventory("NewCell",75)
	TNT1 A 0 A_GiveInventory("DemonAmmo",75)
	TNT1 A 0 A_GiveInventory("LDemonAmmo",32)
	TNT1 A 0 A_GiveInventory("ILDemonAmmo",32)
	TNT1 A 0 A_GiveInventory("DustMana",32)
	TNT1 A 0 A_GiveInventory("ExplosiveAmmo",6)
	TNT1 A 0 A_GiveInventory("ProxMines",5)
	TNT1 A 0 A_GiveInventory("HandGrenadeAmmo",2)
	TNT1 A 0 A_GiveInventory("MineAmmo",2)
	TNT1 A 0 A_GiveInventory("NLDemonAmmo",16)
	TNT1 A 0 A_GiveInventory("NemesisShell",4)
	TNT1 A 0 A_GiveInventory("DCell",10)
	TNT1 A 0 A_GiveInventory("SpringMine",1)
	TNT1 A 0 A_GiveInventory("BeaconArmorBonus",1)
    TNT1 A 0 HealThing(15,200)
    Stop
  }
}

Actor LegendaryCombatPack : CustomInventory
{
Height 36
+INVENTORY.ALWAYSPICKUP
Inventory.PickupSound "items/pack"
Inventory.PickupMessage "You got a legendary combat pack."
States
{
  Spawn:
	CLGP A -1
	Loop
  Pickup:
	TNT1 A 0
	TNT1 A 0 ACS_NamedExecuteWithResult("MaxAmmoCapacity", 0)
	TNT1 A 0 A_GiveInventory("BulletMag",50)
	TNT1 A 0 A_GiveInventory("LegendaryLMGBulletMag",300)
	TNT1 A 0 A_GiveInventory("LegendaryBulletMag",300)
	TNT1 A 0 A_GiveInventory("ELegendaryLMGBulletMag",300)
	TNT1 A 0 A_GiveInventory("NewShell",13)
	TNT1 A 0 A_GiveInventory("LegendaryShell",95)
	TNT1 A 0 A_GiveInventory("EnragedLegendaryShell",95)
	TNT1 A 0 A_GiveInventory("Missile",13)
	TNT1 A 0 A_GiveInventory("Gas",75)
	TNT1 A 0 A_GiveInventory("NewCell",75)
	TNT1 A 0 A_GiveInventory("DemonAmmo",75)
	TNT1 A 0 A_GiveInventory("LDemonAmmo",500)
	TNT1 A 0 A_GiveInventory("ILDemonAmmo",500)
	TNT1 A 0 A_GiveInventory("DustMana",32)
	TNT1 A 0 A_GiveInventory("ExplosiveAmmo",6)
	TNT1 A 0 A_GiveInventory("ProxMines",5)
	TNT1 A 0 A_GiveInventory("HandGrenadeAmmo",2)
	TNT1 A 0 A_GiveInventory("MineAmmo",2)
	TNT1 A 0 A_GiveInventory("NLDemonAmmo",16)
	TNT1 A 0 A_GiveInventory("NemesisShell",5)
	TNT1 A 0 A_GiveInventory("DCell",10)
	TNT1 A 0 A_GiveInventory("SpringMine",1)
	TNT1 A 1 Healthing(25,250)
	TNT1 A 0 A_GiveInventory("BossArmorBonusMax")
	//TNT1 A 0 ACS_NamedExecuteAlways("LegendaryGiveAway", 0)
	Stop
	}
}

Actor NemesisCombatPack : CustomInventory
{
Height 36
+INVENTORY.ALWAYSPICKUP
Inventory.PickupSound "items/pack"
Inventory.PickupMessage "You got a nemesis combat pack."
States
{
  Spawn:
	CNMP A -1
	Loop
  Pickup:
	TNT1 A 0
	TNT1 A 0 ACS_NamedExecuteWithResult("MaxAmmoCapacity", 0)
	TNT1 A 0 A_GiveInventory("BulletMag",50)
	TNT1 A 0 A_GiveInventory("LegendaryLMGBulletMag",19)
	TNT1 A 0 A_GiveInventory("LegendaryBulletMag",19)
	TNT1 A 0 A_GiveInventory("ELegendaryLMGBulletMag",19)
	TNT1 A 0 A_GiveInventory("NewShell",13)
	TNT1 A 0 A_GiveInventory("LegendaryShell",6)
	TNT1 A 0 A_GiveInventory("EnragedLegendaryShell",6)
	TNT1 A 0 A_GiveInventory("Missile",13)
	TNT1 A 0 A_GiveInventory("Gas",75)
	TNT1 A 0 A_GiveInventory("NewCell",75)
	TNT1 A 0 A_GiveInventory("DemonAmmo",75)
	TNT1 A 0 A_GiveInventory("LDemonAmmo",32)
	TNT1 A 0 A_GiveInventory("ILDemonAmmo",32)
	TNT1 A 0 A_GiveInventory("DustMana",32)
	TNT1 A 0 A_GiveInventory("ExplosiveAmmo",6)
	TNT1 A 0 A_GiveInventory("ProxMines",5)
	TNT1 A 0 A_GiveInventory("HandGrenadeAmmo",4)
	TNT1 A 0 A_GiveInventory("MineAmmo",4)
	TNT1 A 0 A_GiveInventory("NLDemonAmmo",100)
	TNT1 A 0 A_GiveInventory("NemesisShell",20)
	TNT1 A 0 A_GiveInventory("DCell",10)
	TNT1 A 0 A_GiveInventory("SpringMine",1)
	TNT1 A 1 Healthing(50,250)
	TNT1 A 0 A_GiveInventory("BossArmorBonusMax")
	TNT1 A 0 A_GiveInventory("BeaconArmorBonus",1)
	//TNT1 A 0 ACS_NamedExecuteAlways("NemesisGiveAway", 0)
	Stop
	}
}

Actor MaxCapacitor : CustomInventory
{
Inventory.Amount 1
Inventory.MaxAmount 5
Inventory.InterHubAmount 5
Inventory.PickupMessage "Max Capacitor"
Inventory.Icon ""
-INVENTORY.INVBAR
-COUNTITEM
States
{
  Pickup:
	TNT1 A 0 A_JumpIfInventory("MaxCapacitor",5,"TooMany")
	TNT1 A 0 ACS_NamedExecuteAlways("MoreAmmo",0)
	Stop
  TooMany:
	TNT1 A 0
	Stop
  Use:
	TNT1 A 0
	Stop
  Spawn:
	TNT1 A 0
	Stop
    }
}

Actor LiteBeaconSupply
{
-SOLID
-SHOOTABLE
+FRIENDLY
Tag "Lite beacon ammunition supply"
States
{
  Spawn:
	BELT ABCDE 7
  Idle:
	//TNT1 A 0 A_JumpIf(waterlevel > 2,"Death")
	TNT1 A 0 A_ChangeFlag(FRIENDLY,0)
	TNT1 A 0 A_ChangeFlag(NOBLOCKMAP,0)
	TNT1 A 0 A_SetTranslucent(1,0)
	TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,100,0,360,"Supply")
	TNT1 A 0 A_ChangeFlag(FRIENDLY,1)
	BELT R 5
	Loop
  Idle0:
	//TNT1 A 0 A_JumpIf(waterlevel > 2,"Death")
	TNT1 A 0 A_ChangeFlag(FRIENDLY,0)
	TNT1 A 0 A_ChangeFlag(NOBLOCKMAP,0)
	TNT1 A 0 A_SetTranslucent(1,0)
	TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,100,0,360,"Supply")
	TNT1 A 0 A_ChangeFlag(FRIENDLY,1)
	TNT1 A 0 A_JumpIfInventory("BeaconCache",30,"Idle5")
	TNT1 A 0 A_JumpIfInventory("BeaconCache",24,"Idle4")
	TNT1 A 0 A_JumpIfInventory("BeaconCache",18,"Idle3")
	TNT1 A 0 A_JumpIfInventory("BeaconCache",12,"Idle2")
	TNT1 A 0 A_JumpIfInventory("BeaconCache",6,"Idle1")
	BELT A 35 A_GiveInventory("BeaconCache",1)
	Loop
  Idle1:
	BELT B 35 Bright A_GiveInventory("BeaconCache",1)
	Goto Idle0
  Idle2:
	BELT C 35 Bright A_GiveInventory("BeaconCache",1)
	Goto Idle0
  Idle3:
	BELT D 35 Bright A_GiveInventory("BeaconCache",1)
	Goto Idle0
  Idle4:
	BELT E 35 Bright A_GiveInventory("BeaconCache",1)
	Goto Idle0
  Idle5:
	TNT1 A 0 A_ChangeFlag(FRIENDLY,0)
	TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,100,0,360,"Supply")
	TNT1 A 0 A_ChangeFlag(FRIENDLY,1)	
	BELT R 5 Bright
	Loop
  Supply:
	TNT1 A 0 A_ChangeFlag(FRIENDLY,1)
	TNT1 A 0 A_CheckFlag(ISMONSTER,"Hide",AAPTR_TARGET)
	TNT1 A 0 A_JumpIfInventory("BeaconSupplyCooldown",1,"Enough")
	TNT1 A 0 A_GiveInventory("BeaconSupplyCooldown",1)
	TNT1 A 0 A_TakeInventory("BeaconCache",999)
	BELT A 10 Bright A_SpawnItemEx ("TeleportFog",0,0,8,0,0,0,0,SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_Jump(100,"WeaponSupply","ItemSupply")
	TNT1 A 0 A_SpawnItemEx("LiteCombatPack",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_JumpIfInventory("BeaconSupplyAmmo",5,"Death")
	TNT1 A 0 A_GiveInventory("BeaconSupplyAmmo",1)  
	BELT A 25 Healthing(100)
	BELT A 35
	Goto Idle0
  WeaponSupply:	
	TNT1 A 0 A_SpawnItemEx("LiteBaconWeaponSpawner",0,0,0,0,26,10,random(0,360),SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_JumpIfInventory("BeaconSupplyAmmo",5,"Death")
	TNT1 A 0 A_GiveInventory("BeaconSupplyAmmo",1)
	BELT A 25 Healthing(100)
	BELT AAAA 35
	Goto Idle0
  ItemSupply:	
	BELT A 0 A_SpawnItemEx("LiteBeaconItemSpawner",0,0,10,Random(4,6),0,0,45,SXF_NOCHECKPOSITION,0)
	BELT A 0 A_SpawnItemEx("LiteBeaconItemSpawner",0,0,10,Random(4,6),0,0,90,SXF_NOCHECKPOSITION,0)
	BELT A 0 A_SpawnItemEx("LiteBeaconItemSpawner",0,0,10,Random(4,6),0,0,135,SXF_NOCHECKPOSITION,0)
	BELT A 0 A_SpawnItemEx("LiteBeaconItemSpawner",0,0,10,Random(4,6),0,0,180,SXF_NOCHECKPOSITION,0)
	BELT A 0 A_SpawnItemEx("LiteBeaconItemSpawner",0,0,10,Random(4,6),0,0,225,SXF_NOCHECKPOSITION,0)
	BELT A 0 A_SpawnItemEx("LiteBeaconItemSpawner",0,0,10,Random(4,6),0,0,270,SXF_NOCHECKPOSITION,0)
	BELT A 0 A_SpawnItemEx("LiteBeaconItemSpawner",0,0,10,Random(4,6),0,0,315,SXF_NOCHECKPOSITION,0)
	BELT A 0 A_SpawnItemEx("LiteBeaconItemSpawner",0,0,10,Random(4,6),0,0,360,SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_JumpIfInventory("BeaconSupplyAmmo",5,"Death")
	TNT1 A 0 A_GiveInventory("BeaconSupplyAmmo",1)
	BELT A 25 Healthing(100)
	BELT AAAA 35
	Goto Idle0
  Enough:
	TNT1 A 0 A_JumpIfInventory("BeaconCache",24,"Enough4")
	TNT1 A 0 A_JumpIfInventory("BeaconCache",18,"Enough3")
	TNT1 A 0 A_JumpIfInventory("BeaconCache",12,"Enough2")
	TNT1 A 0 A_JumpIfInventory("BeaconCache",6,"Enough1")
	BELT A 10 Bright A_PlaySound("weapon/warn")
	BELT A 25 Bright
	BELT A 35 Bright A_GiveInventory("BeaconCache",2)
	Goto Idle0
  Enough1:
	BELT B 10 Bright A_PlaySound("weapon/warn")
	BELT B 25 Bright
	BELT B 35 Bright A_GiveInventory("BeaconCache",2)
	Goto Idle0
  Enough2:
	BELT C 10 Bright A_PlaySound("weapon/warn")
	BELT C 25 Bright
	BELT C 35 Bright A_GiveInventory("BeaconCache",2)
	Goto Idle0
  Enough3:
	BELT D 10 Bright A_PlaySound("weapon/warn")
	BELT D 25 Bright
	BELT D 35 Bright A_GiveInventory("BeaconCache",2)
	Goto Idle0
  Enough4:
	BELT E 10 Bright A_PlaySound("weapon/warn")
	BELT E 25 Bright
	BELT E 35 Bright A_GiveInventory("BeaconCache",2)
	Goto Idle0
  Hide:
	TNT1 A 0 A_ChangeFlag(NOBLOCKMAP,1)
	TNT1 A 0 A_SetTranslucent(0.5,0)
	BELT AAAAA 35
	Goto Idle0
  Death:
	BELT A 25
	TNT1 A 1 A_CustomMissile ("TeleportFog", 0, 0, 0, 0, 0)
	Stop
	}
}

Actor FullBeaconSupply
{
-SOLID
-SHOOTABLE
+FRIENDLY
Tag "Full Beacon ammunition supply"
States
{
  Spawn:
	BEFL ABCDE 7
  Idle:
	//TNT1 A 0 A_JumpIf(waterlevel > 2,"Death")
	TNT1 A 0 A_ChangeFlag(FRIENDLY,0)
	TNT1 A 0 A_ChangeFlag(NOBLOCKMAP,0)
	TNT1 A 0 A_SetTranslucent(1,0)
	TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,100,0,360,"Supply")
	TNT1 A 0 A_ChangeFlag(FRIENDLY,1)
	BEFL R 5
	Loop
  Idle0:
	//TNT1 A 0 A_JumpIf(waterlevel > 2,"Death")
	TNT1 A 0 A_ChangeFlag(FRIENDLY,0)
	TNT1 A 0 A_ChangeFlag(NOBLOCKMAP,0)
	TNT1 A 0 A_SetTranslucent(1,0)
	TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,100,0,360,"Supply")
	TNT1 A 0 A_ChangeFlag(FRIENDLY,1)
	TNT1 A 0 A_JumpIfInventory("BeaconCache",30,"Idle5")
	TNT1 A 0 A_JumpIfInventory("BeaconCache",24,"Idle4")
	TNT1 A 0 A_JumpIfInventory("BeaconCache",18,"Idle3")
	TNT1 A 0 A_JumpIfInventory("BeaconCache",12,"Idle2")
	TNT1 A 0 A_JumpIfInventory("BeaconCache",6,"Idle1")
	BEFL A 35 A_GiveInventory("BeaconCache",1)
	Loop
  Idle1:
	BEFL B 35 Bright A_GiveInventory("BeaconCache",1)
	Goto Idle0
  Idle2:
	BEFL C 35 Bright A_GiveInventory("BeaconCache",1)
	Goto Idle0
  Idle3:
	BEFL D 35 Bright A_GiveInventory("BeaconCache",1)
	Goto Idle0
  Idle4:
	BEFL E 35 Bright A_GiveInventory("BeaconCache",1)
	Goto Idle0
  Idle5:
	TNT1 A 0 A_ChangeFlag(FRIENDLY,0)
	TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,100,0,360,"Supply")
	TNT1 A 0 A_ChangeFlag(FRIENDLY,1)	
	BEFL R 5 Bright
	Loop	
  Supply:
	TNT1 A 0 A_ChangeFlag(FRIENDLY,1)
	TNT1 A 0 A_CheckFlag(ISMONSTER,"Hide",AAPTR_TARGET)
	TNT1 A 0 A_JumpIfInventory("BeaconSupplyCooldown",1,"Enough")
	TNT1 A 0 A_GiveInventory("BeaconSupplyCooldown",1)
	TNT1 A 0 A_TakeInventory("BeaconCache",999)
	BEFL A 10 Bright A_SpawnItemEx ("TeleportFog",0,0,8,0,0,0,0,SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_Jump(100,"WeaponSupply","ItemSupply")
	TNT1 A 0 A_SpawnItemEx("FullCombatPack",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_JumpIfInventory("BeaconSupplyAmmo",5,"Death")
	TNT1 A 0 A_GiveInventory("BeaconSupplyAmmo",1)
	BEFL A 25 Healthing(100)
	BEFL A 35
	Goto Idle0
  WeaponSupply:	
	TNT1 A 0 A_SpawnItemEx("FullBaconWeaponSpawner",0,0,0,0,26,10,random(0,360),SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_JumpIfInventory("BeaconSupplyAmmo",5,"Death")
	TNT1 A 0 A_GiveInventory("BeaconSupplyAmmo",1) 
	BEFL A 25 Healthing(100)
	BEFL AAAA 35
	Goto Idle0
  ItemSupply:	
	BEFL A 0 A_SpawnItemEx("FullBeaconItemSpawner",0,0,10,Random(4,6),0,0,45,SXF_NOCHECKPOSITION,0)
	BEFL A 0 A_SpawnItemEx("FullBeaconItemSpawner",0,0,10,Random(4,6),0,0,90,SXF_NOCHECKPOSITION,0)
	BEFL A 0 A_SpawnItemEx("FullBeaconItemSpawner",0,0,10,Random(4,6),0,0,135,SXF_NOCHECKPOSITION,0)
	BEFL A 0 A_SpawnItemEx("FullBeaconItemSpawner",0,0,10,Random(4,6),0,0,180,SXF_NOCHECKPOSITION,0)
	BEFL A 0 A_SpawnItemEx("FullBeaconItemSpawner",0,0,10,Random(4,6),0,0,225,SXF_NOCHECKPOSITION,0)
	BEFL A 0 A_SpawnItemEx("FullBeaconItemSpawner",0,0,10,Random(4,6),0,0,270,SXF_NOCHECKPOSITION,0)
	BEFL A 0 A_SpawnItemEx("FullBeaconItemSpawner",0,0,10,Random(4,6),0,0,315,SXF_NOCHECKPOSITION,0)
	BEFL A 0 A_SpawnItemEx("FullBeaconItemSpawner",0,0,10,Random(4,6),0,0,360,SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_JumpIfInventory("BeaconSupplyAmmo",5,"Death")
	TNT1 A 0 A_GiveInventory("BeaconSupplyAmmo",1) 
	BEFL A 25 Healthing(100)
	BEFL AAAA 35
	Goto Idle0
  Enough:
	TNT1 A 0 A_JumpIfInventory("BeaconCache",24,"Enough4")
	TNT1 A 0 A_JumpIfInventory("BeaconCache",18,"Enough3")
	TNT1 A 0 A_JumpIfInventory("BeaconCache",12,"Enough2")
	TNT1 A 0 A_JumpIfInventory("BeaconCache",6,"Enough1")
	BEFL A 10 Bright A_PlaySound("weapon/warn")
	BEFL A 25 Bright
	BEFL A 35 Bright A_GiveInventory("BeaconCache",2)
	Goto Idle0
  Enough1:
	BEFL B 10 Bright A_PlaySound("weapon/warn")
	BEFL B 25 Bright
	BEFL B 35 Bright A_GiveInventory("BeaconCache",2)
	Goto Idle0
  Enough2:
	BEFL C 10 Bright A_PlaySound("weapon/warn")
	BEFL C 25 Bright
	BEFL C 35 Bright A_GiveInventory("BeaconCache",2)
	Goto Idle0
  Enough3:
	BEFL D 10 Bright A_PlaySound("weapon/warn")
	BEFL D 25 Bright
	BEFL D 35 Bright A_GiveInventory("BeaconCache",2)
	Goto Idle0
  Enough4:
	BEFL E 10 Bright A_PlaySound("weapon/warn")
	BEFL E 25 Bright
	BEFL E 35 Bright A_GiveInventory("BeaconCache",2)
	Goto Idle0
  Hide:
	TNT1 A 0 A_ChangeFlag(NOBLOCKMAP,1)
	TNT1 A 0 A_SetTranslucent(0.5,0)
	BEFL AAAAA 35
	Goto Idle0
  Death:
	BEFL A 25
	TNT1 A 1 A_CustomMissile ("TeleportFog", 0, 0, 0, 0, 0)
	Stop
	}
}

Actor RandomBeaconSupply
{
-SOLID
-SHOOTABLE
+FRIENDLY
Tag "Random beacon ammunition supply"
States
{
  Spawn:
	BERD ABCDE 7
  Idle:
	//TNT1 A 0 A_JumpIf(waterlevel > 2,"Death")
	TNT1 A 0 A_ChangeFlag(FRIENDLY,0)
	TNT1 A 0 A_ChangeFlag(NOBLOCKMAP,0)
	TNT1 A 0 A_SetTranslucent(1,0)
	TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,100,0,360,"Supply")
	TNT1 A 0 A_ChangeFlag(FRIENDLY,1)
	BERD R 5
	Loop
  Idle0:
	//TNT1 A 0 A_JumpIf(waterlevel > 2,"Death")
	TNT1 A 0 A_ChangeFlag(FRIENDLY,0)
	TNT1 A 0 A_ChangeFlag(NOBLOCKMAP,0)
	TNT1 A 0 A_SetTranslucent(1,0)
	TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,100,0,360,"Supply")
	TNT1 A 0 A_ChangeFlag(FRIENDLY,1)
	TNT1 A 0 A_JumpIfInventory("BeaconCache",30,"Idle5")
	TNT1 A 0 A_JumpIfInventory("BeaconCache",24,"Idle4")
	TNT1 A 0 A_JumpIfInventory("BeaconCache",18,"Idle3")
	TNT1 A 0 A_JumpIfInventory("BeaconCache",12,"Idle2")
	TNT1 A 0 A_JumpIfInventory("BeaconCache",6,"Idle1")
	BERD A 35 A_GiveInventory("BeaconCache",1)
	Loop
  Idle1:
	BERD B 35 Bright A_GiveInventory("BeaconCache",1)
	Goto Idle0
  Idle2:
	BERD C 35 Bright A_GiveInventory("BeaconCache",1)
	Goto Idle0
  Idle3:
	BERD D 35 Bright A_GiveInventory("BeaconCache",1)
	Goto Idle0
  Idle4:
	BERD E 35 Bright A_GiveInventory("BeaconCache",1)
	Goto Idle0
  Idle5:
	TNT1 A 0 A_ChangeFlag(FRIENDLY,0)
	TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,100,0,360,"Supply")
	TNT1 A 0 A_ChangeFlag(FRIENDLY,1)	
	BERD R 5 Bright
	Loop	
  Supply:
	TNT1 A 0 A_ChangeFlag(FRIENDLY,1)
	TNT1 A 0 A_CheckFlag(ISMONSTER,"Hide",AAPTR_TARGET)
	TNT1 A 0 A_JumpIfInventory("BeaconSupplyCooldown",1,"Enough")
	TNT1 A 0 A_GiveInventory("BeaconSupplyCooldown",1)
	TNT1 A 0 A_TakeInventory("BeaconCache",999)
	BERD A 10 Bright A_SpawnItemEx ("TeleportFog",0,0,8,0,0,0,0,SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_Jump(100,"WeaponSupply","ItemSupply")
	TNT1 A 0 ACS_NamedExecuteAlways("RandomBeacon")
	TNT1 A 0 A_JumpIfInventory("BeaconSupplyAmmo",5,"Death")
	TNT1 A 0 A_GiveInventory("BeaconSupplyAmmo",1)  
	BERD A 25 Healthing(100)
	BERD A 35
	Goto Idle0
  WeaponSupply:	
	TNT1 A 0 A_SpawnItemEx("RandomBaconWeaponSpawner",0,0,0,0,26,10,random(0,360),SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_JumpIfInventory("BeaconSupplyAmmo",5,"Death")
	TNT1 A 0 A_GiveInventory("BeaconSupplyAmmo",1) 
	BERD A 25 Healthing(100)
	BERD AAAA 35
	Goto Idle0
  ItemSupply:	
	BERD A 0 A_SpawnItemEx("RandomBeaconItemSpawner",0,0,10,Random(4,6),0,0,45,SXF_NOCHECKPOSITION,0)
	BERD A 0 A_SpawnItemEx("RandomBeaconItemSpawner",0,0,10,Random(4,6),0,0,90,SXF_NOCHECKPOSITION,0)
	BERD A 0 A_SpawnItemEx("RandomBeaconItemSpawner",0,0,10,Random(4,6),0,0,135,SXF_NOCHECKPOSITION,0)
	BERD A 0 A_SpawnItemEx("RandomBeaconItemSpawner",0,0,10,Random(4,6),0,0,180,SXF_NOCHECKPOSITION,0)
	BERD A 0 A_SpawnItemEx("RandomBeaconItemSpawner",0,0,10,Random(4,6),0,0,225,SXF_NOCHECKPOSITION,0)
	BERD A 0 A_SpawnItemEx("RandomBeaconItemSpawner",0,0,10,Random(4,6),0,0,270,SXF_NOCHECKPOSITION,0)
	BERD A 0 A_SpawnItemEx("RandomBeaconItemSpawner",0,0,10,Random(4,6),0,0,315,SXF_NOCHECKPOSITION,0)
	BERD A 0 A_SpawnItemEx("RandomBeaconItemSpawner",0,0,10,Random(4,6),0,0,360,SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_JumpIfInventory("BeaconSupplyAmmo",5,"Death")
	TNT1 A 0 A_GiveInventory("BeaconSupplyAmmo",1) 
	BERD A 25 Healthing(100)
	BERD AAAA 35
	Goto Idle0
  Enough:
	TNT1 A 0 A_JumpIfInventory("BeaconCache",24,"Enough4")
	TNT1 A 0 A_JumpIfInventory("BeaconCache",18,"Enough3")
	TNT1 A 0 A_JumpIfInventory("BeaconCache",12,"Enough2")
	TNT1 A 0 A_JumpIfInventory("BeaconCache",6,"Enough1")
	BERD A 10 Bright A_PlaySound("weapon/warn")
	BERD A 25 Bright
	BERD A 35 Bright A_GiveInventory("BeaconCache",2)
	Goto Idle0
  Enough1:
	BERD B 10 Bright A_PlaySound("weapon/warn")
	BERD B 25 Bright
	BERD B 35 Bright A_GiveInventory("BeaconCache",2)
	Goto Idle0
  Enough2:
	BERD C 10 Bright A_PlaySound("weapon/warn")
	BERD C 25 Bright
	BERD C 35 Bright A_GiveInventory("BeaconCache",2)
	Goto Idle0
  Enough3:
	BERD D 10 Bright A_PlaySound("weapon/warn")
	BERD D 25 Bright
	BERD D 35 Bright A_GiveInventory("BeaconCache",2)
	Goto Idle0
  Enough4:
	BERD E 10 Bright A_PlaySound("weapon/warn")
	BERD E 25 Bright
	BERD E 35 Bright A_GiveInventory("BeaconCache",2)
	Goto Idle0
  Hide:
	TNT1 A 0 A_ChangeFlag(NOBLOCKMAP,1)
	TNT1 A 0 A_SetTranslucent(0.5,0)
	BERD AAAAA 35
	Goto Idle0
  Death:
	BERD A 25
	TNT1 A 1 A_CustomMissile ("TeleportFog", 0, 0, 0, 0, 0)
	Stop
	}
}

ACTOR LiteBaconWeaponSpawner
{
Radius 24
Height 8
Speed 17
Monster
-SHOOTABLE
-COUNTKILL
-SOLID
States
{
   Spawn:
    TNT1 A 0
   Death:
    TNT1 A 5 ACS_NamedExecuteWithResult("LiteBeaconWeaponSupply")
	TNT1 A 1 A_Fall
	Stop
	}
}

ACTOR FullBaconWeaponSpawner : LiteBaconWeaponSpawner
{
States
{
   Spawn:
    TNT1 A 0
   Death:
    TNT1 A 5 ACS_NamedExecuteWithResult("FullBeaconWeaponSupply")
	TNT1 A 1 A_Fall
	Stop
	}
}

ACTOR RandomBaconWeaponSpawner : LiteBaconWeaponSpawner
{
States
{
   Spawn:
    TNT1 A 0
   Death:
    TNT1 A 5 ACS_NamedExecuteWithResult("RandomBeaconWeaponSupply")
	TNT1 A 1 A_Fall
	Stop
	}
}

ACTOR LiteBeaconItemSpawner : RandomSpawner
{
+DROPPED
Dropitem "NonBrokenAmmoPack", 256, 1
DropItem "HealthFlask", 256, 1
DropItem "StimKit", 256, 1
DropItem "ArmorCharge", 256, 1
//DropItem "HandGrenadeAmmo", 256, 1
//DropItem "MineAmmo", 256, 1
//Dropitem "BulletMag", 256, 1
//Dropitem "NewShell", 256, 1
//Dropitem "Missile", 256, 1
//Dropitem "NexusGas", 256, 1
//Dropitem "NewCell", 256, 1
//Dropitem "NexusDemonAmmo", 256, 1
//Dropitem "NexusDustMana", 256, 1
}

ACTOR FullBeaconItemSpawner : RandomSpawner
{
+DROPPED
DropItem "Portablemedkit" 256 1
Dropitem "ArmorBooster", 256, 1
DropItem "PortableMedCell", 256, 1
Dropitem "ArmorPlate", 256, 1
Dropitem "NonBrokenAmmoPack", 256, 1
Dropitem "MarineBeacon", 256, 1
DropItem "ShieldSphere", 256, 1
//Dropitem "BulletBox", 256, 1
//Dropitem "NewShellBox", 256, 1
//Dropitem "MissileBox", 256, 1
//Dropitem "NexusBigGas", 256, 1
//Dropitem "NewCellPack", 256, 1
//Dropitem "NexusBigDustMana", 256, 1
//Dropitem "NexusDemonAmmoBox", 256, 1
}

ACTOR RandomBeaconItemSpawner : RandomSpawner
{
+DROPPED
DropItem "StimKit", 256, 1
DropItem "Portablemedkit" 256 1
DropItem "PortableMedCell", 256, 1
Dropitem "ArmorBooster", 256, 1
Dropitem "ArmorPlate", 256, 1
DropItem "PortableMedCellPack" 256 1
DropItem "Portablemedkit" 240 1
Dropitem "NonBrokenAmmoPack", 256, 1
DropItem "HealthFlask", 256, 1
DropItem "ShieldSphere", 256, 1
DropItem "PowerStimpack", 256, 1
Dropitem "MarineBeacon", 256, 1
}

/*
Actor Nada : LiteBaconWeaponSpawner
{
States
{
   Spawn:
    TNT1 A 0
	//TNT1 A 0 A_Jump(256,"Satchels","Meds","Armors","Ammo")
   Satchels:
    TNT1 A 1 A_SpawnItemEx("LiteBeaconItemSpawner",50,0,0,0,0,0,45,SXF_NOCHECKPOSITION,0)
	TNT1 A 1 A_SpawnItemEx("LiteBeaconItemSpawner",50,0,0,0,0,0,90,SXF_NOCHECKPOSITION,0)
	TNT1 A 1 A_SpawnItemEx("LiteBeaconItemSpawner",50,0,0,0,0,0,135,SXF_NOCHECKPOSITION,0)
	TNT1 A 1 A_SpawnItemEx("LiteBeaconItemSpawner",50,0,0,0,0,0,180,SXF_NOCHECKPOSITION,0)
	TNT1 A 1 A_SpawnItemEx("LiteBeaconItemSpawner",50,0,0,0,0,0,225,SXF_NOCHECKPOSITION,0)
	TNT1 A 1 A_SpawnItemEx("LiteBeaconItemSpawner",50,0,0,0,0,0,270,SXF_NOCHECKPOSITION,0)
	TNT1 A 1 A_SpawnItemEx("LiteBeaconItemSpawner",50,0,0,0,0,0,315,SXF_NOCHECKPOSITION,0)
	TNT1 A 1 A_SpawnItemEx("LiteBeaconItemSpawner",50,0,0,0,0,0,360,SXF_NOCHECKPOSITION,0)
   Death:
	TNT1 A 1 A_Fall
	Stop
    }
}
*/

Actor Nada : CustomInventory
{
Inventory.Amount 1
Inventory.MaxAmount 1
Inventory.InterHubAmount 1
//Inventory.PickupSound "pickups/iammosatchel"
//Inventory.UseSound "Null"
Inventory.PickupMessage "Nada"
Inventory.Icon "INASA0"
-INVENTORY.INVBAR
States
{
  Pickup:
	TNT1 A 0 A_Print("Nothing, better luck next time")
	TNT1 A 0 A_PlaySound("weapon/warn")
	Stop
  Use:
	TNT1 A 0
	Stop
  Spawn:
	TNT1 A 0
	Stop
    }
}