Actor VoidRune : CustomInventory
{
+FloatBob
+Inventory.InvBar
+Inventory.PickupFlash
+Inventory.FancyPickupSound
+INVENTORY.HUBPOWER
+INVENTORY.PERSISTENTPOWER
+Inventory.AUTOACTIVATE
Inventory.Amount 1
Inventory.MaxAmount 0
Inventory.Icon "BLRNE0"
ActiveSound "VoidRune/Idle"
Inventory.PickupMessage "Void Rune"
States
	{
	Spawn:
		TNT1 A 0 A_LoopActiveSound
		BLRN ABCD 3 Bright A_SpawnItemEx("VoidFlameSpawner")
		Loop
	Pickup:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("VoidRuneItem",1,"Nope")
		TNT1 A 0 A_PlaySound("Pyro/blast",7)
		TNT1 A 1 A_GiveInventory("PowerVoid")
		TNT1 A 0 A_GiveInventory("VoidRuneItem")
		Stop
	Nope:
	BLRN A 1
	Fail
	}
}

Actor VoidFlameSpawner : RedParticleSpawner
{
+NOTIMEFREEZE
+NOINTERACTION
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 1 Bright A_SpawnItemEx("VoidFlame",random(5,-5),random(5,-5),random(10,20),0,0,random(2,4),0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		Stop
	}
}
ACTOR VoidFlame 
{
RenderStyle Add
Scale 0.5
+NOTIMEFREEZE
+NOINTERACTION
+FORCEXYBILLBOARD
States
	{
	Spawn:
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304, 1) == 1, "Toaster")
		TNT1 A 1 Bright 
		TNT1 A 0 Bright A_Jump(256,1,2,3,4)
		TNT1 AAA 1 Bright
		TNT1 A 0 Bright
		PMKE ABCDEFGHIJKL 2 Bright A_FadeOut(0.1,1)
		Wait
	Toaster:
		TNT1 A 0
		Stop
	}
}


ACTOR PowerVoid : PowerFrightener 
{
  Powerup.Duration 0X7FFFFFFF
}

ACTOR VoidRuneItem : Weapon
{
Weapon.SelectionOrder 99999
+NOTIMEFREEZE
+WEAPON.NOALERT
+INVENTORY.UNDROPPABLE
+WEAPON.CHEATNOTWEAPON
+WEAPON.NO_AUTO_SWITCH
States
	{
	Spawn:
		TNT1 A -1
		Stop
	Ready:
		TNT1 A 1
		Loop
	Select:
		TNT1 A 1 A_Raise
		Loop
	Deselect:
		TNT1 A 1 A_Lower
		Loop
	Fire:
		TNT1 A 1
		Goto Ready
	}
}
Actor EnragedLegendaryRune : CustomInventory 
{
  +FLOATBOB
  +COUNTITEM
  +NOTIMEFREEZE
  ActiveSound "EnragedRune/Idle"
  Inventory.PickupMessage "\ck Enraged Legendary Rune! \c- Legendary Weapons get stronger!"
  Inventory.Amount 1
  Inventory.MaxAmount 1
  States
 {
  Spawn:
    TNT1 A 0 A_LoopActiveSound
	TNT1 A 0 A_CustomMissile ("EnragedHellionSmokeSpawner", 0, 0, random(0,-360), 2, random(0,360))
	EGRN A 1 Bright
 	EGRN AAAAAA 2 Bright A_CustomMissile ("ELegendaryDRuneFlameSpawner", -20, 0, random(0,-360), 2, random(0,360)) 
    Loop
  Pickup:
    TNT1 A 0
	TNT1 A 0 A_JumpIfInventory("EnragedLegendaryRuneItem",1,"Nope") 
	TNT1 A 0 A_PlaySound("EnragedRune/PickUp")
	TNT1 A 0 A_GiveInventory("EnragedPower",1)
	TNT1 A 0 A_GiveInventory("LegDoubleFiringSpeed")
	TNT1 A 0 A_GiveInventory("LegIronFeet",1)
    TNT1 A 0 A_GiveInventory("EnragedProtection",1)
	TNT1 A 0 A_GiveInventory("EnragedSpeed",1)
	TNT1 A 0 A_GiveInventory("EnragedLife",1)
	TNT1 A 0 A_GiveInventory("EnragedLegendaryRuneItem",1)
	TNT1 A 1 A_StopSound
	Stop
  Nope:
	EGRN A 1
	Fail
  }
}

Actor PowerEnragedLife : PowerTargeter
{
Powerup.Duration -20
States
{
Targeter:
	TNT1 A 0
	TNT1 A 0 A_GiveInventory("ELegArmorRegenBonus", 1) 
	TNT1 A 0 HealThing(2,400)
	TNT1 A 30
    Loop
}
}
ACTOR EnragedLife : PowerEnragedLife
{
+INVENTORY.HUBPOWER
+INVENTORY.PERSISTENTPOWER
+NOTIMEFREEZE
Powerup.Duration 0x7FFFFFFF
}

ACTOR ELegArmorRegenBonus : BasicArmorBonus 
{
+INVENTORY.AUTOACTIVATE
+INVENTORY.ALWAYSPICKUP
Armor.SaveAmount 2
Armor.MaxSaveAmount 200
Armor.SavePercent 100
DamageFactor "PDTBFG", 0.1
DamageFactor "PDTBFGTracer", 0.1
DamageFactor "Cyber10K", 0.01
DamageFactor "Legendary", 0.1
DamageFactor "Legendary1", 0.1
DamageFactor "LegendaryGuru", 0.1
DamageFactor "BFGSplash", 0.35
DamageFactor "BFGSpray", 0.35
DamageFactor "Explosion", 0.5
DamageFactor "Plasma", 0.5
Inventory.Icon "ELGAA0"
}


Actor EnragedPower : PowerDamage //let's make this rune unique, it gives extra dmg to legendary weapons
{
	+INVENTORY.HUBPOWER
	+INVENTORY.PERSISTENTPOWER
    +NOTIMEFREEZE
    Powerup.Duration 0x7FFFFFFF
    DamageFactor "Legendary", 2.5
	DamageFactor "legendary1", 2.5
	DamageFactor "LegendaryGuruPlayer", 2.5
	DamageFactor "PlayerNemesisPlasma", 2.25
}


Actor EnragedProtection : PowerProtection //as well as extra protection to legendary enemies
{
	+INVENTORY.HUBPOWER
	+INVENTORY.PERSISTENTPOWER
    +NOTIMEFREEZE
	+NORADIUSDMG
    Powerup.Duration 0x7FFFFFFF
    DamageFactor "legendary", 0.35
	DamageFactor "legendary1", 0.35
	DamageFactor "Cyber10K", 0.65
	DamageFactor "PlayerNemesisPlasma", 0.45
    ActiveSound "Pickups/LegProtectionActive"
}

ACTOR EnragedSpeed : PowerSpeed
{
	 +INVENTORY.AUTOACTIVATE
	 +INVENTORY.ALWAYSPICKUP
	 +POWERSPEED.NOTRAIL
	 Speed 1.75
	 Inventory.MaxAmount 1
	 Powerup.Duration 0x7FFFFFFF
}



ACTOR EnragedLegendaryRuneItem : Weapon {
	Weapon.SelectionOrder 99999
	+WEAPON.NOALERT
	+INVENTORY.UNDROPPABLE
	+WEAPON.CHEATNOTWEAPON
	+WEAPON.NO_AUTO_SWITCH
    +NOTIMEFREEZE
	States {
	Spawn:
	TNT1 A 0
	Ready:
	TNT1 A 0
	Deselect:
	TNT1 A 0
	Select:
	TNT1 A 0
	Fire:
	TNT1 A 0
	Stop
	}
}
//=================================================================================================
//
// Strength rune
//
//=================================================================================================
ACTOR AttaccRune : PowerDamage 
{
	+INVENTORY.HUBPOWER
	+INVENTORY.PERSISTENTPOWER
    Powerup.Duration 0x7FFFFFFF
    DamageFactor "normal", 2.5
}
ACTOR InventoryStrengthRune : CustomInventory 5119
{
	+FLOORCLIP
	+FLOATBOB
	+COUNTITEM
    +INVENTORY.INVBAR
	+INVENTORY.PICKUPFLASH
	+INVENTORY.FANCYPICKUPSOUND
	Inventory.Icon "ATACRUNE"
	Inventory.Amount 1
	Inventory.MaxAmount 1
	Inventory.PickupMessage "STRENGTH RUNE!"
	Inventory.PickupAnnouncerEntry "strength"
	Tag "Strength Rune"
	States
	{
	Spawn:
		IDDR ABCDE 6 A_CustomMissile ("LegendaryRedParticleSpawner", 0, 0, random(0,-360), 2, random(0,360))
		Loop
	Pickup:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("AttaccRuneItem",1,"Nope") 
		TNT1 A 0 A_GiveInventory("AttaccRune",1)
		TNT1 A 0 A_GiveInventory("AttaccRuneItem",1)
		Stop
	Nope:
		IDDR A 1
		Fail
	}
}
ACTOR AttaccRuneItem : Weapon {
	Weapon.SelectionOrder 99999
	+WEAPON.NOALERT
	+INVENTORY.UNDROPPABLE
	+WEAPON.CHEATNOTWEAPON
	+WEAPON.NO_AUTO_SWITCH
    +NOTIMEFREEZE
	States {
	Spawn:
	TNT1 A 0
	Ready:
	TNT1 A 0
	Deselect:
	TNT1 A 0
	Select:
	TNT1 A 0
	Fire:
	TNT1 A 0
	Stop
	}
}

//=================================================================================================
//
// Drain rune
//
//=================================================================================================
ACTOR SuccRune : PowerDrain 
{
	+INVENTORY.HUBPOWER
	+INVENTORY.PERSISTENTPOWER
    +NOTIMEFREEZE
    Powerup.Duration 0x7FFFFFFF
	Powerup.Strength 1.0
}

ACTOR InventoryDrainRune : CustomInventory 5117
{
	+FLOORCLIP
	+FLOATBOB
	+COUNTITEM
    +INVENTORY.INVBAR
	+INVENTORY.PICKUPFLASH
	+INVENTORY.FANCYPICKUPSOUND
	Inventory.Icon "SUCCRUNE"
	Inventory.Amount 1
	Inventory.MaxAmount 1
	Inventory.PickupMessage "DRAIN RUNE!"
	Inventory.PickupAnnouncerEntry "drain"
	Tag "Drain Rune"
	States
	{
	Spawn:
		ISCR ABCD 6 A_CustomMissile ("LegendaryRedPowerLineSpawner", 0, 0, random(0,-360), 2, random(0,360))
		Loop
	Pickup:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("SuccRuneItem",1,"Nope")
		TNT1 A 0 A_GiveInventory("SuccRune",1)
		TNT1 A 0 A_GiveInventory("SuccRuneItem",1)
		Stop
	Nope:
		ISCR A 1
		Fail

	}
}
ACTOR SuccRuneItem : Weapon {
	Weapon.SelectionOrder 99999
	+WEAPON.NOALERT
	+INVENTORY.UNDROPPABLE
	+WEAPON.CHEATNOTWEAPON
	+WEAPON.NO_AUTO_SWITCH
    +NOTIMEFREEZE
	States {
	Spawn:
	TNT1 A 0
	Ready:
	TNT1 A 0
	Deselect:
	TNT1 A 0
	Select:
	TNT1 A 0
	Fire:
	TNT1 A 0
	Stop
	}
}

//=================================================================================================
//
// Resistance rune
//
//=================================================================================================

ACTOR ProteccRune : PowerProtection 
{
	+INVENTORY.HUBPOWER
	+INVENTORY.PERSISTENTPOWER
    +NOTIMEFREEZE
    Powerup.Duration 0x7FFFFFFF
	+NORADIUSDMG
	+DONTRIP
	+DONTSQUASH
	DamageFactor "normal", 0.45
}

ACTOR InventoryResistanceRune : CustomInventory 5115
{
	+FLOORCLIP
	+FLOATBOB
	+COUNTITEM
    +INVENTORY.INVBAR
	+INVENTORY.PICKUPFLASH
	+INVENTORY.FANCYPICKUPSOUND
	Inventory.Icon "PROTECRN"
	Inventory.Amount 1
	Inventory.MaxAmount 1
	Inventory.PickupMessage "RESISTANCE RUNE!"
	Inventory.PickupAnnouncerEntry "resistance"
	Tag "Resistance Rune"
	States
	{
	Spawn:
		IRSR ABCDEFGH 6 A_CustomMissile ("LegendaryGreenParticleSpawner", 0, 0, random(0,-360), 2, random(0,360))
		Loop
	Pickup:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("ProteccRuneItem",1,"Nope")
		TNT1 A 0 A_GiveInventory("ProteccRune",1)
		TNT1 A 0 A_GiveInventory("ProteccRuneItem",1)
	Stop
	Nope:
		IRSR A 1
		Fail
	}
}
ACTOR ProteccRuneItem : Weapon {
	Weapon.SelectionOrder 99999
	+WEAPON.NOALERT
	+INVENTORY.UNDROPPABLE
	+WEAPON.CHEATNOTWEAPON
	+WEAPON.NO_AUTO_SWITCH
    +NOTIMEFREEZE
	States {
	Spawn:
	TNT1 A 0
	Ready:
	TNT1 A 0
	Deselect:
	TNT1 A 0
	Select:
	TNT1 A 0
	Fire:
	TNT1 A 0
	Stop
	}
}

//=================================================================================================
//
// High jump rune
//
//=================================================================================================
ACTOR StrongLegsRune : PowerHighJump 5111
{
	+INVENTORY.HUBPOWER
	+INVENTORY.PERSISTENTPOWER
    +NOTIMEFREEZE
    Powerup.Duration 0x7FFFFFFF
	Powerup.Strength 2.25
}

ACTOR InventoryHighJumpRune : CustomInventory 5111
{
	+FLOORCLIP
	+FLOATBOB
	+COUNTITEM
    +INVENTORY.INVBAR
	+INVENTORY.PICKUPFLASH
	+INVENTORY.FANCYPICKUPSOUND
	Inventory.Icon "JUMPRUNE"
	Inventory.Amount 1
	Inventory.MaxAmount 1
	Inventory.PickupMessage "HIGH JUMP RUNE!"
	Inventory.PickupAnnouncerEntry "highjump"
	Tag "High Jump Rune"
	States
	{
	Spawn:
		IHJR ABCD 6 A_CustomMissile ("LegendaryGreenPowerLineSpawner", 0, 0, random(0,-360), 2, random(0,360))
		Loop
	Pickup:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("StrongLegsRuneItem",1,"Nope")
		TNT1 A 0 A_GiveInventory("StrongLegsRune",1)
		TNT1 A 0 A_GiveInventory("StrongLegsRuneItem",1)
	Stop
	Nope:
		IHJR A 1
		Fail
	}
}
ACTOR StrongLegsRuneItem : Weapon {
	Weapon.SelectionOrder 99999
	+WEAPON.NOALERT
	+INVENTORY.UNDROPPABLE
	+WEAPON.CHEATNOTWEAPON
	+WEAPON.NO_AUTO_SWITCH
    +NOTIMEFREEZE
	States {
	Spawn:
	TNT1 A 0
	Ready:
	TNT1 A 0
	Deselect:
	TNT1 A 0
	Select:
	TNT1 A 0
	Fire:
	TNT1 A 0
	Stop
	}
}

