
// ------------------------------------------------------------
//   Inventory flags
// ------------------------------------------------------------

actor InventoryFlag : Inventory
{
	+inventory.undroppable
	inventory.maxamount 1
	inventory.amount 1
	+noclip
	height 0
	radius 0
	states
	{
	spawn:
		TNT1 A 0
		stop
	}
}

actor Timer : InventoryFlag
{
	inventory.maxamount 400
}

actor Reloading : InventoryFlag {}

actor NoChamberedRifle : InventoryFlag {}

actor NoChamberedShotgun : InventoryFlag {}

actor IsSprinting : InventoryFlag {}

actor IsJumping : InventoryFlag {}

actor IsCrouching : InventoryFlag {}

actor IsInterrupting : InventoryFlag {}

actor IsMoving : InventoryFlag
{
	inventory.maxamount 14
}


actor IsHit : InventoryFlag {}

actor Fatigue : InventoryFlag
{
	inventory.maxamount 100
}

actor UsingMeds : InventoryFlag
{
	inventory.maxamount 4
}


actor WoundCount : InventoryFlag
{
	inventory.maxamount 36
}
actor BandageCount : WoundCount {}
actor RegenStims : InventoryFlag
{
	inventory.maxamount 25
}
actor RegenBlues : InventoryFlag
{
	inventory.maxamount 200
}
actor RegenBers : RegenBlues {}


actor CanPickUpItems : InventoryFlag {}
actor CanPickupArmour : InventoryFlag
{
	inventory.maxamount 35
}

actor PlayingDeathmatch : InventoryFlag {}

actor HDKillCount : InventoryFlag
{
	inventory.maxamount 99999
}

ACTOR ShittyReloadDummy : InventoryFlag
{
	inventory.maxamount 600
}

ACTOR NotShot : InventoryFlag
{
	inventory.maxamount 7000
}

// ------------------------------------------------------------
//   Action items
// ------------------------------------------------------------


actor ActionItem : CustomInventory
{
	+inventory.undroppable
	inventory.maxamount 1
	inventory.amount 1
	-invbar
	+noclip
	+nointeraction
	height 0
	radius 0
	states
	{
	spawn:
		TNT1 A 0
		stop
	}
}

// ------------------------------------------------------------
//   Idle dummy actors
// ------------------------------------------------------------

actor IdleDummy
{
	+noclip
	+nointeraction
	height 0
	radius 0
	states
	{
	Spawn:
		TNT1 A -1
		stop
	}
}

actor HDKBarrelChance : IdleDummy {}
actor HDKBarrelChanceNo : IdleDummy {}


// ------------------------------------------------------------
//   Bleeding actors
// ------------------------------------------------------------

actor UnBleedableFlag : InventoryFlag {}
actor UnBleedableFlagGiver : ActionItem
{
	states
	{
	Pickup:
		TNT1 A 0 A_JumpIfInventory("UnBleedableFlag",1,3)
		TNT1 A 0 A_GiveInventory("UnBleedableFlag",1)
		TNT1 A 0 A_Print("No bleeding mode on")
		stop
		TNT1 A 0 A_TakeInventory("UnBleedableFlag",999)
		TNT1 A 0 A_Print("No bleeding mode off")
		stop
	}
}

actor BleedOutAI : ActionItem
{
	states
	{
	Pickup:
		TNT1 A 0 A_FireCustomMissile ("BleedOutDummy",0,0)
		stop
	}
}

actor BleedOutDummy : IdleDummy
{
	obituary "%o died from %p injuries."
	-nointeraction
	+ismonster
	+piercearmor
	+nodamagethrust
	damagetype "BleedOut"
	states
	{
	spawn:
		TNT1 A 0
		TNT1 A 0 A_CustomMeleeAttack ((1), "none", "none", "BleedOut", 1)
		stop
	}
}



// ------------------------------------------------------------
//   Blocker to prevent shotguns from overpenetrating multiple targets
// ------------------------------------------------------------

//		TNT1 A 0 A_SpawnItemEx ("tempshield", 0,0,0, velx,vely,velz, 0,40)
//		TNT1 A 0 A_SpawnItemEx ("tempshield2", 0,0,0, velx,vely,velz, 0,40)
//		TNT1 A 0 A_SpawnItemEx ("permshield", 0,0,0, velx,vely,velz, 0,40)
actor tempshield
{
	-solid
	+shootable
	mass 10000
	+nodamage
	radius 16
	height 50
	states
	{
	spawn:
		TNT1 A 26
		stop
	}
}
actor tempshield2 : tempshield
{
	radius 18
	height 26
	states
	{
	spawn:
		TNT1 A 56
		stop
	}
}
actor permshield : tempshield
{
	-solid
	radius 18
	height 16
	states
	{
	spawn:
		TNT1 A -1
		stop
	}
}
actor tempshieldyellow : tempshield
{
	bloodcolor "aa 99 22"
}
actor tempshieldgreen : tempshield
{
	bloodcolor "44 99 22"
}
actor tempshield2green : tempshield2
{
	bloodcolor "44 99 22"
}
actor tempshieldblue : tempshield
{
	bloodcolor "00 00 99"
}
actor tempshield2blue : tempshield2
{
	bloodcolor "00 00 99"
}
actor tempshieldpuff : tempshield
{
	+noblood
}
actor tempshield2puff : tempshield2
{
	+noblood
}


actor bleedout
{
	+ismonster
	+nointeraction
	height 0
	radius 0
	states
	{
	spawn:
		TNT1 A 0
		TNT1 A 0 A_Explode (random(1,6),1)
		stop
	}
}



// ------------------------------------------------------------
//   Pistol Only "Cheat"
// ------------------------------------------------------------

actor HDRealDoomGuy : ActionItem
{
	states
	{
	Use:
		TNT1 A 0 A_TakeInventory("ZM66GrenadeRifle",999)
		TNT1 A 0 A_TakeInventory("ZM66Rifle",999)
		TNT1 A 0 A_TakeInventory("OddBullet",999)
		TNT1 A 0 A_TakeInventory("FirstBullet",999)
		TNT1 A 0 A_TakeInventory("ZM66RifleMags",999)
		TNT1 A 0 A_TakeInventory("ZM66RifleRounds",999)
		TNT1 A 0 A_TakeInventory("ZM66RocketUnderslung",999)
		TNT1 A 0 A_TakeInventory("Hunter",999)
		TNT1 A 0 A_TakeInventory("ShotgunTube",999)
		TNT1 A 0 A_TakeInventory("HunterSpentShell",999)
		TNT1 A 0 A_TakeInventory("ShotgunQuickAmmo",999)
		TNT1 A 0 A_TakeInventory("SlayerSpentShell",999)
		TNT1 A 0 A_TakeInventory("Slayer",999)
		TNT1 A 0 A_TakeInventory("ShotgunQuickAmmo2",999)
		TNT1 A 0 A_TakeInventory("ShellChamber",999)
		TNT1 A 0 A_TakeInventory("Vulcanette",999)
		TNT1 A 0 A_TakeInventory("ChaingunOn",999)
		TNT1 A 0 A_TakeInventory("ChaingunOddBullet",999)
		TNT1 A 0 A_TakeInventory("ChaingunBox",999)
		TNT1 A 0 A_TakeInventory("RocquetteLauncher",999)
		TNT1 A 0 A_TakeInventory("RocketMag",999)
		TNT1 A 0 A_TakeInventory("FragOut",999)
		TNT1 A 0 A_TakeInventory("SpoonOff",999)
		TNT1 A 0 A_TakeInventory("ReallyPull",999)
		TNT1 A 0 A_TakeInventory("FragTimer",999)
		TNT1 A 0 A_TakeInventory("GrenadeForce",999)
		TNT1 A 0 A_TakeInventory("PlazmaGun",999)
		TNT1 A 0 A_TakeInventory("PlasmaBattery",999)
		TNT1 A 0 A_TakeInventory("BFG9K",999)
		TNT1 A 0 A_TakeInventory("BFGCycled",999)
		TNT1 A 0 A_TakeInventory("BFGChamber",999)
		TNT1 A 0 A_TakeInventory("HDCellPacks",999)
		TNT1 A 0 A_TakeInventory("Lumberjack",999)
		TNT1 A 0 A_TakeInventory("Clip",999)
		TNT1 A 0 A_TakeInventory("Shell",999)
		TNT1 A 0 A_TakeInventory("RocketAmmo",999)
		TNT1 A 0 A_TakeInventory("Cell",999)
		TNT1 A 0 A_TakeInventory("HDPistolMag",999)
		TNT1 A 0 A_TakeInventory("HDPistolAmmo",999)
		TNT1 A 0 A_TakeInventory("HDPistolMags",999)
		TNT1 A 0 A_TakeInventory("HDFragGrenadeAmmo",999)
		TNT1 A 0 A_TakeInventory("PortableBerserkPack",999)
		TNT1 A 0 A_TakeInventory("PortableMedikit",999)
		TNT1 A 0 A_TakeInventory("PortableStimpack",999)
		TNT1 A 0 A_TakeInventory("PortableLiteAmp",999)
		TNT1 A 0 A_TakeInventory("BersAmmo",999)
		TNT1 A 0 A_TakeInventory("MediAmmo",999)
		TNT1 A 0 A_TakeInventory("StimAmmo",999)
		TNT1 A 0 A_TakeInventory("LiteAmmo",999)
		TNT1 A 0 A_TakeInventory("GimmeBackup",999)
		TNT1 A 0 A_TakeInventory("GreenArmourFlag",999)
		TNT1 A 0 A_TakeInventory("BlackArmourFlag",999)
		TNT1 A 0 A_TakeInventory("BlueArmourFlag",999)
		TNT1 A 0 A_TakeInventory("BasicArmor",999)
		TNT1 A 0 A_TakeInventory("Backpack",999)
		TNT1 A 0 A_GiveInventory("HDPistolAmmo",1)
		TNT1 A 0 A_GiveInventory("HDPistolMags",3)
		TNT1 A 0 A_GiveInventory("HDPistolMag",13)
		fail
	}
}