ACTOR TibMegaSphere : CustomInventory replaces Megasphere
{
  +COUNTITEM
  +INVENTORY.AUTOACTIVATE
  +INVENTORY.ALWAYSPICKUP
  +INVENTORY.BIGPOWERUP
  Inventory.MaxAmount 0
  Alpha 0.95
  Scale 0.60
  Renderstyle Translucent
  ActiveSound "Sphere/Active"
  Inventory.PickupSound "Sphere/Mega"
  Inventory.PickupMessage "-=(Grand Salvation)=-" //A.K.A. Lucky Number Seven
  States
  {
  Spawn:
	TNT1 AA 0 A_SpawnItemEx("MegasphereSpark2",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(2.0,-2.0),0,32)
	TNT1 A 0 A_SpawnItemEx("MegasphereSpark3",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(0.05,2.0),0,32)
    MEHA A 2 Bright A_SpawnItemEx("BlueFlareMedium", 0, 0, 22, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	TNT1 AA 0 A_SpawnItemEx("MegasphereSpark2",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(2.0,-2.0),0,32)
	TNT1 A 0 A_SpawnItemEx("MegasphereSpark3",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(0.05,2.0),0,32)
	MEHA B 2 Bright A_SpawnItemEx("BlueFlareMedium", 0, 0, 22, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	TNT1 AA 0 A_SpawnItemEx("MegasphereSpark2",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(2.0,-2.0),0,32)
	TNT1 A 0 A_SpawnItemEx("MegasphereSpark3",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(0.05,2.0),0,32)
	MEHA C 2 Bright A_SpawnItemEx("BlueFlareMedium", 0, 0, 22, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	TNT1 AA 0 A_SpawnItemEx("MegasphereSpark2",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(2.0,-2.0),0,32)
	TNT1 A 0 A_SpawnItemEx("MegasphereSpark3",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(0.05,2.0),0,32)
	MEHA D 2 Bright A_SpawnItemEx("BlueFlareMedium", 0, 0, 22, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	TNT1 AA 0 A_SpawnItemEx("MegasphereSpark2",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(2.0,-2.0),0,32)
	TNT1 A 0 A_SpawnItemEx("MegasphereSpark3",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(0.05,2.0),0,32)
	TNT1 A 0 A_LoopActiveSound
    Loop
  Pickup:
    TNT1 A 0 A_GiveInventory("TibMegaSphereArmor", 1)
	TNT1 A 0 A_GiveInventory("TibMegaSphereHealth", 1) 
    Stop
  }
}

ACTOR TibMegaSphereHealth : Health  //this is part of why the TibMegaSphere damn near never spawns.
{
  Inventory.Amount "777"
  Inventory.MaxAmount "777"
  +INVENTORY.ALWAYSPICKUP
}

ACTOR TibMegaSphereArmor : BlueArmor //this is the other part of why the TibMegaSphere damn near never spawns.
{
   Inventory.PickupSound ""
   Inventory.PickupMessage ""
   Armor.SavePercent "100"
   Armor.SaveAmount "777"
   +FLOORCLIP
   +BIGPOWERUP
   +WINDTHRUST
   States
   {
   Spawn:
      TNT1 A 1
      Loop
   } 
}

Actor BlueFlareMedium
{
+NOINTERACTION
+NOGRAVITY
+CLIENTSIDEONLY
+NOTIMEFREEZE
renderstyle Add
radius 1
height 1
alpha 0.25
scale 0.4
states
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(128,2)
		LENB A 5 bright
		stop
		TNT1 A 0
		LENB A 5 bright
		stop
	}
}

Actor MegaSphereSpark2
{
	+FORCEXYBILLBOARD
	+NOINTERACTION
	+NOTIMEFREEZE
	+ClientsideOnly
	Scale 0.1
	RenderStyle Add
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"S1","S2","S3","S4","S5","S6","S7","S8")
	S1:	X079 A 0	
	Goto Perform
	S2:	X079 B 0	
	Goto Perform
	S3:	X079 C 0	
	Goto Perform
	S4:	X079 D 0	
	Goto Perform
	S5:	X079 E 0	
	Goto Perform
	S6:	X079 F 0	
	Goto Perform
	S7:	X079 G 0	
	Goto Perform
	S8: X079 H 0	
	Goto Perform
	Perform:
		"####" "#" 1 A_SetScale(ScaleX+0.01)
		"####" "#" 0 A_FadeOut(0.05)
		Loop
	}
}

Actor MegaSphereSpark3
{
	+FORCEXYBILLBOARD
	+NOINTERACTION
	+NOTIMEFREEZE
	+ClientsideOnly
	Scale 0.3
	RenderStyle Add
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"S1","S2","S3","S4","S5","S6","S7","S8","S9","S10","S11","S12","S13","S14","S15","S16")
	S1:		X080 A 0	
	Goto Perform
	S2:		X080 B 0	
	Goto Perform
	S3:		X080 C 0	
	Goto Perform
	S4:		X080 D 0	
	Goto Perform
	S5:		X080 E 0	
	Goto Perform
	S6:		X080 F 0	
	Goto Perform
	S7:		X080 G 0	
	Goto Perform
	S8: 	X080 H 0	
	Goto Perform
	S9:		X080 I 0	
	Goto Perform
	S10:	X080 J 0	
	Goto Perform
	S11:	X080 K 0	
	Goto Perform
	S12:	X080 L 0	
	Goto Perform
	S13:	X080 M 0	
	Goto Perform
	S14:	X080 N 0	
	Goto Perform
	S15:	X080 O 0	
	Goto Perform
	S16:	X080 P 0	
	Goto Perform
	Perform:
		"####" "#" 1 A_ScaleVelocity(1.02)
		"####" "#" 0 A_SetScale(ScaleX-0.02)
		"####" "#" 0 A_JumpIf(ScaleX<=0,1)
		Loop
		"####" "#" 0
		Stop
	}
}

ACTOR TibSoulSphere : CustomInventory replaces SoulSphere
{
  +COUNTITEM
  +INVENTORY.AUTOACTIVATE
  +INVENTORY.ALWAYSPICKUP
  +INVENTORY.BIGPOWERUP
  Inventory.MaxAmount 0
  Alpha 0.95
  Scale 0.60
  Renderstyle Translucent
  ActiveSound "Sphere/Active"
  Inventory.PickupSound "Sphere/Soul"
  Inventory.PickupMessage "-=(Salvation)=-"
  States
  {
  Spawn:
    TNT1 AA 0 A_SpawnItemEx("SoulSphereSpark2",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(2.0,-2.0),0,32)
	TNT1 A 0 A_SpawnItemEx("SoulSphereSpark3",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(0.05,2.0),0,32)
    SOLS A 2 Bright A_SpawnItemEx("OrangeFlareMedium", 0, 0, 22, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	TNT1 AA 0 A_SpawnItemEx("SoulSphereSpark2",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(2.0,-2.0),0,32)
	TNT1 A 0 A_SpawnItemEx("SoulSphereSpark3",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(0.05,2.0),0,32)
	SOLS B 2 Bright A_SpawnItemEx("OrangeFlareMedium", 0, 0, 22, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	TNT1 AA 0 A_SpawnItemEx("SoulSphereSpark2",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(2.0,-2.0),0,32)
	TNT1 A 0 A_SpawnItemEx("SoulSphereSpark3",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(0.05,2.0),0,32)
	SOLS C 2 Bright A_SpawnItemEx("OrangeFlareMedium", 0, 0, 22, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	TNT1 AA 0 A_SpawnItemEx("SoulSphereSpark2",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(2.0,-2.0),0,32)
	TNT1 A 0 A_SpawnItemEx("SoulSphereSpark3",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(0.05,2.0),0,32)
	SOLS D 2 Bright A_SpawnItemEx("OrangeFlareMedium", 0, 0, 22, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	TNT1 AA 0 A_SpawnItemEx("SoulSphereSpark2",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(2.0,-2.0),0,32)
	TNT1 A 0 A_SpawnItemEx("SoulSphereSpark3",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(0.05,2.0),0,32)
	TNT1 A 0 A_LoopActiveSound
    Loop
  Pickup:
    TNT1 A 0 A_GiveInventory("TibSoulSphereArmor", 1)
	TNT1 A 0 A_GiveInventory("TibSoulSphereHealth", 1)
    Stop
  }
}
 
ACTOR TibSoulSphereHealth : Health
{
  Inventory.Amount "666"
  Inventory.MaxAmount "666"
  +INVENTORY.ALWAYSPICKUP
}

ACTOR TibSoulSphereArmor : BlueArmor
{
   Inventory.PickupMessage ""
   Armor.SavePercent "100"
   Armor.SaveAmount "666"
   +FLOORCLIP
   +BIGPOWERUP
   +WINDTHRUST
   States
   {
   Spawn:
      TNT1 A 1
      Loop
   } 
}

Actor OrangeFlareMedium
{
+NOINTERACTION
+NOGRAVITY
+CLIENTSIDEONLY
+NOTIMEFREEZE
renderstyle Add
radius 1
height 1
alpha 0.25
scale 0.4
states
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(128,2)
		LENO A 5 bright
		stop
		TNT1 A 0
		LENO A 5 bright
		stop
	}
}

Actor SoulSphereSpark2
{
	+FORCEXYBILLBOARD
	+NOINTERACTION
	+NOTIMEFREEZE
	+ClientsideOnly
	Scale 0.1
	RenderStyle Add
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"S1","S2","S3","S4","S5","S6","S7","S8")
	S1:	X081 A 0	
	Goto Perform
	S2:	X081 B 0	
	Goto Perform
	S3:	X081 C 0	
	Goto Perform
	S4:	X081 D 0	
	Goto Perform
	S5:	X081 E 0	
	Goto Perform
	S6:	X081 F 0	
	Goto Perform
	S7:	X081 G 0	
	Goto Perform
	S8: X081 H 0	
	Goto Perform
	Perform:
		"####" "#" 1 A_SetScale(ScaleX+0.01)
		"####" "#" 0 A_FadeOut(0.05)
		Loop
	}
}

Actor SoulSphereSpark3
{
	+FORCEXYBILLBOARD
	+NOINTERACTION
	+NOTIMEFREEZE
	+ClientsideOnly
	Scale 0.3
	RenderStyle Add
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"S1","S2","S3","S4","S5","S6","S7","S8","S9","S10","S11","S12","S13","S14","S15","S16")
	S1:		X082 A 0	
	Goto Perform
	S2:		X082 B 0	
	Goto Perform
	S3:		X082 C 0	
	Goto Perform
	S4:		X082 D 0	
	Goto Perform
	S5:		X082 E 0	
	Goto Perform
	S6:		X082 F 0	
	Goto Perform
	S7:		X082 G 0	
	Goto Perform
	S8: 	X082 H 0	
	Goto Perform
	S9:		X082 I 0	
	Goto Perform
	S10:	X082 J 0	
	Goto Perform
	S11:	X082 K 0	
	Goto Perform
	S12:	X082 L 0	
	Goto Perform
	S13:	X082 M 0	
	Goto Perform
	S14:	X082 N 0	
	Goto Perform
	S15:	X082 O 0	
	Goto Perform
	S16:	X082 P 0	
	Goto Perform
	Perform:
		"####" "#" 1 A_ScaleVelocity(1.02)
		"####" "#" 0 A_SetScale(ScaleX-0.02)
		"####" "#" 0 A_JumpIf(ScaleX<=0,1)
		Loop
		"####" "#" 0
		Stop
	}
}

ACTOR TibBzrkSphere : CustomInventory replaces Berserk
{
  Game Doom
  SpawnID 134
  +COUNTITEM
  +INVENTORY.ALWAYSPICKUP
  Alpha 0.95
  Scale 0.60
  Renderstyle Translucent
  ActiveSound "Sphere/Active"
  Inventory.PickupSound "Sphere/Bzrk"
  Inventory.PickupMessage "-=(Berserker)=-"
  States
  {
  Spawn:
    TNT1 AA 0 A_SpawnItemEx("BzrkSphereSpark2",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(2.0,-2.0),0,32)
	TNT1 A 0 A_SpawnItemEx("BzrkSphereSpark3",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(0.05,2.0),0,32)
    BZRK A 2 Bright A_SpawnItemEx("RedFlareMedium", 0, 0, 22, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	TNT1 AA 0 A_SpawnItemEx("BzrkSphereSpark2",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(2.0,-2.0),0,32)
	TNT1 A 0 A_SpawnItemEx("BzrkSphereSpark3",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(0.05,2.0),0,32)
	BZRK B 2 Bright A_SpawnItemEx("RedFlareMedium", 0, 0, 22, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	TNT1 AA 0 A_SpawnItemEx("BzrkSphereSpark2",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(2.0,-2.0),0,32)
	TNT1 A 0 A_SpawnItemEx("BzrkSphereSpark3",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(0.05,2.0),0,32)
	BZRK C 2 Bright A_SpawnItemEx("RedFlareMedium", 0, 0, 22, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	TNT1 AA 0 A_SpawnItemEx("BzrkSphereSpark2",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(2.0,-2.0),0,32)
	TNT1 A 0 A_SpawnItemEx("BzrkSphereSpark3",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(0.05,2.0),0,32)
	BZRK D 2 Bright A_SpawnItemEx("RedFlareMedium", 0, 0, 22, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	TNT1 AA 0 A_SpawnItemEx("BzrkSphereSpark2",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(2.0,-2.0),0,32)
	TNT1 A 0 A_SpawnItemEx("BzrkSphereSpark3",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(0.05,2.0),0,32)
	TNT1 A 0 A_LoopActiveSound
    loop
  Pickup:
    TNT1 A 0 A_PlaySoundEx("BzrkScreamer","Screamer",0,0)
    TNT1 A 0 A_GiveInventory("BzrkArmor", 1)
	TNT1 A 0 A_GiveInventory("BzrkHealth", 1)
    TNT1 A 0 A_GiveInventory("BzrkRage")
    Stop
  }
}

actor PowerMegaDamage : PowerDamage
{
damagefactor "normal", 4
inventory.icon ""
}

actor PowerQuarterDamage : PowerDamage
{
damagefactor "normal", 0.25
inventory.icon ""
}

actor BzrkRage : PowerupGiver
{ 
powerup.color red 0.1
powerup.type MegaDamage
powerup.duration -45
+INVENTORY.AUTOACTIVATE
+INVENTORY.FANCYPICKUPSOUND
+INVENTORY.ALWAYSPICKUP
states 
 { 
 Spawn: 
   TNT1 A 1 bright 
   loop 
 } 
}

ACTOR BzrkHealth : Health
{
  Inventory.Amount "555"
  Inventory.MaxAmount "555"
  +INVENTORY.ALWAYSPICKUP
}

ACTOR BzrkArmor : BlueArmor
{
   Inventory.PickupSound ""
   Inventory.PickupMessage ""
   Armor.SavePercent "100"
   Armor.SaveAmount "555"
   +FLOORCLIP
   +BIGPOWERUP
   +WINDTHRUST
   States
   {
   Spawn:
      TNT1 A 1
      Loop
   } 
}

Actor RedFlareMedium
{
+NOINTERACTION
+NOGRAVITY
+CLIENTSIDEONLY
+NOTIMEFREEZE
renderstyle Add
radius 1
height 1
alpha 0.25
scale 0.4
states
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(128,2)
		LENR A 5 bright
		stop
		TNT1 A 0
		LENR A 5 bright
		stop
	}
}

Actor BzrkSphereSpark2
{
	+FORCEXYBILLBOARD
	+NOINTERACTION
	+NOTIMEFREEZE
	+ClientsideOnly
	Scale 0.1
	RenderStyle Add
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"S1","S2","S3","S4","S5","S6","S7","S8")
	S1:	X083 A 0	
	Goto Perform
	S2:	X083 B 0	
	Goto Perform
	S3:	X083 C 0	
	Goto Perform
	S4:	X083 D 0	
	Goto Perform
	S5:	X083 E 0	
	Goto Perform
	S6:	X083 F 0	
	Goto Perform
	S7:	X083 G 0	
	Goto Perform
	S8: X083 H 0	
	Goto Perform
	Perform:
		"####" "#" 1 A_SetScale(ScaleX+0.01)
		"####" "#" 0 A_FadeOut(0.05)
		Loop
	}
}

Actor BzrkSphereSpark3
{
	+FORCEXYBILLBOARD
	+NOINTERACTION
	+NOTIMEFREEZE
	+ClientsideOnly
	Scale 0.3
	RenderStyle Add
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"S1","S2","S3","S4","S5","S6","S7","S8","S9","S10","S11","S12","S13","S14","S15","S16")
	S1:		X084 A 0	
	Goto Perform
	S2:		X084 B 0	
	Goto Perform
	S3:		X084 C 0	
	Goto Perform
	S4:		X084 D 0	
	Goto Perform
	S5:		X084 E 0	
	Goto Perform
	S6:		X084 F 0	
	Goto Perform
	S7:		X084 G 0	
	Goto Perform
	S8: 	X084 H 0	
	Goto Perform
	S9:		X084 I 0	
	Goto Perform
	S10:	X084 J 0	
	Goto Perform
	S11:	X084 K 0	
	Goto Perform
	S12:	X084 L 0	
	Goto Perform
	S13:	X084 M 0	
	Goto Perform
	S14:	X084 N 0	
	Goto Perform
	S15:	X084 O 0	
	Goto Perform
	S16:	X084 P 0	
	Goto Perform
	Perform:
		"####" "#" 1 A_ScaleVelocity(1.02)
		"####" "#" 0 A_SetScale(ScaleX-0.02)
		"####" "#" 0 A_JumpIf(ScaleX<=0,1)
		Loop
		"####" "#" 0
		Stop
	}
}

ACTOR TibInvulnSphere : PowerupGiver Replaces InvulnerabilitySphere
{
  Inventory.MaxAmount 0
  Inventory.PickupSound "Sphere/Invuln"
  Powerup.Type "Invulnerable"
  Powerup.Mode "Reflective"
  ActiveSound "Sphere/Active"
  Powerup.Color "c7 ff 1f" 0.1
  powerup.duration -45
  Alpha 0.95
  Scale 0.60
  Renderstyle Translucent
  Inventory.PickupMessage "-=(Invulnerability)=-"
  +INVENTORY.AUTOACTIVATE
  +INVENTORY.FANCYPICKUPSOUND
  +INVENTORY.ALWAYSPICKUP
  +INVENTORY.HUBPOWER
  +ADDITIVETIME
  States
  {
  Spawn:
    TNT1 AA 0 A_SpawnItemEx("InvulnSphereSpark2",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(2.0,-2.0),0,32)
	TNT1 A 0 A_SpawnItemEx("InvulnSphereSpark3",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(0.05,2.0),0,32)
    INVL A 2 Bright A_SpawnItemEx("GreenFlareMedium", 0, 0, 22, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	TNT1 AA 0 A_SpawnItemEx("InvulnSphereSpark2",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(2.0,-2.0),0,32)
	TNT1 A 0 A_SpawnItemEx("InvulnSphereSpark3",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(0.05,2.0),0,32)
	INVL B 2 Bright A_SpawnItemEx("GreenFlareMedium", 0, 0, 22, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	TNT1 AA 0 A_SpawnItemEx("InvulnSphereSpark2",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(2.0,-2.0),0,32)
	TNT1 A 0 A_SpawnItemEx("InvulnSphereSpark3",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(0.05,2.0),0,32)
	INVL C 2 Bright A_SpawnItemEx("GreenFlareMedium", 0, 0, 22, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	TNT1 AA 0 A_SpawnItemEx("InvulnSphereSpark2",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(2.0,-2.0),0,32)
	TNT1 A 0 A_SpawnItemEx("InvulnSphereSpark3",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(0.05,2.0),0,32)
	INVL D 2 Bright A_SpawnItemEx("GreenFlareMedium", 0, 0, 22, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	TNT1 AA 0 A_SpawnItemEx("InvulnSphereSpark2",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(2.0,-2.0),0,32)
	TNT1 A 0 A_SpawnItemEx("InvulnSphereSpark3",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(0.05,2.0),0,32)
	TNT1 A 0 A_LoopActiveSound
    Loop
  }
}

Actor GreenFlareMedium
{
+NOINTERACTION
+NOGRAVITY
+CLIENTSIDEONLY
+NOTIMEFREEZE
renderstyle Add
radius 1
height 1
alpha 0.25
scale 0.4
states
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(128,2)
		LENG A 5 bright
		stop
		TNT1 A 0
		LENG A 5 bright
		stop
	}
}

Actor InvulnSphereSpark2
{
	+FORCEXYBILLBOARD
	+NOINTERACTION
	+NOTIMEFREEZE
	+ClientsideOnly
	Scale 0.1
	RenderStyle Add
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"S1","S2","S3","S4","S5","S6","S7","S8")
	S1:	X085 A 0	
	Goto Perform
	S2:	X085 B 0	
	Goto Perform
	S3:	X085 C 0	
	Goto Perform
	S4:	X085 D 0	
	Goto Perform
	S5:	X085 E 0	
	Goto Perform
	S6:	X085 F 0	
	Goto Perform
	S7:	X085 G 0	
	Goto Perform
	S8: X085 H 0	
	Goto Perform
	Perform:
		"####" "#" 1 A_SetScale(ScaleX+0.01)
		"####" "#" 0 A_FadeOut(0.05)
		Loop
	}
}

Actor InvulnSphereSpark3
{
	+FORCEXYBILLBOARD
	+NOINTERACTION
	+NOTIMEFREEZE
	+ClientsideOnly
	Scale 0.3
	RenderStyle Add
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"S1","S2","S3","S4","S5","S6","S7","S8","S9","S10","S11","S12","S13","S14","S15","S16")
	S1:		X086 A 0	
	Goto Perform
	S2:		X086 B 0	
	Goto Perform
	S3:		X086 C 0	
	Goto Perform
	S4:		X086 D 0	
	Goto Perform
	S5:		X086 E 0	
	Goto Perform
	S6:		X086 F 0	
	Goto Perform
	S7:		X086 G 0	
	Goto Perform
	S8: 	X086 H 0	
	Goto Perform
	S9:		X086 I 0	
	Goto Perform
	S10:	X086 J 0	
	Goto Perform
	S11:	X086 K 0	
	Goto Perform
	S12:	X086 L 0	
	Goto Perform
	S13:	X086 M 0	
	Goto Perform
	S14:	X086 N 0	
	Goto Perform
	S15:	X086 O 0	
	Goto Perform
	S16:	X086 P 0	
	Goto Perform
	Perform:
		"####" "#" 1 A_ScaleVelocity(1.02)
		"####" "#" 0 A_SetScale(ScaleX-0.02)
		"####" "#" 0 A_JumpIf(ScaleX<=0,1)
		Loop
		"####" "#" 0
		Stop
	}
}

ACTOR TibHasteSphere : PowerupGiver replaces BlurSphere
{
	Inventory.PickupSound "Sphere/Haste"
	ActiveSound "Sphere/Active"
	Inventory.Amount 1
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.FANCYPICKUPSOUND
	+INVENTORY.ALWAYSPICKUP
	+INVENTORY.HUBPOWER
	+ADDITIVETIME
	powerup.duration -45
	powerup.Type PowerDoubleFiringSpeed
	Powerup.Color Purple 0.1
	Alpha 0.95
    Scale 0.60
    Renderstyle Translucent
	Inventory.PickupMessage "-=(Haste)=-"
	States
	{
	Spawn:
	TNT1 AA 0 A_SpawnItemEx("HasteSphereSpark2",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(2.0,-2.0),0,32)
	TNT1 A 0 A_SpawnItemEx("HasteSphereSpark3",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(0.05,2.0),0,32)
    HAST A 2 Bright A_SpawnItemEx("PurpleFlareMedium", 0, 0, 22, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	TNT1 AA 0 A_SpawnItemEx("HasteSphereSpark2",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(2.0,-2.0),0,32)
	TNT1 A 0 A_SpawnItemEx("HasteSphereSpark3",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(0.05,2.0),0,32)
	HAST B 2 Bright A_SpawnItemEx("PurpleFlareMedium", 0, 0, 22, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	TNT1 AA 0 A_SpawnItemEx("HasteSphereSpark2",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(2.0,-2.0),0,32)
	TNT1 A 0 A_SpawnItemEx("HasteSphereSpark3",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(0.05,2.0),0,32)
	HAST C 2 Bright A_SpawnItemEx("PurpleFlareMedium", 0, 0, 22, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	TNT1 AA 0 A_SpawnItemEx("HasteSphereSpark2",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(2.0,-2.0),0,32)
	TNT1 A 0 A_SpawnItemEx("HasteSphereSpark3",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(0.05,2.0),0,32)
	HAST D 2 Bright A_SpawnItemEx("PurpleFlareMedium", 0, 0, 22, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	TNT1 AA 0 A_SpawnItemEx("HasteSphereSpark2",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(2.0,-2.0),0,32)
	TNT1 A 0 A_SpawnItemEx("HasteSphereSpark3",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(0.05,2.0),0,32)
	TNT1 A 0 A_LoopActiveSound
		Loop
	}
}

Actor PurpleFlareMedium
{
+NOINTERACTION
+NOGRAVITY
+CLIENTSIDEONLY
+NOTIMEFREEZE
renderstyle Add
radius 1
height 1
alpha 0.25
scale 0.4
states
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(128,2)
		LENP A 5 bright
		stop
		TNT1 A 0
		LENP A 5 bright
		stop
	}
}

Actor HasteSphereSpark2
{
	+FORCEXYBILLBOARD
	+NOINTERACTION
	+NOTIMEFREEZE
	+ClientsideOnly
	Scale 0.1
	RenderStyle Add
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"S1","S2","S3","S4","S5","S6","S7","S8")
	S1:	X087 A 0	
	Goto Perform
	S2:	X087 B 0	
	Goto Perform
	S3:	X087 C 0	
	Goto Perform
	S4:	X087 D 0	
	Goto Perform
	S5:	X087 E 0	
	Goto Perform
	S6:	X087 F 0	
	Goto Perform
	S7:	X087 G 0	
	Goto Perform
	S8: X087 H 0	
	Goto Perform
	Perform:
		"####" "#" 1 A_SetScale(ScaleX+0.01)
		"####" "#" 0 A_FadeOut(0.05)
		Loop
	}
}

Actor HasteSphereSpark3
{
	+FORCEXYBILLBOARD
	+NOINTERACTION
	+NOTIMEFREEZE
	+ClientsideOnly
	Scale 0.3
	RenderStyle Add
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"S1","S2","S3","S4","S5","S6","S7","S8","S9","S10","S11","S12","S13","S14","S15","S16")
	S1:		X088 A 0	
	Goto Perform
	S2:		X088 B 0	
	Goto Perform
	S3:		X088 C 0	
	Goto Perform
	S4:		X088 D 0	
	Goto Perform
	S5:		X088 E 0	
	Goto Perform
	S6:		X088 F 0	
	Goto Perform
	S7:		X088 G 0	
	Goto Perform
	S8: 	X088 H 0	
	Goto Perform
	S9:		X088 I 0	
	Goto Perform
	S10:	X088 J 0	
	Goto Perform
	S11:	X088 K 0	
	Goto Perform
	S12:	X088 L 0	
	Goto Perform
	S13:	X088 M 0	
	Goto Perform
	S14:	X088 N 0	
	Goto Perform
	S15:	X088 O 0	
	Goto Perform
	S16:	X088 P 0	
	Goto Perform
	Perform:
		"####" "#" 1 A_ScaleVelocity(1.02)
		"####" "#" 0 A_SetScale(ScaleX-0.02)
		"####" "#" 0 A_JumpIf(ScaleX<=0,1)
		Loop
		"####" "#" 0
		Stop
	}
}

actor TibEnviroSphere : CustomInventory replaces RadSuit
{
  Inventory.PickupMessage "-=(SoulSphere of Protection)=-"
  Inventory.Amount 1
  Inventory.PickupSound "Sphere/Enviro"
  ActiveSound "Sphere/Active"
  Alpha 0.95
  Scale 0.60
  Renderstyle Translucent
  +INVENTORY.AUTOACTIVATE
  +INVENTORY.FANCYPICKUPSOUND
  +INVENTORY.ALWAYSPICKUP
  +INVENTORY.HUBPOWER
  +ADDITIVETIME
  states
  {
  Use:
   TNT1 A 0 A_GiveInventory("EnviroIronFeet")
   stop
  Spawn:
	TNT1 AA 0 A_SpawnItemEx("EnviroSphereSpark2",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(2.0,-2.0),0,32)
	TNT1 A 0 A_SpawnItemEx("EnviroSphereSpark3",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(0.05,2.0),0,32)
    ENVI A 2 Bright A_SpawnItemEx("YellowFlareMedium", 0, 0, 22, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	TNT1 AA 0 A_SpawnItemEx("EnviroSphereSpark2",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(2.0,-2.0),0,32)
	TNT1 A 0 A_SpawnItemEx("EnviroSphereSpark3",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(0.05,2.0),0,32)
	ENVI B 2 Bright A_SpawnItemEx("YellowFlareMedium", 0, 0, 22, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	TNT1 AA 0 A_SpawnItemEx("EnviroSphereSpark2",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(2.0,-2.0),0,32)
	TNT1 A 0 A_SpawnItemEx("EnviroSphereSpark3",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(0.05,2.0),0,32)
	ENVI C 2 Bright A_SpawnItemEx("YellowFlareMedium", 0, 0, 22, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	TNT1 AA 0 A_SpawnItemEx("EnviroSphereSpark2",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(2.0,-2.0),0,32)
	TNT1 A 0 A_SpawnItemEx("EnviroSphereSpark3",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(0.05,2.0),0,32)
	ENVI D 2 Bright A_SpawnItemEx("YellowFlareMedium", 0, 0, 22, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	TNT1 AA 0 A_SpawnItemEx("EnviroSphereSpark2",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(2.0,-2.0),0,32)
	TNT1 A 0 A_SpawnItemEx("EnviroSphereSpark3",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(0.05,2.0),0,32)
	TNT1 A 0 A_LoopActiveSound
    loop
  }
}

ACTOR EnviroIronFeet : PowerupGiver
{
powerup.duration -45
Powerup.Color Yellow 0.1
Powerup.Type "IronFeet"
+INVENTORY.AUTOACTIVATE
+INVENTORY.FANCYPICKUPSOUND
+INVENTORY.ALWAYSPICKUP
+ADDITIVETIME
}

Actor YellowFlareMedium
{
+NOINTERACTION
+NOGRAVITY
+CLIENTSIDEONLY
+NOTIMEFREEZE
renderstyle Add
radius 1
height 1
alpha 0.25
scale 0.4
states
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(128,2)
		LENY A 5 bright
		stop
		TNT1 A 0
		LENY A 5 bright
		stop
	}
}

Actor EnviroSphereSpark2
{
	+FORCEXYBILLBOARD
	+NOINTERACTION
	+NOTIMEFREEZE
	+ClientsideOnly
	Scale 0.1
	RenderStyle Add
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"S1","S2","S3","S4","S5","S6","S7","S8")
	S1:	X089 A 0	
	Goto Perform
	S2:	X089 B 0	
	Goto Perform
	S3:	X089 C 0	
	Goto Perform
	S4:	X089 D 0	
	Goto Perform
	S5:	X089 E 0	
	Goto Perform
	S6:	X089 F 0	
	Goto Perform
	S7:	X089 G 0	
	Goto Perform
	S8: X089 H 0	
	Goto Perform
	Perform:
		"####" "#" 1 A_SetScale(ScaleX+0.01)
		"####" "#" 0 A_FadeOut(0.05)
		Loop
	}
}

Actor EnviroSphereSpark3
{
	+FORCEXYBILLBOARD
	+NOINTERACTION
	+NOTIMEFREEZE
	+ClientsideOnly
	Scale 0.3
	RenderStyle Add
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"S1","S2","S3","S4","S5","S6","S7","S8","S9","S10","S11","S12","S13","S14","S15","S16")
	S1:		X090 A 0	
	Goto Perform
	S2:		X090 B 0	
	Goto Perform
	S3:		X090 C 0	
	Goto Perform
	S4:		X090 D 0	
	Goto Perform
	S5:		X090 E 0	
	Goto Perform
	S6:		X090 F 0	
	Goto Perform
	S7:		X090 G 0	
	Goto Perform
	S8: 	X090 H 0	
	Goto Perform
	S9:		X090 I 0	
	Goto Perform
	S10:	X090 J 0	
	Goto Perform
	S11:	X090 K 0	
	Goto Perform
	S12:	X090 L 0	
	Goto Perform
	S13:	X090 M 0	
	Goto Perform
	S14:	X090 N 0	
	Goto Perform
	S15:	X090 O 0	
	Goto Perform
	S16:	X090 P 0	
	Goto Perform
	Perform:
		"####" "#" 1 A_ScaleVelocity(1.02)
		"####" "#" 0 A_SetScale(ScaleX-0.02)
		"####" "#" 0 A_JumpIf(ScaleX<=0,1)
		Loop
		"####" "#" 0
		Stop
	}
}

ACTOR TibFreezeSphere : PowerupGiver Replaces Infrared
{
  Inventory.MaxAmount 0
  Inventory.PickupSound "Sphere/Time"
  Powerup.Type "TimeFreezer"
  Powerup.Mode "Reflective"
  ActiveSound "Sphere/Active"
  Powerup.Color "00 ff ff" 0.1
  powerup.duration -45
  Alpha 0.95
  Scale 0.60
  Renderstyle Translucent
  Inventory.PickupMessage "-=(SoulSphere of The Chronomage)=-"
  +INVENTORY.AUTOACTIVATE
  +INVENTORY.FANCYPICKUPSOUND
  +INVENTORY.ALWAYSPICKUP
  +INVENTORY.HUBPOWER
  +ADDITIVETIME
  States
  {
  Spawn:
    TNT1 AA 0 A_SpawnItemEx("TimeSphereSpark2",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(2.0,-2.0),0,32)
	TNT1 A 0 A_SpawnItemEx("TimeSphereSpark3",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(0.05,2.0),0,32)
    TIME A 2 Bright A_SpawnItemEx("CyanFlareMedium", 0, 0, 22, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	TNT1 AA 0 A_SpawnItemEx("TimeSphereSpark2",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(2.0,-2.0),0,32)
	TNT1 A 0 A_SpawnItemEx("TimeSphereSpark3",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(0.05,2.0),0,32)
	TIME B 2 Bright A_SpawnItemEx("CyanFlareMedium", 0, 0, 22, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	TNT1 AA 0 A_SpawnItemEx("TimeSphereSpark2",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(2.0,-2.0),0,32)
	TNT1 A 0 A_SpawnItemEx("TimeSphereSpark3",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(0.05,2.0),0,32)
	TIME C 2 Bright A_SpawnItemEx("CyanFlareMedium", 0, 0, 22, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	TNT1 AA 0 A_SpawnItemEx("TimeSphereSpark2",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(2.0,-2.0),0,32)
	TNT1 A 0 A_SpawnItemEx("TimeSphereSpark3",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(0.05,2.0),0,32)
	TIME D 2 Bright A_SpawnItemEx("CyanFlareMedium", 0, 0, 22, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	TNT1 AA 0 A_SpawnItemEx("TimeSphereSpark2",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(2.0,-2.0),0,32)
	TNT1 A 0 A_SpawnItemEx("TimeSphereSpark3",0,0,20,frandom(2.0,-2.0),frandom(2.0,-2.0),frandom(0.05,2.0),0,32)
	TNT1 A 0 A_LoopActiveSound
    Loop
  }
}

Actor CyanFlareMedium
{
+NOINTERACTION
+NOGRAVITY
+CLIENTSIDEONLY
+NOTIMEFREEZE
renderstyle Add
radius 1
height 1
alpha 0.25
scale 0.4
states
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(128,2)
		LENC A 5 bright
		stop
		TNT1 A 0
		LENC A 5 bright
		stop
	}
}

Actor TimeSphereSpark2
{
	+FORCEXYBILLBOARD
	+NOINTERACTION
	+NOTIMEFREEZE
	+ClientsideOnly
	Scale 0.1
	RenderStyle Add
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"S1","S2","S3","S4","S5","S6","S7","S8")
	S1:	X091 A 0	
	Goto Perform
	S2:	X091 B 0	
	Goto Perform
	S3:	X091 C 0	
	Goto Perform
	S4:	X091 D 0	
	Goto Perform
	S5:	X091 E 0	
	Goto Perform
	S6:	X091 F 0	
	Goto Perform
	S7:	X091 G 0	
	Goto Perform
	S8: X091 H 0	
	Goto Perform
	Perform:
		"####" "#" 1 A_SetScale(ScaleX+0.01)
		"####" "#" 0 A_FadeOut(0.05)
		Loop
	}
}

Actor TimeSphereSpark3
{
	+FORCEXYBILLBOARD
	+NOINTERACTION
	+NOTIMEFREEZE
	+ClientsideOnly
	Scale 0.3
	RenderStyle Add
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"S1","S2","S3","S4","S5","S6","S7","S8","S9","S10","S11","S12","S13","S14","S15","S16")
	S1:		X092 A 0	
	Goto Perform
	S2:		X092 B 0	
	Goto Perform
	S3:		X092 C 0	
	Goto Perform
	S4:		X092 D 0	
	Goto Perform
	S5:		X092 E 0	
	Goto Perform
	S6:		X092 F 0	
	Goto Perform
	S7:		X092 G 0	
	Goto Perform
	S8: 	X092 H 0	
	Goto Perform
	S9:		X092 I 0	
	Goto Perform
	S10:	X092 J 0	
	Goto Perform
	S11:	X092 K 0	
	Goto Perform
	S12:	X092 L 0	
	Goto Perform
	S13:	X092 M 0	
	Goto Perform
	S14:	X092 N 0	
	Goto Perform
	S15:	X092 O 0	
	Goto Perform
	S16:	X092 P 0	
	Goto Perform
	Perform:
		"####" "#" 1 A_ScaleVelocity(1.02)
		"####" "#" 0 A_SetScale(ScaleX-0.02)
		"####" "#" 0 A_JumpIf(ScaleX<=0,1)
		Loop
		"####" "#" 0
		Stop
	}
}

Actor LightShield : BasicArmorPickup replaces GreenArmor
{
	Height 16
	armor.saveamount 125
	Inventory.MaxAmount 125
	inventory.pickupmessage "NanoSkin : Civilian Class Shield."
	inventory.pickupsound "misc/shieldgreen"
	Armor.SavePercent 33.333
	armor.maxfullabsorb 10
	inventory.icon ARM1A0
	+NOTIMEFREEZE
	Scale 0.25
	states
	{
	Spawn:
		ARM1 ABCDE 2 BRIGHT
		ARM1 F 70 BRIGHT
		ARM1 EDCB 2 BRIGHT
		loop
	}
}

actor BlueArmor_Spawner : RandomSpawner replaces BlueArmor {
	DropItem "MediumShield", 255, 1
	DropItem "HeavyShield", 32, 1
}

Actor MediumShield : BasicArmorPickup
{
	Height 16
	armor.saveamount 250
	Inventory.MaxAmount 250
	inventory.pickupmessage "N.D.T.R. Industries : Advanced S.W.A.T. Shield."
	inventory.pickupsound "misc/shieldblue"
	inventory.icon ARM2A0
	Armor.SavePercent 66.666
	armor.maxfullabsorb 15
	+NOTIMEFREEZE
	Scale 0.25
	states
	{
	Spawn:
		ARM2 ABCDE 2 BRIGHT
		ARM2 F 70 BRIGHT
		ARM2 EDCB 2 BRIGHT
		loop
	}
}

Actor HeavyShield : BasicArmorPickup
{
	Height 16
	armor.saveamount 375
	Inventory.MaxAmount 375
	inventory.pickupmessage "Maelstrom : Heavy Duty Combat shield."
	inventory.pickupsound "misc/shieldred"
	inventory.icon ARM3A0
	Armor.SavePercent 99.999
	armor.maxfullabsorb 25
	+NOTIMEFREEZE
	Scale 0.25
	states
	{
	Spawn:
		ARM3 ABCDE 2 BRIGHT
		ARM3 F 70 BRIGHT
		ARM3 EDCB 2 BRIGHT
		loop
	}
}

actor HealthBonus_Spawner : RandomSpawner replaces HealthBonus {
	DropItem "LHealthSpirit", 255, 7
    DropItem "NHealthSpirit", 255, 5
	DropItem "GHealthSpirit", 255, 3
	DropItem "SHealthSpirit", 255, 1
}

ACTOR TibMedikit : Health replaces Medikit
{
  Inventory.Amount 70
  Inventory.PickupMessage "Picked up a medikit."
  Health.LowMessage 25, "Picked up a medikit that you REALLY need!"
  Inventory.MaxAmount 125
  States
  {
  Spawn:
    MEDI A -1
    Stop
  }
}

ACTOR TibStimpack : Health replaces Stimpack
{
  Inventory.Amount 35
  Inventory.PickupMessage "Picked up a stimpack."
  Health.LowMessage 25, "Picked up a stimpack that you REALLY need!"
  Inventory.MaxAmount 125
  States
  {
  Spawn:
    STIM A -1
    Stop
  }
}

ACTOR LHealthSpirit : Health
{
Scale 0.35
  SpawnID 152
  Radius 20
  Height 16
  Inventory.PickupMessage "Absorbed a Lesser Health Spirit."
  Inventory.Amount 1
  Inventory.MaxAmount 250
  Inventory.RespawnTics 9999999999999999999999999999999999
  ActiveSound "Spirit/Active"
  Renderstyle "Add"
  Alpha 0.75
  Inventory.PickupSound "Spirit/EsscenseAbsorb"
  +CountItem
  +FLOATBOB
  +FLOAT
  +NOGRAVITY
  +NOTIMEFREEZE
  +INVENTORY.ALWAYSPICKUP
  states
  {
  Spawn:
    LHEA ABCDEFGHIJK 1 BRIGHT
    Loop
  }
}

ACTOR NHealthSpirit : Health
{
Scale 0.55
  SpawnID 153
  Radius 20
  Height 16
  Inventory.PickupMessage "Absorbed a Health Spirit."
  Inventory.Amount 5
  Inventory.MaxAmount 250
  Inventory.RespawnTics 9999999999999999999999999999999999
  ActiveSound "Spirit/Active"
  Renderstyle "Add"
  Alpha 0.75
  Inventory.PickupSound "Spirit/EsscenseAbsorb"
  +CountItem
  +FLOATBOB
  +FLOAT
  +NOTIMEFREEZE
  +INVENTORY.ALWAYSPICKUP
  states
  {
  Spawn:
    NHEA ABCDEFGHIJK 1 BRIGHT
    Loop
  }
}

ACTOR GHealthSpirit : Health
{
Scale 0.85
  SpawnID 153
  Radius 20
  Height 16
  Inventory.PickupMessage "Absorbed a Greater Health Spirit."
  Inventory.Amount 15
  Inventory.MaxAmount 250
  Inventory.RespawnTics 9999999999999999999999999999999999
  ActiveSound "Spirit/Active"
  Renderstyle "Add"
  Alpha 0.75
  Inventory.PickupSound "Spirit/EsscenseAbsorb"
  +CountItem
  +FLOATBOB
  +FLOAT
  +NOTIMEFREEZE
  +INVENTORY.ALWAYSPICKUP
  states
  {
  Spawn:
    GHEA ABCDEFGHIJK 1 BRIGHT
    Loop
  }
}

ACTOR SHealthSpirit : Health
{
Scale 1.05
  SpawnID 153
  Radius 20
  Height 16
  Inventory.PickupMessage "Absorbed a Superior Health Spirit."
  Inventory.Amount 25
  Inventory.MaxAmount 250
  Inventory.RespawnTics 9999999999999999999999999999999999
  ActiveSound "Spirit/Active"
  Renderstyle "Add"
  Alpha 0.75
  Inventory.PickupSound "Spirit/EsscenseAbsorb"
  +CountItem
  +FLOATBOB
  +FLOAT
  +NOTIMEFREEZE
  +INVENTORY.ALWAYSPICKUP
  states
  {
  Spawn:
    SHEA ABCDEFGHIJK 1 BRIGHT
    Loop
  }
}

actor ArmorBonus_Spawner : RandomSpawner replaces ArmorBonus {
	DropItem "LArmorBonus", 255, 7
    DropItem "NArmorBonus", 255, 5
	DropItem "GArmorBonus", 255, 3
	DropItem "SArmorBonus", 255, 1
}

ACTOR LArmorBonus : BasicArmorBonus
{
  Radius 20
  Height 16
  Inventory.PickupMessage "Picked up a Lesser Shield Charger."
  Inventory.Icon ""
  Inventory.PickupSound "Armor/Pickup"
  Armor.SavePercent 11.111
  armor.maxfullabsorb 5
  Armor.SaveAmount 1
  Scale 0.9
  Armor.MaxSaveAmount 125
  +COUNTITEM
  +NOTIMEFREEZE
  +INVENTORY.ALWAYSPICKUP
  States
  {
  Spawn:
    CHR1 A 15 Bright
	CHR1 BCDEFGH 2 Bright
	loop
  }
}

ACTOR NArmorBonus : BasicArmorBonus
{
  Radius 20
  Height 16
  Inventory.PickupMessage "Picked up a Shield Charger."
  Inventory.Icon ""
  Inventory.PickupSound "Armor/Pickup"
  Armor.SavePercent 11.111
  armor.maxfullabsorb 5
  Armor.SaveAmount 5
  Armor.MaxSaveAmount 125
  Scale 0.95
  +COUNTITEM
  +NOTIMEFREEZE
  +INVENTORY.ALWAYSPICKUP
  States
  {
  Spawn:
    CHR2 A 15 Bright
	CHR2 BCDEFGH 2 Bright
	loop
  }
}

ACTOR GArmorBonus : BasicArmorBonus
{
  Radius 20
  Height 16
  Inventory.PickupMessage "Picked up a Greater Shield Charger."
  Inventory.Icon ""
  Inventory.PickupSound "Armor/Pickup"
  Armor.SavePercent 11.111
  armor.maxfullabsorb 5
  Armor.SaveAmount 15
  Armor.MaxSaveAmount 125
  +COUNTITEM
  Scale 1.0
  +NOTIMEFREEZE
  +INVENTORY.ALWAYSPICKUP
  States
  {
  Spawn:
    CHR3 A 15 Bright
	CHR3 BCDEFGH 2 Bright
	loop
  }
}

ACTOR SArmorBonus : BasicArmorBonus
{
  Radius 20
  Height 16
  Inventory.PickupMessage "Picked up a Superior Shield Charger."
  Inventory.Icon ""
  Inventory.PickupSound "Armor/Pickup"
  Armor.SavePercent 11.111
  armor.maxfullabsorb 5
  Armor.SaveAmount 25
  Armor.MaxSaveAmount 125
  +COUNTITEM
  Scale 1.11
  +NOTIMEFREEZE
  +INVENTORY.ALWAYSPICKUP
  States
  {
  Spawn:
    CHR4 A 15 Bright
	CHR4 BCDEFGH 2 Bright
	loop
  }
}

Actor DopePack : CustomInventory replaces Backpack
{
  Inventory.PickupSound "Backpack/Pickup"
  Inventory.PickupMessage "You picked up a 555 Industries Hammerspace Backpack"
  +COUNTITEM
  +INVENTORY.ALWAYSPICKUP
  States
  {
  Spawn:
    BPAK A -1
    Loop
  Pickup:
    TNT1 A 0 ACS_NamedExecuteAlways("HammerspaceBackpack")
    Stop
  }
}