// TNT1 A 0 A_SpawnItemEx("MiniNuke", 0, 0, 2)
// TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("MiniKaBoom",random(-100,100),random(-100,100),random(-100,100),random(-4,4),random(-4,4),random(-2,6),random(0,359),SXF_TRANSFERTRANSLATION|SXF_SETMASTER|SXF_NOCHECKPOSITION,40)

ACTOR MiniKaBoom : KaBoom
{
	Scale 1
}

Actor MiniNuke
{
 +NoBlockmap
 +NoGravity
 States
 {
  Spawn:
   TNT1 A 0
   TNT1 A 0 A_PlaySound("Weapons/MiniNukeBoom", 5)
   TNT1 A 0 A_PlaySound("Weapons/DeathheadExplode", 6)
   TNT1 A 0 A_Quake (4, 65, 0, 512)
   TNT1 A 0 A_SpawnItemEx("MiniNukeBoom",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
   TNT1 A 0 A_SpawnItemEx("MiniNukeGLDEF1", 0, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeGLDEF2", 0, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeFlare", 0, 0, 0)
   TNT1 A 5 A_SpawnItemEx("MiniNukeFloor", 0, 0, 0)
   TNT1 AA 0 A_SpawnItemEx("MiniNukeSmokeFloor", 0, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukePillar", 0, 0, 0, 0, 0, 10, 0, 0, 0)
   TNT1 A 55 A_SpawnItemEx("MiniNukeSmokePillar", 0, 0, 0, 0, 0, 10, 0, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeMushroom", 0, 0, 200)
   TNT1 AA 0 A_SpawnItemEx("MiniNukeSmokeMushroom", 0, 0, 200)
   Stop
 }
}

Actor MiniNukeClear
{
 +NoBlockmap
 +NoGravity
 States
 {
  Spawn:
   TNT1 A 0
   TNT1 A 0 A_Quake (4, 65, 0, 512)
   TNT1 A 0 A_Explode(2000, 448, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeGLDEF1", 0, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeGLDEF2", 0, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeFlare", 0, 0, 0)
   TNT1 A 5 A_SpawnItemEx("MiniNukeFloor", 0, 0, 0)
   TNT1 AA 0 A_SpawnItemEx("MiniNukeSmokeFloor", 0, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukePillar", 0, 0, 0, 0, 0, 10, 0, 0, 0)
   TNT1 A 55 A_SpawnItemEx("MiniNukeSmokePillar", 0, 0, 0, 0, 0, 10, 0, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeMushroom", 0, 0, 200)
   TNT1 AA 0 A_SpawnItemEx("MiniNukeSmokeMushroom", 0, 0, 200)
   Stop
 }
}

Actor MiniNukeBoom : NukeBoom
{
 DamageType "Nope"
 States
 {
  Spawn:
   TNT1 A 0
   TNT1 AAAAAAAAAA 2 A_Explode(1000, 448, 0)
   Stop
 }
}

Actor MiniNukeFire : NukeFire
{
 Scale 0.1875
}

Actor MiniNukeSmoke : NukeSmoke
{
 Scale 0.875
}

Actor MiniNukeFlare : NukeFire
{
 Scale 1.5
 +NoInteraction
 States
 {
  Spawn:
   FLAR A 1 Bright A_FadeOut(0.01)
   Wait
 }
}

Actor MiniNukeFloor : MiniNuke
{
+CLIENTSIDEONLY
 States
 {
  Spawn:
   TNT1 A 0
   TNT1 AAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("MiniNukeFire", 0, 0, 0, 0.000001 * Random(0, 300000), 0.000001 * Random(0, 300000), 0, Random(0, 359), 128, 0)
   Stop
 }
}

Actor MiniNukeSmokeFloor : MiniNuke
{
+CLIENTSIDEONLY
 States
 {
  Spawn:
   TNT1 A 0
   TNT1 AAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("MiniNukeSmoke", 0, 0, 0, 0.000001 * Random(0, 300000), 0.000001 * Random(0, 300000), 0, Random(0, 359), 128, 0)
   Stop
 }
}

Actor MiniNukePillar : MiniNuke
{
+CLIENTSIDEONLY
 States
 {
  Spawn:
   TNT1 A 0
   TNT1 AAAAAAAAAAAA 1 A_SpawnItemEx("MiniNukeFire", 0, 0, 0, 0.000001 * Random(0, 100000), 0.000001 * Random(0, 100000), Random(0, -1), Random(0, 359), 128, 0)
   TNT1 A 0 A_SpawnItem("MiniNukeSmokering", 0, 0, 0)
   TNT1 AAAAAAAAAAAA 1 A_SpawnItemEx("MiniNukeFire", 0, 0, 0, 0.000001 * Random(0, 100000), 0.000001 * Random(0, 100000), Random(0, -1), Random(0, 359), 128, 0)
   Stop
 }
}

Actor MiniNukeSmokePillar : MiniNuke
{
+CLIENTSIDEONLY
 States
 {
  Spawn:
   TNT1 A 0
   TNT1 AAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("MiniNukeSmoke", 0, 0, 0, 0.000001 * Random(0, 100000), 0.000001 * Random(0, 100000), 0.000001 * Random(0, -400000), Random(0, 359), 128, 0)
   Stop
 }
}

Actor MiniNukeMushroom : MiniNuke
{
+CLIENTSIDEONLY
 States
 {
  Spawn:
   TNT1 A 0
   TNT1 AAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("MiniNukeFire", 0, 0, 0, 0.000001 * Random(0, 250000), 0.000001 * Random(0, 250000), 0.000001 * Random(-100000, 100000), Random(0, 359), 128, 0)
   Stop
 }
}

Actor MiniNukeSmokeMushroom : MiniNuke
{
+CLIENTSIDEONLY
 States
 {
  Spawn:
   TNT1 A 0
   TNT1 AAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("MiniNukeSmoke", 0, 0, 0, 0.000001 * Random(0, 250000), 0.000001 * Random(0, 250000), 0.000001 * Random(-100000, 100000), Random(0, 359), 128, 0)
   Stop
 }
}

Actor MiniNukeSmokering : MiniNuke
{
+CLIENTSIDEONLY
 States
 {
  Spawn:
   TNT1 A 0
   TNT1 A 0 A_SpawnItemEx("MiniNukeSmoke", 0, 0, 0, 1, 0, 0, 0, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeSmoke", 0, 0, 0, 1, 0, 0, 20, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeSmoke", 0, 0, 0, 1, 0, 0, 40, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeSmoke", 0, 0, 0, 1, 0, 0, 60, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeSmoke", 0, 0, 0, 1, 0, 0, 80, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeSmoke", 0, 0, 0, 1, 0, 0, 100, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeSmoke", 0, 0, 0, 1, 0, 0, 120, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeSmoke", 0, 0, 0, 1, 0, 0, 140, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeSmoke", 0, 0, 0, 1, 0, 0, 160, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeSmoke", 0, 0, 0, 1, 0, 0, 180, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeSmoke", 0, 0, 0, 1, 0, 0, 200, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeSmoke", 0, 0, 0, 1, 0, 0, 220, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeSmoke", 0, 0, 0, 1, 0, 0, 240, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeSmoke", 0, 0, 0, 1, 0, 0, 260, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeSmoke", 0, 0, 0, 1, 0, 0, 280, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeSmoke", 0, 0, 0, 1, 0, 0, 300, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeSmoke", 0, 0, 0, 1, 0, 0, 320, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeSmoke", 0, 0, 0, 1, 0, 0, 340, 0, 0)
   Stop
 }
}

Actor MiniNukeGLDEF1 : MiniNuke
{
+CLIENTSIDEONLY
 States
 {
  Spawn:
   TNT1 A 70
   Stop
 }
}

Actor MiniNukeGLDEF2 : MiniNuke
{
+CLIENTSIDEONLY
 States
 {
  Spawn:
   TNT1 A 105
   Stop
 }
}
