Actor PlayerHealthCap : Inventory {
	inventory.maxamount 0x7FFFFFFF
}

Actor Stimpack_MP : DnD_SharedItem replaces Stimpack { 
	States {
		// acs_Executealways is 226
		Spawn:
			// the delay is needed for the tid to initialize
			STIM A 1 NoDelay ACS_NamedExecuteAlways("DND Shared Item Init", 0, SHI_STIMPACK)
			TNT1 A 0 ACS_NamedExecuteAlways("DnD Chest Dropping Item", 0, 40)
			STIM A 34 ACS_NamedExecuteAlways("DnD Init Shared Translation", 0)
			TNT1 A 0 Thing_SetSpecial(0, 226, DND_SHARED_ITEM_SCRIPT, 0, tid)
		Idle:
		IdlePicked:
			STIM A -1
		Stop
	}
}

Actor Stimpack_SP : CustomInventory {
	inventory.pickupmessage "\ccHealth pickup : \c[Y5]Stimpack x 10\c-"
	inventory.pickupsound "Items/Stimpack"
	Height 16
	Radius 20
	States {
		Spawn:
			TNT1 A 0 NoDelay ACS_NamedExecuteAlways("DnD Chest Dropping Item", 0, 40)
			STIM A -1
		Stop
		Pickup:
			TNT1 A 0 A_JumpIfInventory("TaltosUp", 1, "Failed")
			TNT1 A 0 A_JumpIf(1 == ACS_NamedExecuteWithResult("DnD Can Pick Health Item", 0), "Success")
		Failed:
			TNT1 A 0
		Fail
		Success:
			TNT1 A 0 ACS_NamedExecuteAlways("DnD Health Pickup", 0, 10)
		Stop
	}
}

Actor StimpackMsg : CustomInventory {
	States {
		Pickup:
			TNT1 A 0 ACS_NamedExecuteAlways("DnD Message Logger", 0, 3, SHI_STIMPACK)
			TNT1 A 0 A_PlaySound("Items/Stimpack", 6)
			TNT1 A 0 A_SetBlend("25 99 25", 0.6, 17)
		Stop
	}
}

Actor Medikit_MP : DnD_SharedItem replaces Medikit { 
	States {
		// acs_Executealways is 226
		Spawn:
			// the delay is needed for the tid to initialize
			MEDI A 1 NoDelay ACS_NamedExecuteAlways("DND Shared Item Init", 0, SHI_MEDKIT)
			TNT1 A 0 ACS_NamedExecuteAlways("DnD Chest Dropping Item", 0, 20)
			MEDI A 34 ACS_NamedExecuteAlways("DnD Init Shared Translation", 0)
			TNT1 A 0 Thing_SetSpecial(0, 226, DND_SHARED_ITEM_SCRIPT, 0, tid)
		Idle:
		IdlePicked:
			MEDI A -1
		Stop
	}
}

Actor Medikit_SP : CustomInventory {
	inventory.pickupmessage "\ccHealth pickup : \c[Y5]Medikit x 25\c-"
	inventory.pickupsound "Items/medikit"
	Height 16
	Radius 20
	States {
		Spawn:
			TNT1 A 0 NoDelay ACS_NamedExecuteAlways("DnD Chest Dropping Item", 0, 20)
			MEDI A -1
		Stop
		Pickup:
			TNT1 A 0 A_JumpIfInventory("TaltosUp", 1, "Failed")
			TNT1 A 0 A_JumpIf(1 == ACS_NamedExecuteWithResult("DnD Can Pick Health Item", 0), "Success")
		Goto Failed
		Failed:
			TNT1 A 0
		Fail
		Success:
			TNT1 A 0 ACS_NamedExecuteAlways("DnD Health Pickup", 0, 25)
		Stop
	}
}

Actor MedikitMsg : CustomInventory {
	States {
		Pickup:
			TNT1 A 0 ACS_NamedExecuteAlways("DnD Message Logger", 0, 3, SHI_MEDKIT)
			TNT1 A 0 A_PlaySound("Items/Medikit", 6)
			TNT1 A 0 A_SetBlend("25 99 25", 0.6, 17)
		Stop
	}
}

Actor NewHealthBonus : CustomInventory replaces HealthBonus {
	inventory.pickupsound "items/pickup"
	inventory.pickupmessage "\ccHealth pickup : \c[Y5]Health Bonus x 1\c-"
    +COUNTITEM
    States
    {
		Spawn:
			BON1 ABCDCB 6
		Loop
		Pickup:
			TNT1 A 0 A_JumpIfInventory("TaltosUp", 1, "Failed")
		    TNT1 A 0 ACS_NamedExecuteAlways("DnD Health Pickup", 0, 1, 5)
			TNT1 A 0 A_GiveInventory("DnD_UseNoHealth", 1)
		Stop
		Failed:
			TNT1 A 0
		Stop
  }
}

Actor MaxHealthBonusNew : Health
{
	inventory.amount 1
	inventory.maxamount 65000 // 32767
}

Actor HealthBonusX : HealthBonus
{
	inventory.amount 1
	inventory.maxamount 65000 // 32767
	+IGNORESKILL
}

Actor MaxHealthBonusCounter : Ammo
{
	inventory.amount 1
	inventory.maxamount 2000
	ammo.backpackamount 0
	+IGNORESKILL
}

Actor MaxHealthBonusPickup : CustomInventory
{
  Radius 12
  Height 16
  Inventory.Amount 1
  Inventory.MaxAmount 2000
  +COUNTITEM
  inventory.pickupmessage "\ccHealth Bonus : \c[Y5]Health Capacity x 1\c-"
  inventory.pickupsound "items/pickup"
  Translation "0:8=47:47", "198:206=173:188", "207:207=44:44", "240:243=44:47", "244:247=47:47"
  States
  {
  Spawn:
    BON1 ABCDCB 6
    Loop
	Pickup:
		TNT1 A 0 A_GiveInventory("MaxHealthBonusNew", 1)
		TNT1 A 0 A_giveInventorY("MaxHealthBonusCounter", 1)
	Stop
  }
}