ACTOR InvulnerabilitySphere2 : InvulnerabilitySphere replaces InvulnerabilitySphere
{
  Powerup.Type "GodMode"
  Powerup.Color Yellow, 0.05
  Inventory.PickupSound "Invulnerability/Pickup"
  Renderstyle Add
  +FLOATBOB
  States
  {
  Spawn:
    TBIS A 0 A_SpawnItemEx("InvulFade",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
    TBIS AAAA 1 Bright A_SpawnItemEx("InvulsphereParticle",frandom(10.0,-10.0),frandom(10.0,-10.0),35+frandom(10.0,-10.0),frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(1.2,0.4),frandom(0.0,360.0),SXF_CLIENTSIDE,64)
	TBIS B 0 A_SpawnItemEx("InvulFade",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
    TBIS BBBB 1 Bright A_SpawnItemEx("InvulsphereParticle",frandom(10.0,-10.0),frandom(10.0,-10.0),35+frandom(10.0,-10.0),frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(1.2,0.4),frandom(0.0,360.0),SXF_CLIENTSIDE,64)
	TBIS A 0 A_SpawnItemEx("InvulFade",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
    TBIS CCCC 1 Bright A_SpawnItemEx("InvulsphereParticle",frandom(10.0,-10.0),frandom(10.0,-10.0),35+frandom(10.0,-10.0),frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(1.2,0.4),frandom(0.0,360.0),SXF_CLIENTSIDE,64)
	TBIS A 0 A_SpawnItemEx("InvulFade",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
    TBIS DDDD 1 Bright A_SpawnItemEx("InvulsphereParticle",frandom(10.0,-10.0),frandom(10.0,-10.0),35+frandom(10.0,-10.0),frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(1.2,0.4),frandom(0.0,360.0),SXF_CLIENTSIDE,64)
	TBIS E 0 A_SpawnItemEx("InvulFade",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
    TBIS EEEE 1 Bright A_SpawnItemEx("InvulsphereParticle",frandom(10.0,-10.0),frandom(10.0,-10.0),35+frandom(10.0,-10.0),frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(1.2,0.4),frandom(0.0,360.0),SXF_CLIENTSIDE,64)
	TBIS F 0 A_SpawnItemEx("InvulFade",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
    TBIS FFFF 1 Bright A_SpawnItemEx("InvulsphereParticle",frandom(10.0,-10.0),frandom(10.0,-10.0),35+frandom(10.0,-10.0),frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(1.2,0.4),frandom(0.0,360.0),SXF_CLIENTSIDE,64)
	TBIS E 0 A_SpawnItemEx("InvulFade",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
    TBIS EEEE 1 Bright A_SpawnItemEx("InvulsphereParticle",frandom(10.0,-10.0),frandom(10.0,-10.0),35+frandom(10.0,-10.0),frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(1.2,0.4),frandom(0.0,360.0),SXF_CLIENTSIDE,64)
	TBIS D 0 A_SpawnItemEx("InvulFade",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
    TBIS DDDD 1 Bright A_SpawnItemEx("InvulsphereParticle",frandom(10.0,-10.0),frandom(10.0,-10.0),35+frandom(10.0,-10.0),frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(1.2,0.4),frandom(0.0,360.0),SXF_CLIENTSIDE,64)
	TBIS C 0 A_SpawnItemEx("InvulFade",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
    TBIS CCCC 1 Bright A_SpawnItemEx("InvulsphereParticle",frandom(10.0,-10.0),frandom(10.0,-10.0),35+frandom(10.0,-10.0),frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(1.2,0.4),frandom(0.0,360.0),SXF_CLIENTSIDE,64)
	TBIS B 0 A_SpawnItemEx("InvulFade",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
    TBIS BBBB 1 Bright A_SpawnItemEx("InvulsphereParticle",frandom(10.0,-10.0),frandom(10.0,-10.0),35+frandom(10.0,-10.0),frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(1.2,0.4),frandom(0.0,360.0),SXF_CLIENTSIDE,64)
	Loop
  }
}

ACTOR PowerGodMode : PowerInvulnerable
{
  Powerup.Duration -30
  Inventory.Icon "GDMOD0"
}

ACTOR InvulFade
{
  +NOGRAVITY
  +NOINTERACTION
  +NOTONAUTOMAP
  Renderstyle Add
  States
  {
  Spawn:
	TBIS C 1 A_FadeOut(0.12)
	TBIS C 0 A_SetScale(ScaleX+0.02,ScaleX)
	Loop
  }
}

ACTOR InvulsphereParticle : ItemParticle
{
	States
	{
	Spawn:
	GPRT A 0
	SetScale:
	"####" "#" 0 A_SetScale(0.1)
	Main:
	"####" "#" 0 A_JumpIf(ScaleX <= 0,"NULL")
	"####" "#" 0 A_FadeOut(frandom(0.02,0.04))
	"####" "#" 0 A_ChangeVelocity(0,0,frandom(-0.1,0.15),CVF_RELATIVE)
	"####" "#" 1 Bright A_SetScale(ScaleX-frandom(-0.01,0.02))
	Loop
	}
}