/// decorate/powerups.txt by Kaapeli47

/// Powerups ///

ACTOR IDMPowerupTrail : PowerSpeed // The after-image effect for most powerups which don't utilize the Colormap property.
{
	-INVENTORY.INVBAR
	Powerup.Duration -20
	Inventory.Amount 1
	Inventory.MaxAmount 10
	Speed 1.0
}

ACTOR PowerPickupProtection : PowerInvulnerable
{
  Powerup.Duration 35
  Inventory.Icon "PINVA1"
}

ACTOR PickupProtection : PowerupGiver
{
	-INVENTORY.INVBAR
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	Powerup.Color "White", 0.125
	Powerup.Type PickupProtection
	Powerup.Duration 35
}

// Strength / Weapon Upgrade

ACTOR PowerIDMWeaponLevel2 : PowerWeaponLevel2
{
	Inventory.Icon "BERSA1"
}

ACTOR StrengthSphere : CustomInventory
{
	+COUNTITEM
	+FLOAT
	+FLOATBOB
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	Inventory.PickupMessage "Strength!"
	Inventory.PickupSound "misc/impkup"
	Inventory.PickupAnnouncerEntry "strength"
	Inventory.RespawnTics 3150
	States
	{
	Spawn:
		BERS ABCDCB 6 Bright
		Loop
	Pickup:
		TNT1 A 0 A_GiveInventory("PickupProtection")
		TNT1 A 0 A_Print("\n\n\n\n\nStrength!\n\n\n\nYour weapons are powered up!")
		TNT1 A 0 Healthing(100,100)
		TNT1 A 0 A_GiveInventory("StrengthSphereLevel2")
		TNT1 A 0 A_GiveInventory("StrengthPowerupTrail")
		Stop
	}
}

ACTOR StrengthSphereLevel2 : PowerupGiver
{
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	-INVENTORY.INVBAR
	Powerup.Type IDMWeaponLevel2
	Powerup.Color "White", 0.125
	Powerup.Duration -30
}

ACTOR StrengthPowerupTrail : PowerSpeed
{
	-INVENTORY.INVBAR
	Powerup.Duration -30
	Inventory.Amount 1
	Inventory.MaxAmount 10
	Speed 1.0
}

// Soulsphere

ACTOR IDMSoulsphere : CustomInventory
{
  +COUNTITEM
  +FLOAT
  +FLOATBOB
  +INVENTORY.AUTOACTIVATE
  -INVENTORY.INVBAR
  +INVENTORY.ALWAYSPICKUP
  +SUPERHEALTH
  Inventory.RespawnTics 2100
  Inventory.PickupMessage "Soulsphere!"
  Inventory.PickupSound "misc/impkup"
  Inventory.PickupAnnouncerEntry "soulsphere"
  States
  {
  Spawn:
    SOUL ABCDCB 6 Bright
    Loop
  Pickup:
	TNT1 A 0 A_Print("\n\n\n\n\n\nSoulsphere!\n\n\n\n300 Maximum Health!\nHealth pickups are doubled!",4)
	TNT1 A 0 A_GiveInventory("SoulHealth")
	TNT1 A 0 A_GiveInventory("PowerSoul")
	Stop
  }
}

ACTOR SoulHealth : MaxHealth
{
  Inventory.Amount 300
  Inventory.MaxAmount 200
  Health 100
  +INVENTORY.ALWAYSPICKUP
  -INVENTORY.INVBAR
}

ACTOR SoulsphereGiver : Healthpickup
{
	Health 300
	Tag "Soul Restoration"
	Inventory.UseSound "misc/impkup"
	Inventory.MaxAmount 1
	HealthPickup.AutoUse 2
	Inventory.Icon "SOULF0"
	+INVENTORY.ALWAYSPICKUP
}

ACTOR PowerSoul : PowerStrength
{
	-INVENTORY.INVBAR
	Powerup.Color 0, 0, 255, 0.5
}


// Rage

ACTOR RageSphere : CustomInventory
{
  +FLOAT
  +FLOATBOB
  +COUNTITEM
  +INVENTORY.AUTOACTIVATE
  +INVENTORY.ALWAYSPICKUP
  -INVENTORY.INVBAR
  Inventory.PickupSound "misc/impkup"
  Inventory.PickupMessage "RAGE!"
  Inventory.PickupAnnouncerEntry "rage"
  Inventory.RespawnTics 4200
  States
  {
  Spawn:
    BLDS ABCD 6 Bright
    Loop
  Pickup:
	TNT1 A 0 A_TakeInventory("PowerPickupProtection")
	TNT1 A 0 A_GiveInventory("RageSphereInvulnerable")
	TNT1 A 0 A_GiveInventory("RageSphereIcon")
	TNT1 A 0 A_GiveInventory("RageArmor")
	TNT1 A 0 A_GiveInventory("RageSphereReflection")
	TNT1 A 0 A_Print("\n\nRAGE!!")
	TNT1 A 0 A_Jump(8,"Random16")
	TNT1 A 0 A_Jump(64,"Random6","Random7","Random8","Random9","Random10","Random11","Random12","Random13","Random14","Random15")
	TNT1 A 0 A_Jump(256, "Random1", "Random2", "Random3", "Random4", "Random5")
	Stop
	Random1:
	TNT1 A 0 A_GiveInventory("RageSphereDoubleFire")
	TNT1 A 0 A_GiveInventory("RageSphereSpeed")
	TNT1 A 0 A_GiveInventory("RageSphereHighJump")
	Stop
	Random2:
	TNT1 A 0 A_GiveInventory("RageSphereRegeneration")
	Stop
	Random3:
	TNT1 A 0 A_GiveInventory("RageSphereStrength")
	Stop
	Random4:
	TNT1 A 0 A_GiveInventory("RageSphereQuadDamage")
	TNT1 A 0 A_GiveInventory("DoomSphereShortIcon")
	Stop
	Random5:
	TNT1 A 0 A_GiveInventory("RageSphereInfiniteAmmo")
	Stop
	Random6:
	TNT1 A 0 A_GiveInventory("RageSphereDoubleFire")
	TNT1 A 0 A_GiveInventory("RageSphereSpeed")
	TNT1 A 0 A_GiveInventory("RageSphereHighJump")
	TNT1 A 0 A_GiveInventory("RageSphereRegeneration")
	Stop
	Random7:
	TNT1 A 0 A_GiveInventory("RageSphereDoubleFire")
	TNT1 A 0 A_GiveInventory("RageSphereSpeed")
	TNT1 A 0 A_GiveInventory("RageSphereHighJump")
	TNT1 A 0 A_GiveInventory("RageSphereStrength")
	Stop
	Random8:
	TNT1 A 0 A_GiveInventory("RageSphereDoubleFire")
	TNT1 A 0 A_GiveInventory("RageSphereSpeed")
	TNT1 A 0 A_GiveInventory("RageSphereHighJump")
	TNT1 A 0 A_GiveInventory("RageSphereQuadDamage")
	TNT1 A 0 A_GiveInventory("DoomSphereShortIcon")
	Stop
	Random9:
	TNT1 A 0 A_GiveInventory("RageSphereDoubleFire")
	TNT1 A 0 A_GiveInventory("RageSphereSpeed")
	TNT1 A 0 A_GiveInventory("RageSphereHighJump")
	TNT1 A 0 A_GiveInventory("RageSphereInfiniteAmmo")
	Stop
	Random10:
	TNT1 A 0 A_GiveInventory("RageSphereRegeneration")
	TNT1 A 0 A_GiveInventory("RageSphereStrength")
	Stop
	Random11:
	TNT1 A 0 A_GiveInventory("RageSphereRegeneration")
	TNT1 A 0 A_GiveInventory("RageSphereQuadDamage")
	TNT1 A 0 A_GiveInventory("DoomSphereShortIcon")
	Stop
	Random12:
	TNT1 A 0 A_GiveInventory("RageSphereRegeneration")
	TNT1 A 0 A_GiveInventory("RageSphereInfiniteAmmo")
	Stop
	Random13:
	TNT1 A 0 A_GiveInventory("RageSphereStrength")
	TNT1 A 0 A_GiveInventory("RageSphereQuadDamage")
	TNT1 A 0 A_GiveInventory("DoomSphereShortIcon")
	Stop
	Random14:
	TNT1 A 0 A_GiveInventory("RageSphereStrength")
	TNT1 A 0 A_GiveInventory("RageSphereInfiniteAmmo")
	Stop
	Random15:
	TNT1 A 0 A_GiveInventory("RageSphereQuadDamage")
	TNT1 A 0 A_GiveInventory("DoomSphereShortIcon")
	TNT1 A 0 A_GiveInventory("RageSphereInfiniteAmmo")
	Stop
	Random16:
	TNT1 A 0 A_GiveInventory("RageSphereDoubleFire")
	TNT1 A 0 A_GiveInventory("RageSphereSpeed")
	TNT1 A 0 A_GiveInventory("RageSphereHighJump")
	TNT1 A 0 A_GiveInventory("RageSphereRegeneration")
	
  }
}

ACTOR RageSphereIcon : Powerup
{
	Inventory.Icon "BLDSA1"
	Powerup.Duration -10
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	-INVENTORY.INVBAR
}

ACTOR RageSphereReflection : PowerupGiver
{
	Powerup.Type "Reflection"
	Inventory.MaxAmount 0
	Powerup.Duration -10
	Inventory.PickupMessage ""
	Inventory.PickupSound ""
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	-INVENTORY.INVBAR
}

ACTOR RageSphereQuadDamage : PowerupGiver
{
	Powerup.Type "QuadDamage"
	Inventory.MaxAmount 0
	Powerup.Duration -10
	Inventory.PickupMessage ""
	Inventory.PickupSound ""
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	-INVENTORY.INVBAR
}

ACTOR PowerRageInvulnerable : PowerInvulnerable
{
	Inventory.Icon "PINVA1"
}

ACTOR RageSphereInvulnerable : PowerupGiver
{
	Powerup.Type "RageInvulnerable"
	Powerup.Mode "Reflective"
	Powerup.Duration -10
	Powerup.Color GoldMap
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	-INVENTORY.INVBAR
}

ACTOR RageSphereDoubleFire : PowerupGiver
{
	Powerup.Type "PowerDoubleFiringSpeed"
	Powerup.Duration -10
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	-INVENTORY.INVBAR
}

ACTOR RageSphereSpeed : PowerupGiver
{
	Powerup.Type "IDMSpeed"
	Powerup.Duration -10
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	-INVENTORY.INVBAR
}

ACTOR RageSphereHighJump : PowerupGiver
{
	Powerup.Type "PowerHighJump"
	Powerup.Duration -10
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	-INVENTORY.INVBAR
}

ACTOR RageSphereRegeneration : PowerupGiver
{
	Powerup.Type "IDMRegeneration"
	Powerup.Strength 25
	Powerup.Duration -10
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	-INVENTORY.INVBAR
}

ACTOR RageSphereStrength : PowerupGiver
{
	Powerup.Type "IDMWeaponLevel2"
	Powerup.Duration -10
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	-INVENTORY.INVBAR
}

ACTOR RageSphereInfiniteAmmo : PowerupGiver
{
	Powerup.Duration -10
	Powerup.Type "IDMInfiniteAmmo"
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	-INVENTORY.INVBAR
}

// Time Freeze

ACTOR PowerIDMFreezer : PowerTimeFreezer
{
	Inventory.Icon "TIMEA1"
}

ACTOR IDMTimeFreezeGiver : PowerupGiver
{
	Inventory.Maxamount 0
	Powerup.Duration -10
	Inventory.PickupMessage ""
	Inventory.PickupSound ""
	Powerup.ColorMap 1.0,1.0,1.0
	Powerup.Type IDMFreezer
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	-INVENTORY.INVBAR
}

ACTOR TimeFreezeInvulnerable : PowerupGiver
{
	Inventory.MaxAmount 0
	Powerup.Duration -10
	Inventory.PickupMessage ""
	Inventory.PickupSound ""
	Powerup.Type "RageInvulnerable"
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	-INVENTORY.INVBAR
}

ACTOR IDMTimeFreeze : CustomInventory replaces InvulnerabilitySphere
{
    +FLOAT
	+FLOATBOB
	Inventory.Pickupmessage "TIME FREEZE!"
	Inventory.PickupSound "misc/impkup"
	Inventory.PickupAnnouncerEntry "timefreeze"
	Inventory.RespawnTics 10500
	+COUNTITEM
	+INVENTORY.BIGPOWERUP
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	States
	{
	Spawn:
		TIME ABCD 5 Bright
		Loop
	Use:
		TNT1 A 0 A_Print("\n\n\n\n\nTIME FREEZE!\n\n\n\nFreezes time for 10 seconds!")
		TNT1 A 0 A_GiveInventory("IDMTimeFreezeGiver")
		TNT1 A 0 A_GiveInventory("TimeFreezeInvulnerable")
		TNT1 A 0 A_GiveInventory("RageArmor")
		TNT1 A 0 A_PlaySound("misc/timefreeze",CHAN_AUTO|CHAN_NOPAUSE,1,0,ATTN_NONE)
		Stop
	}
}


ACTOR DemoTimeFreezeGiver : IDMTimeFreezeGiver
{
	Powerup.Duration -270
}

ACTOR DemoTimeFreezeInvulnerable : TimeFreezeInvulnerable
{
	Powerup.Duration -270
}

ACTOR DemoTimeFreeze : IDMTimeFreeze
{
	States
	{
	Use:
		TNT1 A 0 A_GiveInventory("DemoTimeFreezeGiver")
		TNT1 A 0 A_GiveInventory("DemoTimeFreezeInvulnerable")
		TNT1 A 0 A_GiveInventory("RageArmor")
		TNT1 A 0 A_PlaySound("misc/demotimefreeze",CHAN_AUTO,1,0,ATTN_NONE)
		Stop
	}
}
	

// DoomSphere

ACTOR IDMDoomSphere : CustomInventory
{
	+FLOAT
	+FLOATBOB
	+COUNTITEM
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	Inventory.PickupSound "misc/qdpkup"
	Inventory.MaxAmount 0
	Inventory.PickupMessage "DOOMSPHERE!"
	Inventory.PickupAnnouncerEntry "doomsphere"
	Inventory.RespawnTics 2100
	States
	{
	Spawn:
		DOOM A 10 Bright
		DOOM B 15 Bright
		DOOM C 8 Bright
		DOOM D 6 Bright
		Loop
	Pickup:
		TNT1 A 0 A_GiveInventory("PickupProtection")
		TNT1 A 0 A_Print("\n\n\n\n\nDOOMSPHERE!\n\n\n\n4x Damage!")
		TNT1 A 0 A_GiveInventory("DoomSphereQuadDamage")
		TNT1 A 0 A_GiveInventory("DoomsphereIcon")
		Stop
	}
}

ACTOR DoomSphereIcon : Powerup
{
	Inventory.Icon "DOOMA1"
	Powerup.Duration -20
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	-INVENTORY.INVBAR
}

ACTOR DoomSphereShortIcon : DoomSphereIcon
{
	Powerup.Duration -10
}

ACTOR DoomSphereQuadDamage : PowerupGiver
{
	Powerup.Type "QuadDamage"
	Inventory.MaxAmount 0
	Powerup.Color RedMap
	Powerup.Duration -20
	Inventory.PickupMessage ""
	Inventory.PickupSound ""
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	-INVENTORY.INVBAR
}


// MegaSphere

ACTOR IDMMegasphere : CustomInventory
{
  +FLOAT
  +FLOATBOB
  +COUNTITEM
  +INVENTORY.ALWAYSPICKUP
  Inventory.PickupMessage "Megasphere!"
  Inventory.PickupSound "misc/impkup"
  Inventory.PickupAnnouncerEntry "megasphere"
  Inventory.RespawnTics 2100
  States
  {
  Spawn:
    MEGA ABCD 6 Bright
    Loop
  Pickup:
	TNT1 A 0 A_Print("\n\n\n\n\nMegasphere!\n\n\n\n300 Health & random Heavy Armor!")
	TNT1 A 0 Healthing(300)
	TNT1 A 0 A_GiveInventory("IDMMegaSphereHealth")
 	TNT1 A 0 A_Jump(256,"BlueArmor", "RedArmor", "PurpleArmor", "SuperArmor")
	Stop
  BlueArmor:
	TNT1 A 0 A_GiveInventory("IDMBlueArmor")
	Stop
  RedArmor:
	TNT1 A 0 A_GiveInventory("IDMRedArmor")
	Stop
  PurpleArmor:
	TNT1 A 0 A_GiveInventory("PurpleArmor")
    Stop
  SuperArmor:
	TNT1 A 0 A_GiveInventory("SuperArmor")
	Stop
  }
}

ACTOR IDMMegaSphereHealth : Health
{
  Inventory.Amount 300
  Inventory.MaxAmount 300
  +INVENTORY.ALWAYSPICKUP
  -INVENTORY.INVBAR
}


// Resistance

ACTOR ResistSphere : CustomInventory replaces Radsuit
{
  +FLOAT
  +FLOATBOB
  +COUNTITEM
  +INVENTORY.AUTOACTIVATE
  +INVENTORY.ALWAYSPICKUP
  +INVENTORY.FANCYPICKUPSOUND
  -INVENTORY.INVBAR
  Inventory.PickupSound "misc/impkup"
  Inventory.MaxAmount 0
  Inventory.PickupMessage "Resistance!"
  Inventory.PickupAnnouncerEntry "resistance"
  Inventory.RespawnTics 2100
  States
  {
  Spawn:
    BIOS A 28 Bright
	BIOS B 14 Bright
    Loop
  Pickup:
	TNT1 A 0 A_GiveInventory("PickupProtection")
	TNT1 A 0 A_Print("\n\n\n\n\nProjectile Resistance!\n\n\n\n90% resistance against projectiles!",4)
	TNT1 A 0 A_GiveInventory("ResistSphereIronFeet")
	TNT1 A 0 A_GiveInventory("ResistSphereProtection")
	Stop
  }
}

ACTOR ResistSphereIronFeet : PowerupGiver
{
  Inventory.MaxAmount 0
  Powerup.Type "IronFeet"
  Powerup.Duration -20
  Inventory.PickupMessage ""
  Inventory.PickupSound ""
  +INVENTORY.AUTOACTIVATE
  +INVENTORY.ALWAYSPICKUP
  -INVENTORY.INVBAR
}

ACTOR PowerResistance : PowerProtection
{
  DamageFactor "Nail", 0.1
  DamageFactor "Mace", 0.1
  DamageFactor "Plasma", 0.1
  DamageFactor "HitPlasma", 0.1
  DamageFactor "Pulse", 0.1
  DamageFactor "Blaster", 0.1
  DamageFactor "Rocket", 0.1
  DamageFactor "Grenade", 0.1
  DamageFactor "BFG", 0.1
  DamageFactor "BFGSpray", 0.01
  DamageFactor "BFG10k", 0.01
  DamageFactor "Hellstorm", 0.01
  DamageFactor "Reflection", 0.1
  Inventory.Icon "BIOSA1"
  +DONTRIP
}

ACTOR ResistSphereProtection : PowerupGiver
{
  Inventory.MaxAmount 1
  Powerup.Type "Resistance"
  Powerup.Colormap 0.0,1.0,0.0
  Powerup.Duration -20
  Inventory.PickupMessage ""
  Inventory.PickupSound ""
  +INVENTORY.AUTOACTIVATE
  +INVENTORY.ALWAYSPICKUP
  -INVENTORY.INVBAR
}


ACTOR ResistSphere2 : ResistSphere
{
  Inventory.RespawnTics 2100
  States
  {
  Spawn:
    BIO2 A 28 Bright
	BIO2 B 14 Bright
    Loop
  Pickup:
	TNT1 A 0 A_GiveInventory("PickupProtection")
	TNT1 A 0 A_Print("\n\n\n\n\nHitscan Resistance!\n\n\n\n90% resistance against hitscan!",4)
	TNT1 A 0 A_GiveInventory("ResistSphereIronFeet")
	TNT1 A 0 A_GiveInventory("ResistSphere2Protection")
	Stop
  }
}


ACTOR PowerResistance2 : PowerProtection
{
  DamageFactor "Bullet", 0.1
  DamageFactor "Punch", 0.1
  DamageFactor "Saw", 0.1
  DamageFactor "Railgun", 0.1
  DamageFactor "BFGSpray", 0.01
  DamageFactor "BFG10k", 0.01
  DamageFactor "Reflection", 0.1
  Inventory.Icon "BIO2A1"
}

ACTOR ResistSphere2Protection : PowerupGiver
{
  Inventory.MaxAmount 1
  Powerup.Type "Resistance2"
  Powerup.Colormap 0.0,1.0,1.3
  Powerup.Duration -20
  Inventory.PickupMessage ""
  Inventory.PickupSound ""
  +INVENTORY.AUTOACTIVATE
  +INVENTORY.ALWAYSPICKUP
  -INVENTORY.INVBAR
}


// Regeneration

ACTOR RegenSphere : CustomInventory
{
    +FLOAT
    +FLOATBOB
	+COUNTITEM
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	-INVENTORY.INVBAR
    Inventory.PickupSound "misc/impkup"
	Inventory.Pickupmessage "Regeneration!"
	Inventory.PickupAnnouncerEntry "regeneration"
	Inventory.RespawnTics 2100
    Inventory.MaxAmount 0
	States
	{
	Spawn:
		REGN ABCD 6 Bright
		Loop
	Pickup:
		TNT1 A 0 A_GiveInventory("PickupProtection")
		TNT1 A 0 A_Print("\n\n\n\n\nRegeneration!\n\n\n\n25 health per second!")
		TNT1 A 0 A_GiveInventory("RegenSphereRegeneration")
		TNT1 A 0 A_GiveInventory("IDMPowerupTrail")
		Stop
	}
}

ACTOR PowerIDMRegeneration : PowerRegeneration
{
	Inventory.Icon "REGNA1"
}

ACTOR RegenSphereRegeneration : PowerupGiver
{
	Inventory.maxamount 0
	Powerup.Type "IDMRegeneration"
	Powerup.Duration -20
	Powerup.Strength 25
	Powerup.Color "Purple", 0.1
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	-INVENTORY.INVBAR
}


// Haste

ACTOR HasteSphere : CustomInventory
{
    +FLOAT
    +FLOATBOB
	+COUNTITEM
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	-INVENTORY.INVBAR
    Inventory.PickupSound "misc/impkup"
	Inventory.Pickupmessage "Haste!"
	Inventory.PickupAnnouncerEntry "haste"
	Inventory.RespawnTics 2100
    Inventory.MaxAmount 0
	States
	{
	Spawn:
		HAST A 15 Bright
		HAST BCB 10 Bright
		Loop
	Pickup:
		TNT1 A 0 A_GiveInventory("PickupProtection")
		TNT1 A 0 A_Print("\n\n\n\n\n\nHaste!\n\n\n\n2x firing speed & +50% movement speed!",4)
		TNT1 A 0 A_GiveInventory("HasteSphereSpeed")
		TNT1 A 0 A_GiveInventory("HasteSphereDoubleFire")
		Stop
	}
}

ACTOR PowerIDMSpeed : PowerSpeed
{
	Inventory.Icon "HASTA1"
	Speed 1.5
}

ACTOR HasteSphereSpeed : PowerupGiver
{
	Inventory.maxamount 0
	Powerup.Type "IDMSpeed"
	Powerup.Duration -20
	Powerup.Color "Yellow", 0.1
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	-INVENTORY.INVBAR
}

ACTOR HasteSphereDoubleFire : PowerupGiver
{
	Inventory.maxamount 0
	Powerup.Type DoubleFiringSpeed
	Powerup.Duration -20
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	-INVENTORY.INVBAR
}

ACTOR HasteSphereHighJump : PowerupGiver
{
	Inventory.maxamount 0
	Powerup.Type HighJump
	Powerup.Duration -20
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	-INVENTORY.INVBAR
}


// Guardsphere

ACTOR PowerIDMQuarterDamage : PowerProtection
{
  DamageFactor "Normal", 0.25
  Inventory.Icon "GARDA1"
  +DONTRIP
}

ACTOR GuardsphereProtection : PowerupGiver
{
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	-INVENTORY.INVBAR
	Inventory.MaxAmount 0
	Powerup.Type "IDMQuarterDamage"
	Powerup.Duration -20
	Powerup.Color GreenMap
}

ACTOR IDMGuardSphere : CustomInventory
{
    +FLOAT
    +FLOATBOB
	+COUNTITEM
	+NOGRAVITY
	-INVENTORY.INVBAR
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	Inventory.PickupMessage "Guardsphere!"
    Inventory.PickupSound "misc/impkup"
	Inventory.PickupAnnouncerEntry "guardsphere"
	Inventory.RespawnTics 2100
	States
	{
	Spawn:
		GARD ABCD 6 Bright
		Loop
	Pickup:
		TNT1 A 0 A_GiveInventory("PickupProtection")
		TNT1 A 0 A_Print("\n\n\n\n\nGuardsphere!\n\n\n\n75% damage resistance!")
		TNT1 A 0 A_GiveInventory("GuardSphereProtection")
		Stop
	}
}



// Reflection

ACTOR PowerIDMReflection : PowerReflection
{
	Inventory.Icon "LFSSA1"
}

ACTOR ReflectSphereInvulnerable : PowerupGiver
{
	Powerup.Type "RageInvulnerable"
	Powerup.Mode "Reflective"
	Powerup.Duration -15
	Inventory.PickupMessage ""
	Inventory.PickupSound ""
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	-INVENTORY.INVBAR
}

ACTOR ReflectSphereReflection : PowerupGiver
{
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	-INVENTORY.INVBAR
	Powerup.Type "IDMReflection"
	Powerup.Duration -20
	Powerup.Colormap 2.0, 1.0, 0.0
}

ACTOR ReflectSphere : CustomInventory
{
    +FLOAT
    +FLOATBOB
	+COUNTITEM
	+NOGRAVITY
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	-INVENTORY.INVBAR
    Inventory.PickupSound "misc/impkup"
	Inventory.Pickupmessage "Reflection!"
	Inventory.PickupAnnouncerEntry "reflection"
	Inventory.RespawnTics 4200
    Inventory.MaxAmount 0
	States
	{
	Spawn:
	  LFSS ABCDCB 6 Bright
      Loop
	Pickup:
		TNT1 A 0 A_GiveInventory("PickupProtection")
		TNT1 A 0 A_Print("\n\n\n\n\nReflection!\n\n\n\nReflects enemy damage back to the attacker!",4)
		TNT1 A 0 A_GiveInventory("ReflectSphereReflection")
		Stop
	}
}

Damagetype "Reflection"
{
	Factor 1.0
	ReplaceFactor
	NoArmor
}

ACTOR ProsperitySphere : CustomInventory
{
    +FLOAT
    +FLOATBOB
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	+COUNTITEM
	-INVENTORY.INVBAR
	Inventory.PickupMessage "Prosperity!"
	Inventory.PickupSound "misc/impkup"
	Inventory.PickupAnnouncerEntry "prosperity"
	Inventory.RespawnTics 2100
    Inventory.MaxAmount 0
	States
	{
	Spawn:
		AMSP ABCD 6 Bright
		Loop
	Pickup:
		TNT1 A 0 A_Print("\n\n\n\n\n\nProsperity!\n\n\n\n200 Health & random Light Armor!\nInfinite ammo for 10 seconds!",4)
		TNT1 A 0 Healthing(200,200)
		TNT1 A 0 A_GiveInventory("PickupProtection")
		TNT1 A 0 A_GiveInventory("IDMPowerupTrail")
		TNT1 A 0 A_GiveInventory("ProsperityInfiniteAmmo")
		TNT1 A 0 A_GiveInventory("IDMClip", 300)
		TNT1 A 0 A_GiveInventory("IDMShell", 30)
		TNT1 A 0 A_GiveInventory("IDMRocketAmmo", 30)
		TNT1 A 0 A_GiveInventory("IDMCell", 200)
		TNT1 A 0 A_Jump(256,"BulletArmor","FragArmor","TechArmor")
		Stop
	BulletArmor:
		TNT1 A 0 A_GiveInventory("BulletArmor")
		Stop
	FragArmor:
		TNT1 A 0 A_GiveInventory("FragArmor")
		Stop
	TechArmor:
		TNT1 A 0 A_GiveInventory("TechArmor")
		Stop
	}
}

ACTOR PowerIDMInfiniteAmmo : PowerInfiniteAmmo
{
	Inventory.Icon "AMSPA1"
}

ACTOR ProsperityInfiniteAmmo : PowerupGiver
{
	Game Doom
	Powerup.Duration -10
	Powerup.Type "IDMInfiniteAmmo"
	Powerup.Color "Orange", 0.2
	Inventory.MaxAmount 0
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	-INVENTORY.INVBAR
}