//Test
ACTOR SNMG : Rocket
{
	Speed 100
	States
	{
	Spawn:
	MISL A 50
	Death:
	TNT1 A 0 A_SpawnItemEx("SpaceNukeGreen",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS,0)
	Stop
	}
}

//Particles
ACTOR GreenSpaceNukeParticleTrail : SpaceNukeInheritance
{
	Alpha 0.0
	ReactionTime 25
	Renderstyle Add
	States
	{
	Spawn:
	TNT1 A 0 NoDelay A_SetScale(frandom(2.0,2.5))
	TNT1 A 0 A_Jump(255,"Spawn1","Spawn2","Spawn3")
	Goto Spawn
	Spawn1:
	SNSG A 0
	Goto Twerp
	Spawn2:
	SNSG B 0
	Goto Twerp
	Spawn3:
	SNSG C 0
	Goto Twerp
	Twerp:
	"####" "#" 0 A_FadeIn(0.9)
	goto Main
	Main:
	"####" "#" 0 A_SetScale(ScaleX-0.015,ScaleX)
	"####" "#" 1 Bright A_Countdown
	Loop
	Death:
	"####" "#" 0 A_JumpIf(ScaleX <= 0,"Null")
	"####" "#" 0 A_FadeOut(0.02)
	"####" "#" 1 Bright A_SetScale(ScaleX-0.015,ScaleX)
	Loop
	}
}

ACTOR GreenSpaceNukeParticleStand : GreenSpaceNukeParticleTrail
{
	ReactionTime 250
	Alpha 0.3
	States
	{
	Spawn:
	TNT1 A 0 NoDelay A_SetScale(frandom(1.0,1.5))
	TNT1 A 0 A_Jump(255,"Spawn1","Spawn2","Spawn3")
	Goto Spawn
	Spawn1:
	SNSG A 0
	Goto Twerp
	Spawn2:
	SNSG B 0
	Goto Twerp
	Spawn3:
	SNSG C 0
	Goto Twerp
	Twerp:
	"####" "#" 0 A_FadeIn(0.9)
	goto Main
	Main:
	"####" "#" 1 Bright A_Countdown
	Loop
	}
}

ACTOR GreenSpaceNukeParticleBlast : GreenSpaceNukeParticleStand
{
	DamageType Tiberium
	ReactionTime 250
	Alpha 0.6
	+FORCERADIUSDMG
	+NOCLIP
	States
	{
	Spawn:
	TNT1 A 0 NoDelay A_SetScale(frandom(1.0,1.5))
	TNT1 A 0 A_Jump(255,"Spawn1","Spawn2","Spawn3")
	Goto Spawn
	Spawn1:
	SNSG A 0
	Goto Twerp
	Spawn2:
	SNSG B 0
	Goto Twerp
	Spawn3:
	SNSG C 0
	Goto Twerp
	Twerp:
	"####" "#" 0 A_FadeIn(0.9)
	goto Main
	Main:
	"####" "#" 0 A_Explode(200,1024,0)
	"####" "#" 1 Bright A_Countdown
	Loop
	}
}

ACTOR GreenSpaceNukeParticleBlastShort : GreenSpaceNukeParticleTrail
{
	Alpha 0.3
	+FORCERADIUSDMG
	+BLOODLESSIMPACT
	+NOCLIP
	DamageType Tiberium
	States
	{
	Spawn:
	TNT1 A 0 NoDelay A_SetScale(frandom(0.5,1.0))
	TNT1 A 0 A_Jump(255,"Spawn1","Spawn2","Spawn3")
	Goto Spawn
	Spawn1:
	SNSG A 0
	Goto Twerp
	Spawn2:
	SNSG B 0
	Goto Twerp
	Spawn3:
	SNSG C 0
	Goto Twerp
	Twerp:
	"####" "#" 0 A_FadeIn(0.9)
	goto Main
	Main:
	"####" "#" 0 A_Explode(20,256,0)
	"####" "#" 0 A_JumpIf(ScaleX <= 0,"Null")
	"####" "#" 0 A_FadeOut(0.05)
	"####" "#" 1 Bright A_SetScale(ScaleX-0.015,ScaleX)
	Loop
	}
}


ACTOR GreenSpaceNukeParticleHuge : SpaceNukeInheritance
{
	Alpha 0.1
	ReactionTime 155
	Renderstyle Add
	States
	{
	Spawn:
	TNT1 A 40 NoDelay A_SetScale(15)
	SNSG F 0
	Goto Twerp
	Twerp:
	"####" "####################" 1 A_FadeIn(0.035)
	goto Main
	Main:
	"####" "#" 1 Bright A_Countdown
	Loop
	Death:
	"####" "#" 0 A_FadeOut(0.0025)
	"####" "#" 1 Bright A_SetScale(ScaleX-0.05,ScaleY-0.05)
	Loop
	}
}

ACTOR GreenSpaceNukeParticleHugeSphere : SpaceNukeInheritance
{
	Alpha 0.09
	ReactionTime 25
	Renderstyle Add
	States
	{
	Spawn:
	TNT1 A 20 NoDelay A_SetScale(30)
	SNSG F 0
	Goto Twerp
	Twerp:
	"####" "###################" 1 A_FadeIn(0.05)
	goto Main
	Main:
	"####" "#" 1 Bright A_Countdown
	Loop
	Death:
	"####" "#" 0 A_FadeOut(0.01)
	"####" "#" 1 Bright A_SetScale(ScaleX+0.25,ScaleY+0.25)
	Loop
	}
}


ACTOR GreenSpaceNukeParticle1
{
	Radius 6
	Height 5
	Projectile
	-NOGRAVITY
	Gravity 0.1
	States
	{
	Spawn:
	TNT1 A 0 NoDelay A_SpawnItemEx("GreenSpaceNukeParticleTrail",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	TNT1 A 0 A_PlaySound("GreenSpaceMissile/Fly",5,1.0,1)
	TNT1 A 1 A_Jump(26,"WeNeedToGoDeeper")
	Loop
	Death:
	Stop
	WeNeedToGoDeeper:
	TNT1 A 0 A_Jump(13,"Stoplo")
	Goto Spawn
	Stoplo:
	TNT1 A 0 A_Stop
	"####" "#" 0 A_StopSound(5)
	TNT1 A 0 A_SpawnItemEx("GreenSpaceNukeParticleStand",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	Stop
	Death:
	"####" "#" 0 A_StopSound(5)
	"####" "#" 0 A_SpawnItemEx("GreenSpaceMissileImpact",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
	Stop
	}
}

ACTOR GreenSpaceNukeParticle2 //Flies further
{
	Radius 6
	Height 5
	Projectile
	+NOGRAVITY
	States
	{
	Spawn:
	TNT1 A 0 NoDelay A_SpawnItemEx("GreenSpaceNukeParticleTrail",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	TNT1 A 0 A_PlaySound("GreenSpaceMissile/Fly",5,1.0,1)
	TNT1 A 1 A_Jump(20,"WeNeedToGoDeeper")
	Loop
	Death:
	Stop
	WeNeedToGoDeeper:
	TNT1 A 0 A_Jump(10,"Stoplo")
	Goto Spawn
	Stoplo:
	TNT1 A 0 A_Stop
	"####" "#" 0 A_StopSound(5)
	"####" "#" 0 A_SpawnItemEx("GreenSpaceNukeParticleStand",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	Stop
	Death:
	"####" "#" 0 A_StopSound(5)
	"####" "#" 0 A_SpawnItemEx("GreenSpaceMissileImpact",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
	Stop
	}
}

ACTOR GreenSpaceNukeParticle3 : FastProjectile //Flies indefinitely
{
	Radius 6
	Height 5
	Projectile
	+NOGRAVITY
	Scale 0
	Alpha 0.99
	Renderstyle Add
	MissileType GreenSpaceNukeParticleTrail
	States
	{
	Spawn:
	TNT1 A 0 NoDelay A_SetScale(frandom(2.0,2.5))
	TNT1 A 0 A_PlaySound("GreenSpaceMissile/Fly",5,1.0,1)
	TNT1 A 0 A_Jump(255,"Spawn1","Spawn2","Spawn3")
	Goto Spawn
	Spawn1:
	SNSG A 0
	Goto Twerp
	Spawn2:
	SNSG B 0
	Goto Twerp
	Spawn3:
	SNSG C 0
	Goto Twerp
	Twerp:
	"####" "#" 1 //A_SpawnItemEx("GreenSpaceNukeParticleTrail",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	Loop
	Death:
	"####" "#" 0 A_StopSound(5)
	"####" "#" 0 A_SpawnItemEx("GreenSpaceMissileImpact",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
	Stop
	}
}

ACTOR GreenSpaceNukeParticleGuided3 : FastProjectile //Flies indefinitely
{
	Radius 6
	Height 5
	Projectile
	+NOGRAVITY
	+SEEKERMISSILE
	Scale 0
	Alpha 0.99
	Renderstyle Add
	MissileType GreenSpaceNukeParticleTrail
	States
	{
	Spawn:
	TNT1 A 0 NoDelay A_SetScale(frandom(2.0,2.5))
	TNT1 A 0 A_PlaySound("GreenSpaceMissile/Fly",5,1.0,1)
	TNT1 A 0 A_Jump(255,"Spawn1","Spawn2","Spawn3")
	Goto Spawn
	Spawn1:
	SNSG A 0
	Goto Twerp
	Spawn2:
	SNSG B 0
	Goto Twerp
	Spawn3:
	SNSG C 0
	Goto Twerp
	Twerp:
	"####" "#" 1 A_SeekerMissile(40,40,SMF_LOOK|SMF_PRECISE|SMF_CURSPEED,255,40) //A_SpawnItemEx("GreenSpaceNukeParticleTrail",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	Loop
	Death:
	"####" "#" 0 A_StopSound(5)
	"####" "#" 0 A_SpawnItemEx("GreenSpaceMissileImpact2",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
	Stop
	}
}

Actor GreenSpaceNukeReversalParticle
{
	Scale 0.4
	Alpha 0.0
	RenderStyle Add
	ReactionTime 165
	DamageType Tiberium
	+NOINTERACTION
	+NOGRAVITY
	+NOBLOCKMAP
	+FORCERADIUSDMG
	+BLOODLESSIMPACT
	States
	{
		Spawn:
			TNT1 A 0
			TNT1 A 5
			TNT1 A 1 A_ScaleVelocity(-0.035)
			TNT1 A 0 A_PlaySound("GreenSpaceMissile/Fly",5,1.0,1)
		Looplet:
			TNT1 A 1 A_SpawnItemEx("GreenSpaceNukeParticleTrail",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
			TNT1 A 0 A_Explode(15,684,0)
			TNT1 A 0 A_Countdown
			Loop
		Death:
			TNT1 A 0 A_StopSound(5)
			Stop
	}
}

ACTOR GreenSpaceNukeParticle4 : SpaceNukeInheritance //Single particles
{
	ReactionTime 35
	Renderstyle Add
	Projectile
	var int user_margaryna;
	States
	{
	Spawn:
	TNT1 AA 0 A_SetScale(2.0,2.5)
	TNT1 A 0 A_Jump(255,"Spawn1","Spawn2","Spawn3")
	Goto Spawn
	Spawn1:
	SNSG A 0
	Goto Twerp
	Spawn2:
	SNSG B 0
	Goto Twerp
	Spawn3:
	SNSG C 0
	Goto Twerp
	Twerp:
	"####" "#" 0 A_FadeIn(Random(0.8,0.9))
	goto Main
	Main:
	"####" "#" 0 A_JumpIf(user_margaryna==70,"Maslo")
	"####" "#" 1 Bright A_SetUserVar("user_margaryna",user_margaryna+1)
	Loop
	Maslo:
	"####" "#" 0 A_FadeOut(0.025)
	"####" "#" 1 Bright A_SetScale(ScaleX-0.015,ScaleY-0.015)
	Loop
	}
}

ACTOR GreenSpaceNukeParticle5 : SpaceNukeInheritance //Single particles, fading in and whack flight
{
	Alpha 0.0
	ReactionTime 60
	Renderstyle Add
	Projectile
	var int user_margaryna;
	States
	{
	Spawn:
	TNT1 AA 0 A_SetScale(2.0,2.5)
	TNT1 A 0 A_SetUserVar("user_margaryna",0)
	TNT1 A 0 A_Jump(255,"Spawn1","Spawn2","Spawn3")
	Goto Spawn
	Spawn1:
	SNSG A 0
	Goto Twerp
	Spawn2:
	SNSG B 0
	Goto Twerp
	Spawn3:
	SNSG C 0
	Goto Twerp
	Twerp:
	"####" "#" 0 A_FadeIn(Random(0.05,0.075))
	"####" "#" 1 A_JumpIf(Alpha>=0.9,"Main")
	Loop
	Main:
	"####" "#" 0 A_JumpIf(user_margaryna==70,"Maslo")
	"####" "#" 0 A_ChangeVelocity (frandom(-2.4, 2.4), frandom(-2.4, 2.4), frandom(-2.4, 2.4), 0)
	"####" "#" 1 Bright A_SetUserVar("user_margaryna",user_margaryna+1)
	Loop
	Maslo:
	"####" "#" 0 A_FadeOut(0.05)
	"####" "#" 1 Bright A_SetScale(ScaleX-0.015,ScaleY-0.015)
	Loop
	}
}

//Blasts
ACTOR GreenSpaceNukeBlast1
{
  +NOGRAVITY
  +NOINTERACTION
  Renderstyle Add
  Alpha 0.6
  Scale 0.5
  States
  {
  Spawn:
  TNT1 A 0
  Looplet:
  TNT1 A 0 A_SetScale(ScaleX +0.28, ScaleY +0.28)
  TNT1 A 0 A_FadeOut(0.004)
  SNSI E 1 Bright
  Loop
  }
}

ACTOR GreenSpaceNukeBlast2 : GreenSpaceNukeBlast1
{
  Scale 0.6
  States
  {
  Spawn:
  TNT1 A 1
  Looplet:
  TNT1 A 0 A_SetScale(ScaleX +0.38, ScaleY +0.38)
  TNT1 A 0 A_FadeOut(0.004)
  SNSI I 1 Bright
  Loop
  }
}

ACTOR GreenSpaceNukeBlast3 : GreenSpaceNukeBlast1
{
  Scale 0.7
  States
  {
  Spawn:
  TNT1 A 2
  Looplet:
  TNT1 A 0 A_SetScale(ScaleX +0.48, ScaleY +0.48)
  TNT1 A 0 A_FadeOut(0.004)
  SNSI G 1 Bright
  Loop
  }
}

ACTOR GreenSpaceNukeBlast4 : GreenSpaceNukeBlast1
{
  Scale 0.8
  States
  {
  Spawn:
  TNT1 A 3
  Looplet:
  TNT1 A 0 A_SetScale(ScaleX +0.64, ScaleY +0.64)
  TNT1 A 0 A_FadeOut(0.004)
  SNSI H 1 Bright
  Loop
  }
}

ACTOR GreenSpaceNukeBlast5 : GreenSpaceNukeBlast1
{
  Scale 0.9
  States
  {
  Spawn:
  TNT1 A 3
  Looplet:
  TNT1 A 0 A_SetScale(ScaleX +0.84, ScaleY +0.84)
  TNT1 A 0 A_FadeOut(0.004)
  SNSI F 1 Bright
  Loop
  }
}

ACTOR GreenSpaceNukeInitBlast1 : GreenSpaceNukeBlast1
{
  Scale 0.5
  States
  {
  Spawn:
  TNT1 A 0
  Looplet:
  TNT1 A 0 A_SetScale(ScaleX +0.1, ScaleY +0.1)
  TNT1 A 0 A_FadeOut(0.005)
  SNSI E 1 Bright
  Loop
  }
}

ACTOR GreenSpaceNukeInitBlast2 : GreenSpaceNukeBlast1
{
  Scale 0.6
  States
  {
  Spawn:
  TNT1 A 1
  Looplet:
  TNT1 A 0 A_SetScale(ScaleX +0.125, ScaleY +0.125)
  TNT1 A 0 A_FadeOut(0.005)
  SNSI I 1 Bright
  Loop
  }
}

ACTOR GreenSpaceNukeInitBlast3 : GreenSpaceNukeBlast1
{
  Scale 0.7
  States
  {
  Spawn:
  TNT1 A 2
  Looplet:
  TNT1 A 0 A_SetScale(ScaleX +0.15, ScaleY +0.15)
  TNT1 A 0 A_FadeOut(0.005)
  SNSI H 1 Bright
  Loop
  }
}

ACTOR GreenSpaceNukeInitBlast4 : GreenSpaceNukeBlast1
{
  Scale 0.8
  States
  {
  Spawn:
  TNT1 A 3
  Looplet:
  TNT1 A 0 A_SetScale(ScaleX +0.175, ScaleY +0.175)
  TNT1 A 0 A_FadeOut(0.005)
  SNSI G 1 Bright
  Loop
  }
}

ACTOR GreenSpaceNukeInitBlast5 : GreenSpaceNukeBlast1
{
  Scale 0.9
  States
  {
  Spawn:
  TNT1 A 3
  Looplet:
  TNT1 A 0 A_SetScale(ScaleX +0.2, ScaleY +0.2)
  TNT1 A 0 A_FadeOut(0.005)
  SNSI F 1 Bright
  Loop
  }
}

//Lightnings
ACTOR GreenSpaceNukeLightning : SpaceNukeInheritance
{
	Renderstyle Add
	Scale 1.5
	Alpha 0.99
	States
	{
	Spawn:
	TNT1 A 0 A_Jump(255,"Spawn1A","Spawn1B","Spawn1C","Spawn1D","Spawn2A","Spawn2B","Spawn2C","Spawn2D")
	Goto Spawn
	Spawn1A:
	1LIT A 0
	Goto Twerp
	Spawn1B:
	1LIT B 0
	Goto Twerp
	Spawn1C:
	1LIT C 0
	Goto Twerp
	Spawn1D:
	1LIT D 0
	Goto Twerp
	Spawn2A:
	2LIT A 0
	Goto Twerp
	Spawn2B:
	2LIT B 0
	Goto Twerp
	Spawn2C:
	2LIT A 0
	Goto Twerp
	Spawn2D:
	2LIT D 0
	Goto Twerp
	Twerp:
	"####" "#" 0 A_FadeOut(0.05)
	"####" "#" 1 A_SetScale(ScaleX+0.05,ScaleX)
	Loop
	}
}


//Main actor
ACTOR SpaceNukeGreen : SpaceNukeInheritance
{
	States
	{
	Spawn:
	TNT1 A 0 NoDelay A_PlaySound("SpaceNuke/Init",6,1.0,0,ATTN_NONE)
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 A_SpawnItemEx("GreenSpaceNukeAura",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	TNT1 A 0 A_SpawnItemEx("GreenSpaceNukeInitBlast",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	TNT1 A 0 A_SpawnItemEx("GreenSpaceNukeParticleHuge",0,0,0,0,0,0,0,SXF_CLIENTSIDE) //Huge particle in center
	TNT1 A 0 A_SpawnItemEx("GreenSpaceNukeLightningStorm1",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	TNT1 A 0 A_SpawnItemEx("GreenSpaceNukeParticleStorm",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)  //Particles Outward
	TNT1 A 0 A_SpawnItemEx("GreenSpaceNukeParticleStormReverse",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS) //Particles Inward
	TNT1 A 0 A_SpawnItemEx("GreenSpaceNukeParticleStorm2",0,0,0,0,0,0,0,SXF_CLIENTSIDE) //Single Particle with large alpha
	TNT1 A 0 A_SpawnItemEx("GreenSpaceNukeParticleStorm3",0,0,0,0,0,0,0,SXF_CLIENTSIDE) //Single Particle with large alpha, but constant spawn
	TNT1 A 0 A_SpawnItemEx("GreenSpaceNukeSphere",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
	TNT1 A 0 A_SpawnItemEx("GreenSpaceNukeWaver",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
	Stop
	}
}

ACTOR GreenSpaceNukeAura : SpaceNukeInheritance
{
	Renderstyle Add
	Alpha 0.99
	ReactionTime 35
	States
	{
	Spawn:
	SNSG E 0
	SNSG E 0 A_JumpIf(ScaleX>=95,"FullOn")
	SNSG E 1 Bright A_SetScale(ScaleX+0.5,ScaleX)
	Loop
	FullOn:
	SNSG E 1 Bright A_Countdown
	Loop
	Death:
	SNSG E 1 Bright A_SetScale(ScaleX-0.5,ScaleX)
	SNSG E 0 A_JumpIf(ScaleX<=0.5,"TehEnd")
	Loop
	TehEnd:
	SNSG A 0
	Stop
	}
}

ACTOR GreenSpaceNukeInitBlast : SpaceNukeInheritance
{
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("GreenSpaceNukeInitBlast1",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	TNT1 A 0 A_SpawnItemEx("GreenSpaceNukeInitBlast2",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	TNT1 A 0 A_SpawnItemEx("GreenSpaceNukeInitBlast3",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	TNT1 A 0 A_SpawnItemEx("GreenSpaceNukeInitBlast4",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	TNT1 A 0 A_SpawnItemEx("GreenSpaceNukeInitBlast5",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	Stop
	}
}

ACTOR GreenSpaceNukeBlast : SpaceNukeInheritance
{
	States
	{
	Spawn:
	TNT1 A 35
	//TNT1 A 0 A_SpawnItemEx("GreenSpaceNukeBlast1",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	//TNT1 A 0 A_SpawnItemEx("GreenSpaceNukeBlast2",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	//TNT1 A 0 A_SpawnItemEx("GreenSpaceNukeBlast3",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	TNT1 A 0 A_SpawnItemEx("GreenSpaceNukeBlast4",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	TNT1 A 0 A_SpawnItemEx("GreenSpaceNukeBlast5",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	Stop
	}
}

ACTOR GreenSpaceNukeLightningStorm1 : SpaceNukeInheritance
{
	ReactionTime 65
	States
	{
	Spawn:
	TNT1 AAA 0 A_SpawnItemEx("GreenSpaceNukeLightning",random(260,-260),random(260,-260),random(260,-260),frandom(0.5,2.0),frandom(0.5,2.0),frandom(frandom(0.5,2.0),frandom(-0.5,-2.0)),frandom(0.0,360.0),SXF_CLIENTSIDE)
	TNT1 A 1 A_Countdown
	Loop
	Death:
	Stop
	}
}

ACTOR GreenSpaceNukeLightningStorm2 : SpaceNukeInheritance
{
	ReactionTime 115
	States
	{
	Spawn:
	TNT1 AAA 0 A_SpawnItemEx("GreenSpaceNukeLightning",random(560,-560),random(560,-560),random(560,-560),frandom(0.5,2.0),frandom(0.5,2.0),frandom(frandom(0.5,2.0),frandom(-0.5,-2.0)),frandom(0.0,360.0),SXF_CLIENTSIDE)
	TNT1 A 1 A_Countdown
	Loop
	Death:
	Stop
	}
}

ACTOR GreenSpaceNukeParticleStorm : SpaceNukeInheritance //Particles with trail
{
	ReactionTime 65
	States
	{
	Spawn:
	TNT1 A 0
	Looplolololo:
	TNT1 A 0 A_Countdown
	TNT1 A 0 A_SpawnItemEx("GreenSpaceNukeParticle1",random(80,-80),random(80,-80),random(80,-80),frandom(3.5,20.0),frandom(3.5,20.0),frandom(frandom(-20.0,-3.5),frandom(20.0,3.5)),frandom(0.0,360.0),SXF_TRANSFERPOINTERS)
	TNT1 A 0 A_SpawnItemEx("GreenSpaceNukeParticle2",random(80,-80),random(80,-80),random(80,-80),frandom(3.5,20.0),frandom(3.5,20.0),frandom(frandom(-20.0,-3.5),frandom(20.0,3.5)),frandom(0.0,360.0),SXF_TRANSFERPOINTERS)
	Loop
	TehEnd:
	Stop //STAHP
	}
}

ACTOR GreenSpaceNukeParticleStorm2 : SpaceNukeInheritance //Single particles blast
{
	ReactionTime 40
	States
	{
	Spawn:
	TNT1 A 0
	Looplolololo:
	TNT1 A 0 A_Countdown
	TNT1 A 0 A_SpawnItemEx("GreenSpaceNukeParticle4",random(80,-80),random(80,-80),random(80,-80),frandom(9.5,18.0),frandom(9.5,18.0),frandom(frandom(-18.0,-9.5),frandom(18.0,9.5)),frandom(0.0,360.0),SXF_NOCHECKPOSITION)
	Loop
	TehEnd:
	Stop //STAHP
	}
}

ACTOR GreenSpaceNukeParticleStorm3 : SpaceNukeInheritance //Single particles constant spawn
{
	ReactionTime 205
	States
	{
	Spawn:
	TNT1 A 20
	Looplolololo:
	TNT1 A 0 A_Countdown
	TNT1 A 1 A_SpawnItemEx("GreenSpaceNukeParticle5",random(160,-160),random(160,-160),random(160,-160),frandom(12.5,18.0),frandom(12.5,18.0),frandom(frandom(-18.0,-12.5),frandom(18.0,12.5)),frandom(0.0,360.0),SXF_NOCHECKPOSITION)
	Loop
	TehEnd:
	Stop //STAHP
	}
}

ACTOR GreenSpaceNukeParticleStorm4 : SpaceNukeInheritance //Particles on end blast
{
	ReactionTime 85
	States
	{
	Spawn:
	TNT1 A 15
	Looplolololo:
	TNT1 A 0 A_Countdown
	TNT1 A 0 A_SpawnItemEx("GreenSpaceNukeParticle1",random(160,-160),random(160,-160),random(160,-160),frandom(3.5,18.0),frandom(3.5,18.0),frandom(frandom(-18.0,-3.5),frandom(18.0,3.5)),frandom(0.0,360.0),SXF_TRANSFERPOINTERS)
	Loop
	TehEnd:
	Stop //STAHP
	}
}

ACTOR GreenSpaceNukeParticleStorm5 : GreenSpaceNukeParticleStorm3 //Single particles constant spawn, shorter
{
	ReactionTime 50
}


ACTOR GreenSpaceNukeParticleStormReverse : SpaceNukeInheritance
{
	ReactionTime 70
	States
	{
	Spawn:
	TNT1 A 240
	Looplolololo:
	TNT1 A 0 A_Countdown
	TNT1 A 0 A_SpawnItemEx("GreenSpaceNukeReversalParticle", 0, 0, 0, FRandom(250.0, 225.0),FRandom(250.0, 225.0), FRandom(FRandom(250.0,225.0),Frandom(-250.0,-225.0)), FRandom(0.0,360.0), SXF_TRANSFERPOINTERS)
	Loop
	TehEnd:
	Stop //STAHP
	}
}

ACTOR GreenSpaceNukeWaver : SpaceNukeInheritance
{
	ReactionTime 16
	States
	{
	Spawn:
	TNT1 A 35
	Looplet:
	TNT1 A 0 A_PlaySound("SpaceNuke/Active",5,0.8,0)
	TNT1 AAAAAAAAAA 0 A_SpawnItemEx("GreenSpaceNukeParticleGuided3",random(10,-10),random(10,-10),random(10,-10),frandom(190.0,215.0),frandom(190.0,215.0),frandom(frandom(-190.0,-215.0),frandom(190.0,215.0)),frandom(0.0,360.0),SXF_TRANSFERPOINTERS,32)
	TNT1 A 28 A_Countdown
	Loop
	}
}

//Phase two

Actor GreenSpaceNukeSphere
{
	Scale 0.2
	Alpha 0.0
	RenderStyle Add
	Projectile
	+NOINTERACTION
	+NOGRAVITY
	+FORCERADIUSDMG
	+BLOODLESSIMPACT
	DamageType Tiberium
	var int user_sasquatch;
	ReactionTime 35
	States
	{
	Spawn:
	TNT1 A 405 A_SetUserVar("user_sasquatch",0)
	GRNB A 0 A_SpawnItemEx("GreenSpaceNukeLightningStorm2")
	GRNB A 0 A_SpawnItemEx("GreenSpaceNukeParticleHugeSphere")
	Trolololo:
	"####" "#" 0 A_JumpIf(user_sasquatch==100,"Kapusta")
	"####" "#" 0 A_SetUserVar("user_sasquatch",user_sasquatch+1)
	"####" "#" 0 A_FadeIn(0.01)
	"####" "#" 0 A_Explode(50,512*ScaleX,0)
	"####" "#" 1 Bright A_SetScale(ScaleX+0.05,ScaleX)
	Loop
	Kapusta:
	"####" "#" 0 A_Explode(50,512*ScaleX,0)
	"####" "#" 1 Bright A_Countdown
	Loop
	Death:
	"####" "#" 0 A_AlertMonsters
	"####" "#" 0 A_SpawnItemEx("GreenSpaceNukeLightningStorm2",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	"####" "#" 0 A_SpawnItemEx("GreenSpaceNukeParticleStorm2",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	"####" "#" 0 A_SpawnItemEx("GreenSpaceNukeParticleStorm5",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	"####" "#" 0 A_SpawnItemEx("GreenSpaceNukeParticleStorm4",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
	"####" "#" 0 A_SpawnItemEx("GreenSpaceNukeBlast",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	"####" "#" 0 A_SpawnItemEx("GreenSpaceNukeWaveGenerator",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
	"####" "#" 0 A_SpawnItemEx("GreenSpaceNukeSoundBlaster",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	"####" "#" 0 A_SpawnItemEx("GreenSpaceNukeStarburst",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
	//"####" "#" 0 A_SpawnItemEx("GreenSpaceNukeSuperExplosion",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
	Bigos:
	"####" "#" 0 A_Fadeout(0.02)
	"####" "#" 1 Bright A_SetScale(ScaleX-0.1,ScaleX)
	Loop
	}
}

ACTOR GreenSpaceNukeWaveGenerator : SpaceNukeInheritance
{
	+NOCLIP
	States
	{
	Spawn:
	TNT1 A 25
	TNT1 AAAAAA random(1,2) ACS_NamedExecute("SpaceNukeWave", 0, random(0, 65535), random(4096, 12288), 2)
	Stop
	}
}

ACTOR GreenSpaceMissileImpact : SpaceNukeInheritance
{
	+FORCERADIUSDMG
	+BLOODLESSIMPACT
	+NOCLIP
	DamageType Tiberium
	States
	{
	Spawn:
	TNT1 A 0 NoDelay A_Explode((1500),1024,0)
	Rest:
	TNT1 A 0 A_SpawnItemEx("GreenSpaceMissileImpactLeftover",0,0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	TNT1 A 0 A_PlaySound("SpaceMissile/Blast",5,1.0,0)
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 A_SpawnItemEx("GreenSpaceMissileRing",0,0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	TNT1 AAA 0 A_SpawnItemEx("GreenSpaceMissileLightningSpawner",0,0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	TNT1 AAAA random(1,2) ACS_NamedExecute("SpaceNukeWave", 0, random(0, 65535), random(4096, 12288), 3)
	TNT1 A 20
	Stop
	}
}

ACTOR GreenSpaceMissileImpact2 : GreenSpaceMissileImpact
{
	States
	{
	Spawn:
	TNT1 A 0 NoDelay A_Explode((300),384,0)
	TNT1 A 0 A_Jump(256,"Rest")
	Stop
	}
}

ACTOR GreenSpaceMissileRing : SpaceNukeInheritance
{
	Renderstyle Add
	Alpha 0.99
	Scale 0.5
	States
	{
	Spawn:
	SNSW A 0 NoDelay A_SetScale(ScaleX + frandom(0.5,0.9), ScaleX)
	SNSW A 1 Bright A_FadeOut(frandom(0.1,0.05))
	Loop
	}
}

ACTOR GreenSpaceMissileImpactLeftover : SpaceNukeInheritance
{
	Alpha 0.09
	Renderstyle Add
	Scale 10
	States
	{
	Spawn:
	SNSG F 0 A_FadeIn(frandom(0.05,0.1))
	"####" "#" 0 A_JumpIf(Alpha >= 0.9,"Main")
	"####" "#" 1 Bright A_SetScale(ScaleX+0.1,ScaleX)
	Loop
	Main:
	"####" "#" 0 A_JumpIf(ScaleX <= 0, "Null")
	"####" "#" 0 A_FadeOut(frandom(0.05,0.02))
	"####" "#" 1 Bright A_SetScale(ScaleX-0.25,ScaleX)
	Loop
	}
}

ACTOR GreenSpaceMissileLightningSpawner : SpaceNukeInheritance
{
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 AAAAAAAA random(1,7) A_SpawnItemEx("GreenSpaceNukeLightning",random(50,-50),random(50,-50),random(50,-50),frandom(0.5,2.0),frandom(0.5,2.0),frandom(frandom(0.5,2.0),frandom(-0.5,-2.0)),frandom(0.0,360.0),SXF_CLIENTSIDE)
	Stop
	}
}

ACTOR GreenSpaceNukeSoundBlaster : SpaceNukeInheritance
{
	States
	{
	Spawn:
	"####" "#" 25
	"####" "#" 0 A_PlaySound("SpaceNuke/BigBang",5,1.0,0,ATTN_NONE)
	Stop
	}
}

ACTOR GreenSpaceNukeStarburst : SpaceNukeInheritance
{
	ReactionTime 20
	States
	{
	Spawn:
	TNT1 A 25
	Looplolololo:
	TNT1 A 0 A_Countdown
	TNT1 AAAA 0 A_SpawnItemEx("GreenSpaceNukeParticle3",random(40,-40),random(40,-40),random(40,-40),frandom(190.0,215.0),frandom(190.0,215.0),frandom(frandom(-190.0,-215.0),frandom(190.0,215.0)),frandom(0.0,360.0),SXF_TRANSFERPOINTERS,32)
	TNT1 A random(2,5)
	Loop
	Death:
	Stop
	}
}

ACTOR GreenSpaceNukeSuperExplosion : SpaceNukeInheritance
{
	DamageType Tiberium
	var int User_Expand;
	ReactionTime 105
	States
	{
	Spawn:
	TNT1 A 0 NoDelay A_Explode(250,1024+(512*User_Expand),0)
	TNT1 A 0 A_SetUserVar("User_Expand", User_Expand + 1)
	TNT1 A 1 A_Countdown
	Loop
	Death:
	Stop
	}
}