ACTOR RageCooldownTimer: Powerup
{
	Powerup.Duration -22
}

ACTOR RageCooldown : PowerupGiver
{
	Powerup.Type "RageCooldownTimer"
	+AUTOACTIVATE
}

ACTOR RagePoints : Ammo
{
    Inventory.Amount 0
    Inventory.MaxAmount 100
	Ammo.BackpackAmount 0
    Ammo.BackpackMaxAmount 100
	+INVENTORY.UNDROPPABLE
	+INVENTORY.IGNORESKILL
}

ACTOR RageSpeed : PowerSpeed
{
	Powerup.Duration -22
	Powerup.Strength 2
    Powerup.ColorMap 0.4, 0.0, 0.0, 1.0, 1.0, 1.0
}

ACTOR RageJump : PowerHighJump
{
    Powerup.Strength 1
	Powerup.Duration -22
}

ACTOR RageGod : PowerInvulnerable
{
	Powerup.Duration -22
}

ACTOR RageShield : PowerupGiver
{
	Powerup.Duration -22
	Damagefactor "normal", 0.5
}

actor PowerDoubleDamage : PowerDamage
{
damagefactor "normal", 2
}

ACTOR RageUser : CustomInventory
{
	inventory.maxamount 1
	Inventory.InterHubamount 1
	states
	{
	Spawn:
		TNT1 A -1
		stop
	Use:
        TNT1 A 0 A_JumpIfInventory("ActiveRockit", 1, "CoolDown")
        TNT1 A 0 A_JumpIfInventory("HQIntro", 1, "CoolDown")
        TNT1 A 0 A_JumpIfInventory("HQGrabbedBarrel", 1, "CoolDown")
		TNT1 A 0 A_JumpIfInventory("RageCooldownTimer", 1, "CoolDown")
		TNT1 A 0 A_JumpIfInventory("RagePoints", 100, "Rage")
		Goto NoRage
	Rage:
	    TNT1 A 0 A_playsound("MAYSTART",CHAN_VOICE)
		TNT1 A 0 A_playsound("RageAct",CHAN_UI)
		TNT1 A 0 ACS_NamedExecute("RageTrigger", 0)
		TNT1 A 0 A_GiveInventory("RageCooldown", 1)
	    TNT1 A 0 A_GiveInventory("RageSpeed", 1)
	    TNT1 A 0 A_GiveInventory("RageJump", 1)
	    TNT1 A 0 A_GiveInventory("RageShield", 1)
	    DDMG E 0 A_GiveInventory("RageMode")
	    DDMG E 0 A_SelectWeapon("RageMode")
		TNT1 A 0 A_JumpIfInventory("SpeedItem",1,"Rage2")
		TNT1 A 0 A_TakeInventory("RagePoints", 100)
		TNT1 A 0 ACS_NamedExecute("RageFX", 0)
		Fail
	Rage2:
	    TNT1 A 0 A_GiveInventory("RageGod", 1)
		TNT1 A 0 A_TakeInventory("RagePoints", 100)
		TNT1 A 0 ACS_NamedExecute("RageFX", 0)
		Fail
	Cooldown:
		TNT1 A 0 ACS_NamedExecute("RageRelax", 0)
		Fail
	NoRage:
		TNT1 A 0 ACS_NamedExecute("RageNotEnough", 0)
		Fail
	}
}