Actor AgilityRune : LegendaryRune2
{
  Inventory.PickupMessage "Agility Rune: Speed and Rage"
  States
  {
  Spawn:
	TNT1 A 0 NoDelay A_JumpIf(ACS_NamedExecuteWithResult("TrueHardMode") == 1, "Remove")
	TNT1 A 0 A_PlaySound("Pickups/Legruneidle",7,1.0,1)
    TNT1 A 0 A_SpawnItemEx("AgilityRuneLineSpawner")
	ARUN AA 10 Bright A_SpawnItemEx("AgilityRuneFlameSpawner",0,0,-20)
    Loop
  Pickup:
	TNT1 A 0 A_JumpIfInventory("RuneArmorResetCooldown",1,"Nope")
	TNT1 A 0 A_JumpIfInventory("TrueLegendaryRuneItem2",1,"Nope")
	TNT1 A 0 A_JumpIfInventory("TrueLegendaryRuneItem",1,"Enhance")
    TNT1 A 0 A_JumpIfInventory("AgilityRuneToken",1,"Nope")
	TNT1 A 0 A_PlaySound("LegendaryRune/Pickup",6)
    TNT1 A 0 A_GiveInventory("AgilityRuneSpeed",1)
	TNT1 A 0 A_GiveInventory("AgilityRuneRage",1)
	TNT1 A 0 A_GiveInventory("AgilityRuneToken",1)
	TNT1 A 1 A_StopSound(7)
	Stop
Enhance:
	TNT1 A 0 A_JumpIfInventory("AgilityRuneUpgradeToken",1,"Nope")
	TNT1 A 0 A_JumpIfInventory("LegendaryRuneUpgradeToken",1,"Enhance2")
	TNT1 A 0 A_JumpIfInventory("VitalityRuneUpgradeToken",1,"Enhance3")
	TNT1 A 0 A_GiveInventory("AgilityRuneUpgradeToken",1)
	TNT1 A 0 A_PlaySound("LegendaryRune/Pickup",6)
	TNT1 A 0 A_Print("\c[z3]Acquire the last two runes to further upgrade the True Legendary Rune!")
	TNT1 A 1 A_StopSound(7)
	Stop
Enhance2:
	TNT1 A 0 A_JumpIfInventory("VitalityRuneUpgradeToken",1,"Done")
	TNT1 A 0 A_GiveInventory("AgilityRuneUpgradeToken",1)
	TNT1 A 0 A_PlaySound("LegendaryRune/Pickup",6)
	TNT1 A 0 A_Print("\c[z3]Acquire the last rune to further upgrade the True Legendary Rune!")
	TNT1 A 1 A_StopSound(7)
	Stop
Enhance3:
	TNT1 A 0 A_JumpIfInventory("LegendaryRuneUpgradeToken",1,"Done")
	TNT1 A 0 A_GiveInventory("AgilityRuneUpgradeToken",1)
	TNT1 A 0 A_PlaySound("LegendaryRune/Pickup",6)
	TNT1 A 0 A_Print("\c[z3]Acquire the last rune to further upgrade the True Legendary Rune!")
	TNT1 A 1 A_StopSound(7)
	Stop
Done:
	TNT1 A 0 A_PlaySound("LegendaryRune/Pickup",6)
	TNT1 A 0 A_GiveInventory("AgilityRuneUpgradeToken",1)
	TNT1 A 0 A_GiveInventory("TrueLegendaryRuneUpgradeToken",1)
	TNT1 A 0 A_Print("\c[z3]Acquire another True Legendary Rune!")
	TNT1 A 1 A_StopSound(7)
	Stop
	}
}

Actor AgilityRuneRage : PowerDoubleFiringSpeed
{
  +INVENTORY.HUBPOWER
  +INVENTORY.PERSISTENTPOWER
  +NOTIMEFREEZE
  Powerup.Duration 0x7FFFFFFF
}

Actor AgilityRuneSpeed : PowerSpeed 
{
  +INVENTORY.HUBPOWER
  +INVENTORY.PERSISTENTPOWER
  +NOTIMEFREEZE
  Powerup.Duration 0x7FFFFFFF
  Speed 1.3
}

Actor AgilityRuneToken : LegendaryRuneItem { }
Actor AgilityRuneUpgradeToken : GenericLegRuneToken { }

ACTOR AGPlayerSmokeSpawner : LegendaryRedParticleSpawner 
{
	SCALE 0.01
	States 
	{
	Spawn:
		TNT1 A 0
        TNT1 A 0 A_JumpIf(CallAcs("LCAEffectCheck"),"Toaster")
		LMKE A 0 A_JumpIfInventory("AgilityRuneToken",1,"Smoking",AAPTR_TARGET)
		Stop
	Smoking:
		FRR1 A 0
		FRR1 AA 0 Bright A_SpawnItemEx("AgilityPlayerSmoke",random(12,-12),random(12,-12),random(-16,16),0,0,random(1,3),0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		FRR1 A 1
		Stop
	Toaster:
        TNT1 A 0
	    Stop
	}
}

ACTOR AgilityPlayerSmoke : VitalityPlayerSmoke 
{
  RenderStyle Add
  States 
  {
  Spawn:
	FRR1 ABCDEFGHIJKL 2 Bright A_FadeOut
	Stop
	}	
}
ACTOR AgilityPlayerSmokeNoLight : AgilityPlayerSmoke { }


ACTOR AgilityRuneFlameSpawner : LegendarySphereFlameSpawner
{
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(CallAcs("LCAEffectCheck"),"Toaster")
    TNT1 AAAAAA 0 A_SpawnItemEx("AgilityPlayerSmokeNoLight",random(20,-20),random(20,-20),random(20,40),0,0,random(2,6),0,128,0)
    TNT1 A 0
    Stop
  Toaster:
    TNT1 A 0
	Stop
	}
}

Actor RedPowerLineRune : RedPowerLine { +NOTIMEFREEZE Scale 0.8 }

Actor AgilityRuneLineSpawner : BluePowerLineSpawner
{
  +NOTIMEFREEZE
  States
  {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_JumpIf(CallAcs("LCAEffectCheck"),"Toaster")
	TNT1 AAAAAA 1 A_SpawnItemEx("RedPowerLineRune",random(-15,15),random(-15,15),random(28,44),0,0,random(1,4)) 
    Stop  
    }
}