Actor ArmorRegenerator : CustomInventory Replaces ArmorRegeneratorPickup
{//Scripted (Item won't be given properly on next map start)
//Creator: Fluffy
//Origin: Nexus Infinity
//Sprite: HARG
//Title: "Armor Regenerator"
+DONTGIB
+BRIGHT
-INVENTORY.INVBAR
+INVENTORY.UNDROPPABLE
+Inventory.PickupFlash
+Inventory.FancyPickupSound
+INVENTORY.HUBPOWER
+INVENTORY.PERSISTENTPOWER
+INVENTORY.BIGPOWERUP
Inventory.Amount 1
Inventory.MaxAmount 1
Inventory.Icon "HARGA0"
ActiveSound ""
Inventory.PickupSound "armorregen/pickup"
Inventory.PickupMessage "\c[x9]Armor\c[w3] Regenerator\c-: fast recharge while consuming energy"
States
	{
	Spawn:
		HARG AAAAA 2 A_SpawnItemEx("ArmorParticleGreen",Random(-8,8),Random(-8,8),Random(-10,10),Random(-2,2),Random(-2,2),Random(1,4),Random(-20,20),0,128)
		HARG HHHHH 2 A_SpawnItemEx("ArmorParticleGreen",Random(-8,8),Random(-8,8),Random(-10,10),Random(-2,2),Random(-2,2),Random(1,4),Random(-20,20),0,128)
		Loop
	Use:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("ArmorRegenActive",1,"Disable")
		TNT1 A 1 A_JumpIfInventory("AmpGogglesCooldown",1,"Nope")
		TNT1 A 0 A_GiveInventory("ArmorRegenActive",1)
		TNT1 A 0 A_GiveInventory("ArmorRegenActivated",1)
		TNT1 A 0 A_GiveInventory("AmpGogglesCooldown",1)
		TNT1 A 0 A_PlaySound("armorregen/activate",7)
		TNT1 A 1 ACS_NamedExecuteAlways("ArmorActiveScript",0,1,200) //first arg is charge speed in tics, 2nd arg is delay time in tics
		Fail
	Disable:
	    TNT1 A 1 A_TakeInventory("ArmorRegenActive",1)
		TNT1 A 0 A_TakeInventory("ArmorRegenActivated",1)
	    TNT1 A 0 A_TakeInventory("ArmorRegenError",1)
	    TNT1 A 0 A_TakeInventory("ArmorRegenCharged",1)
	    TNT1 A 0 A_TakeInventory("ArmorRegenCharging",1)
	    TNT1 A 0 A_TakeInventory("ArmorRegenDamaged",1)
	    TNT1 A 0 A_TakeInventory("ArmorRegenCritical",1)
	    TNT1 A 0 A_GiveInventory("AmpGogglesCooldown",1)
	    TNT1 A 1 A_PlaySound("armorregen/off",7)
		Fail
	Nope:
	    HARG A 1
	    Fail
	}
}

ACTOR ArmorRegenActivated : LegendaryRuneItem { }
ACTOR ArmorRegenOff : LegendaryRuneItem { }
ACTOR ArmorRegenCharging : LegendaryRuneItem { }
ACTOR ArmorRegenCharged : LegendaryRuneItem { }
ACTOR ArmorRegenDamaged : LegendaryRuneItem { }
ACTOR ArmorRegenError : LegendaryRuneItem { }
ACTOR ArmorRegenCritical : LegendaryRuneItem { }

Actor ArmorRegeneratorBonus : ArmorBonus
{
  Armor.SaveAmount 1
  Armor.SavePercent 100.0
  Armor.MaxSaveAmount 6666
  Inventory.Pickupmessage ""
  Inventory.PickupSound ""
  Inventory.Icon "HARGC0"
  -INVENTORY.ALWAYSPICKUP
  -COUNTITEM
  States
  {
  Spawn:
	TNT1 A 0
	Stop
  }
}

Actor ArmorRegenActive : PowerDamage
{
+INVENTORY.HUBPOWER
+INVENTORY.PERSISTENTPOWER
+NOTIMEFREEZE
DamageFactor "nothing", 1.0
Powerup.duration 0x7FFFFFFF
}

Actor ArmorRegenLowGiver : PowerDamage
{
+INVENTORY.HUBPOWER
+INVENTORY.PERSISTENTPOWER
+NOTIMEFREEZE
DamageFactor "nothing", 1.0
Powerup.duration -1
}