/*
CREDITS:

Graphics:
Gun graphics source - Bulletstorm (People can Fly, Epic Games)
Gun graphics & sounds rip - Folks from AEoD, you save the day again, and I owe you huge thanks for that!
Sticky bomb ammo & sticky bomb projectile - Shadow Warrior (3DRealms)
Explosions - ??
Pickup - Zrrion the Insect

Sounds:
Up, Reload - Bulletstorm (People can Fly, Epic Games)
Fire - Serious Sam 1 & 2 & 3 (Croteam)
Fly & Roll - ??
Alt Fire - Wolfenstein:ET & Team Fortress (ID Software, Valve Software)
KA-BOOOM!! - I think it's pretty obvious, buuut... Team Fortress 2. (Valve)
Explode - ?? & Quake 2 (ID Software)
*/

ACTOR Steamroller : Weapon 24535
{
   //$Category Weapons
   //$Title Pantokrator
   //$Sprite STIGX0
   Inventory.PickupSound "misc/w_pkup"
   Inventory.PickupMessage "You got the ''Steamroller'' cannon! You know what they say about Steamrollers?... They can't slip on a banana peel. (5)"
   Obituary "%o was rolled over %k's ''Steamroller''."
   Weapon.UpSound "Steamroller/Up"
   Weapon.SelectionOrder 4
   Weapon.AmmoType "100MMAmmo"
   Weapon.AmmoGive 12
   Weapon.AmmoUse 2
   Weapon.AmmoType2 "SteamClip"
   Weapon.AmmoGive2 0
   Weapon.AmmoUse2 1
   Weapon.Kickback 5
   Weapon.SlotNumber 5
   +NOAUTOFIRE
   +ALT_AMMO_OPTIONAL
   Scale 1
   States
   {
   Spawn:
      STIG X -1
      Loop
   Ready:
      STIG A 1 Offset(0,32) A_WeaponReady
	  TNT1 A 0 A_JumpIfInventory("RO_GotoReload", 1, "Reload")
	  TNT1 A 0 A_JumpIfInventory("RO_GotoZoom", 1, "Zoom")
      Loop
   Deselect:
      STIG A 0 A_ZoomFactor(1)
      STIG A 1 A_Lower
      STIG A 0 A_Lower
      Loop
   Select:
      STIG A 1 A_Raise
      STIG A 0 A_Raise
      Loop
   Fire:
      STIF A 0 A_GunFlash
      STIF A 0 A_Recoil(18)
      STIF A 0 A_AlertMonsters
      STIF A 0 A_PlaySound("Steamroller/Fire",1)
      STIF A 0 A_PlaySound("Weapons/FistcannonFire",5)
	  STIF A 0 A_FireCustomMissile("Canonball2",0,1,8,0)
	  STIF A 0 A_FireCustomMissile("CannonMuzzle",0,0,10,11)
      STIF A 0 A_SetPitch(pitch-6)
      STIF A 0 A_SetAngle(angle-4)
      STIG A 1 Bright Offset(6,38) A_ZoomFactor(0.6)
      STIF A 0 A_SetPitch(pitch-4)
      STIF A 0 A_SetAngle(angle-3)
      STIG A 1 Bright Offset(12,44) A_ZoomFactor(0.65)
      STIF A 1 Bright Offset(0,32) A_ZoomFactor(0.7)
      STIF A 1 Bright Offset(6,38) A_ZoomFactor(0.75)
      STIF B 1 Offset(0,32) A_ZoomFactor(0.8)
      STIF B 1 Offset(6,38) A_ZoomFactor(0.85)
      STIF C 1 Offset(0,32) A_ZoomFactor(0.9)
      STIF C 1 Offset(6,38) A_ZoomFactor(0.955)
      STIF D 1 Offset(0,32) A_ZoomFactor(0.965)
      STIF D 1 Offset(6,38) A_ZoomFactor(0.975)
      STIF E 1 Offset(0,32) A_ZoomFactor(0.985)
      STIF E 1 Offset(6,38) A_ZoomFactor(0.995)
      STIG A 1 Offset(10,42) A_ZoomFactor(1)
      STIG A 1 Offset(6,38)
      STIG A 1 Offset(4,36)
      STIG A 1 Offset(3,35)
      STIG A 1 Offset(2,34)
      STIG A 1 Offset(1,33)
      STIG A 1 Offset(0,32)
      STIG A 12
      Goto Ready
   AltFire:
      STIF A 0 A_JumpIfInventory("SteamClip",1,1)
	  Goto Nope
      TNT1 A 0 A_GiveInventory("StickyOut",1)
      STIF A 0 A_AlertMonsters
      STIF A 0 A_GunFlash
      STIF A 0 A_Recoil(9)
      STIF A 0 A_PlaySound("Steamroller/AltFire",1)
      //STIF A 0 A_PlaySound("Weapons/FistcannonFire",5)
	  STIF A 0 A_FireCustomMissile("SteamrollerStickyBomb",0,1,8,0)
	  //STIF A 0 A_FireCustomMissile("CannonMuzzle",0,0,10,11)
      STIF A 0 A_SetPitch(pitch-3)
      STIF A 0 A_SetAngle(angle-2)
      STIG A 1 Bright Offset(6,38) A_ZoomFactor(0.95)
      STIG A 1 Bright Offset(12,44) A_ZoomFactor(0.92)
      STIF A 1 Bright Offset(0,32) A_ZoomFactor(0.93)
      STIF A 1 Bright Offset(6,38) A_ZoomFactor(0.94)
      STIF B 1 Offset(0,32) A_ZoomFactor(0.95)
      STIF B 1 Offset(6,38) A_ZoomFactor(0.96)
      STIF C 1 Offset(0,32) A_ZoomFactor(0.97)
      STIF C 1 Offset(6,38) A_ZoomFactor(0.98)
      STIF D 1 Offset(0,32) A_ZoomFactor(0.99)
      STIF D 1 Offset(6,38) A_ZoomFactor(0.995)
      STIF E 1 Offset(0,32) A_ZoomFactor(1)
      STIF E 1 Offset(6,38)
      STIG A 1 Offset(10,42)
      STIG A 1 Offset(6,38)
      STIG A 1 Offset(4,36)
      STIG A 1 Offset(3,35)
      STIG A 1 Offset(2,34)
      STIG A 1 Offset(1,33)
      STIG A 1 Offset(0,32)
      STIG A 3
      Goto Ready
   Nope:
      STIG A 0 A_PlaySound("Weapons/ComradeMode",6)
      RPGT G 0 A_Quake (1, 6, 0, 3, none)
      STIG A 1 Offset(1,33)
      STIG A 1 Offset(2,34)
      STIG A 1 Offset(4,36)
      STIG A 1 Offset(3,34)
      STIG A 1 Offset(2,33)
      STIG A 1 Offset(1,33)
      STIG A 5 Offset(0,32)
	  Goto Ready
   Reload:
      STIG A 0 A_JumpIfInventory("SteamReloading",1,"ReloadMain")
      STIG A 0 A_JumpIfInventory("SteamClip",8,"Ready")
      STIG A 0 A_JumpIfInventory("100MMAmmo",3,1)
      Goto Ready
      STIG A 0 A_GiveInventory("SteamReloading",1)
      STIG A 1 Offset(-1,33)
      STIG A 1 Offset(-2,34)
      STIG A 1 Offset(-3,35)
      STIG A 1 Offset(-4,36)
      STIG A 1 Offset(-7,38)
      STIG A 1 Offset(-8,40)
      STIG A 1 Offset(-10,43)
      STIG A 1 Offset(-12,44)
      STIG A 1 Offset(-13,45)
   ReloadMain:
      STIG A 0 
      STIG A 0 A_JumpIfInventory("100MMAmmo",3,1)
      goto ReloadDone
	  STIR ABCDEFG 1
      STIR A 0 A_PlaySound("Steamroller/Reload",6)
      STIR A 0 A_Quake (2, 6, 0, 3, none)
      STIR HIKLM 1
      STIG A 14
   InnerSequence:
      STIG A 0 A_JumpifInventory("SteamClip",8,"Reset")
      STIG A 0 A_JumpifInventory("100MMAmmo",3,1)
      Goto Reset
      STIG A 0 A_GiveInventory("SteamSequence",1)		//
      STIG A 0 A_GiveInventory("SteamClip",1)
      STIG A 0 A_TakeInventory("100MMAmmo",3,TIF_NOTAKEINFINITE)
      STIG A 0 A_JumpifInventory("SteamSequence",2,"Reset")	//
	Goto InnerSequence				//
   Reset:
      STIG A 0 A_TakeInventory("SteamSequence",2)	//
      STIG A 0 A_JumpIfInventory("SteamClip",8,"ReloadDone")
	  TNT1 A 0 A_JumpIfInventory("RO_GotoReload", 1, "Reload")
      STIG A 5 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE|WRF_NOSWITCH)
   ReloadDone:
      STIG A 1 Offset(-13,45)
      STIG A 0 A_TakeInventory("SteamReloading",1)
      STIG A 1 Offset(-12,44)
      STIG A 1 Offset(-10,43)
      STIG A 1 Offset(-8,40)
      STIG A 1 Offset(-7,38)
      STIG A 1 Offset(-4,36)
      STIG A 1 Offset(-3,35)
      STIG A 1 Offset(-2,34)
      STIG A 1 Offset(-1,33)
      STIG A 3 Offset(0,32)
      Goto Ready
   Zoom:
      STIG A 0 A_JumpIfInventory("StickyOut",3,"KhaBoom")
      STIG A 0 A_PlaySound("Steamroller/Trigger",5)
      STIG A 0 A_TakeInventory("StickyOut",99)
      STIG A 1 Offset(1,33) A_GiveInventory("SteamrollerTrigger",1)
      STIG A 1 Offset(2,34)
      STIG A 1 Offset(3,35)
	  STIG A 1 Offset(2,34)
	  STIG A 1 Offset(1,33)
	  STIG A 11 Offset(0,32)
      STIG A 16 A_TakeInventory("SteamrollerTrigger",1)
	  Goto Ready
   KhaBoom:
      STIG A 0 A_PlaySound("Weapons/KhaBoom",2,1.0,0,ATTN_NONE)
      Goto Zoom+1
   Flash:
      TNT1 A 4 Bright A_Light2
      TNT1 A 4 Bright A_Light1
      TNT1 A 0 Bright A_Light0
      Stop
   }
}

ACTOR SteamClip : Ammo //Stickys loaded
{
   Inventory.MaxAmount 8
   Inventory.Icon STKBC0
   +IGNORESKILL
}

ACTOR SteamSequence : Inventory //Reload sequence 3x3 ammo
{
   Inventory.MaxAmount 3
}

ACTOR SteamrollerTrigger : Inventory //Detonator
{
   Inventory.MaxAmount 1
}

ACTOR SteamReloading : Inventory //Mandatory for proper reload sequence
{
   Inventory.MaxAmount 1
}

ACTOR StickyOut : Inventory //If you have 3 stickys or more lying around - the KHA-BOOOOM sound is played during detonation
{
   Inventory.MaxAmount 3
}

Actor Canonball2
{
  speed 80
  radius 18
  height 12
  obituary "%o was ran over by %k's cannonball."
  DeathSound ""
  MaxStepHeight 24
  //ProjectileKickBack 5
  //BounceSound "Weapons/FistcannonBounce"
  //BounceType Grenade
  //WallBounceFactor 1
  //BounceCount 5
  Scale 2
  Projectile
  -NOGRAVITY
  -EXPLODEONWATER
  +THRUGHOST
  +STEPMISSILE
  +DROPOFF
  +NOEXPLODEFLOOR
  +DONTBLAST
  +RIPPER
  +FORCERADIUSDMG
  +BLOODLESSIMPACT
  //+BOUNCEONWALLS
  states
  {
  Spawn:
    CANB A 0
    CANB A 0 A_PlaySound("Steamroller/Roll",5,1.0,1)
    CANB A 0 A_PlaySound("Steamroller/Fly",6,1.0,1)
    CANB A 0 ThrustThingZ(0, 30, 0, 1)
  Looplet:
    CANB A 0 A_Explode(1800,24,0,0)
    TNT1 A 0 A_SpawnItemEx("CanonballSmokeTrail",random(5,-5),random(5,-5),20+random(5,-5),0,0,0,0)
	TNT1 AAAA 0 A_SpawnItemEx("KDRO_FalconFlame", FRandom(-10, 10),
									FRandom(-10, 10), 20,
									FRandom(-4.5, -8.8), FRandom(-1.0, 1.0),
									FRandom(-1.0, 1.0), 0, SXF_CLIENTSIDE, 10)
    CANB A 1 A_SpawnItemEx("CanonballTrail2",0,0,0,0,0,0,0,128)
    Loop
  Death:
    TNT1 A 0 A_NoGravity
    TNT1 A 0 A_StopSound(5)
    TNT1 A 0 A_StopSound(6)
    TNT1 A 0 A_PlaySound("Weapons/PushkaExp")

    TNT1 A 0 A_JumpIfInTargetInventory("NukerUpgrade",1,"NukerDeath")
    TNT1 A 0 A_SpawnItemEx("DeathheadExplode",0,0,0,0,0,0,0,128,0)
    TNT1 A 0 A_Explode(150,384,0,1)
    TNT1 A 0 A_Explode(300,192,1,1)
    TNT1 BCD 6
    Stop
  NukerDeath:
    TNT1 A 0 A_SpawnItemEx("NukerDeathheadExplode",0,0,0,0,0,0,0,128,0)
    TNT1 A 0 A_Explode(300,576,0,1)
    TNT1 A 0 A_Explode(600,288,1,1)
    TNT1 BCD 6
    Stop
  }
}

ACTOR CanonballTrail2
{
  +NOINTERACTION
  +NOGRAVITY
  +CLIENTSIDEONLY
  Scale 2
  Renderstyle Normal
  States
  {
  Spawn:
  TNT1 A 0
  TNT1 A 0 //A_SetScale(ScaleX-0.05,ScaleY-0.05)
  CANB A 1 A_FadeOut(0.1)
  Loop
  }
}

ACTOR CanonballSmokeTrail
{
  RenderStyle Normal
  Scale 0.5
  Alpha 0.35
  +NOINTERACTION
  +CLIENTSIDEONLY
  +NOGRAVITY
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_FadeOut(0.01)
    TNT1 A 0 A_Jump(255,"TrailA","TrailB","TrailC","TrailD")
  TrailA:
    NSMK A 3
  Looper:
    NSMK A 0 //A_SetScale(ScaleX +0.005, ScaleY +0.005)
    NSMK A 1 A_FadeOut(0.01)
    Loop
  TrailB:
    NSMK B 3
  Looper:
    NSMK B 0 //A_SetScale(ScaleX +0.005, ScaleY +0.005)
    NSMK B 1 A_FadeOut(0.01)
    Loop
  TrailC:
    NSMK C 3
  Looper:
    NSMK C 0 //A_SetScale(ScaleX +0.005, ScaleY +0.005)
    NSMK C 1 A_FadeOut(0.01)
    Loop
  TrailD:
    NSMK D 3
  Looper:
    NSMK D 0 //A_SetScale(ScaleX +0.005, ScaleY +0.005)
    NSMK D 1 A_FadeOut(0.01)
    Loop
  }
}

Actor SteamrollerStickyBomb
{
    Radius 16
    Height 12
    Speed 40
    Damage 0
    Health 10
    Projectile
    //ProjectileKickBack 70
    +SHOOTABLE
    +NOBLOOD
    +NOICEDEATH
    +DONTRIP
    +SEEKERMISSILE
    +DONTSPLASH
    +DONTFALL
    +FORCERADIUSDMG
    -NOGRAVITY
    Gravity 0.65
    Scale 0.7
    States
    {
    Spawn:
	TNT1 A 0 
	TNT1 A 0 ThrustThingZ(0,random(12,16),0,1)
	STKB AAABBB 1 A_JumpIfInTargetInventory("SteamrollerTrigger",1,"Death")
	Goto Spawn+2
    Death:
    	TNT1 A 0 A_JumpIfInTargetInventory("NukerUpgrade",1,"DeathNuker")
	TNT1 A 1 A_PlaySound("Weapons/StickyBombThud")
	TNT1 A 0 A_SpawnItemEx("SteamrollerWallie",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
	Stop
    DeathNuker:
	TNT1 A 1 A_PlaySound("Weapons/StickyBombThud")
	TNT1 A 0 A_SpawnItemEx("SteamrollerWallieNuker",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
	Stop
    XDeath:
	Goto Stick
      TNT1 A 0 A_PlaySound("Weapons/BeefExplode",5,1.0)
      TNT1 A 0 A_SpawnItemEx("DeathHeadShock",0,0,20,0,0,0,0,128,0)
      TNT1 A 0 A_SpawnItemEx("SteamExploder",0,0,0,0,0,0,0,128,0)
      
      TNT1 A 0 A_JumpIfInTargetInventory("NukerUpgrade",1,"NukerDeath")
      TNT1 A 0 A_Explode(400,256)
      TNT1 A 0 A_SpawnItemEx("SteamShockBoomSpawner",0,0,20,0,0,0,0,SXF_TRANSFERPOINTERS,0)
      TNT1 A 0 A_SpawnItemEx("SteamShockSmokeSpawner",0,0,20,0,0,0,0,128,0)
      TNT1 BCD 6
      Stop
    NukerDeath:
      TNT1 A 0 A_Explode(800,384)
      TNT1 A 0 A_SpawnItemEx("SteamShockNukerFlashSpawner",0,0,20,0,0,0,0,128,0)
      TNT1 A 0 A_SpawnItemEx("SteamShockNukerBoomSpawner",0,0,20,0,0,0,0,SXF_TRANSFERPOINTERS,0)
      TNT1 A 0 A_SpawnItemEx("SteamShockNukerSmokeSpawner",0,0,20,0,0,0,0,128,0)
      TNT1 BCD 6
      Stop
    Stick:
	TNT1 A 0 A_Stop
	TNT1 A 0 A_SeekerMissile(0,0,1,256,0)
	SBMB B 1 Bright A_Fire(35)
	TNT1 A 0 A_SeekerMissile(0,0,1,256,0)
	SBMB B 1 Bright A_Fire(35)
	TNT1 A 0 A_SeekerMissile(0,0,1,256,0)
    Looplet:
   	STKB B 0 A_JumpIfInTargetInventory("SteamrollerTrigger",1,"Death")
	STKB B 1 A_Fire(35)
	Loop
    }
}

actor SteamrollerWallie
{
  Radius 0
  Height 0
  Speed 0
  Health 10
  Mass 999999999
  //ProjectileKickBack 70
  +NOGRAVITY
  +FRIENDLY
  +SHOOTABLE
  +NOBLOOD
  +DONTFALL
  +NOICEDEATH
  +DONTRIP
  +LOOKALLAROUND
  Obituary "%o was blasted by %k's power sticky bomb."
  Scale 0.7
  States
  {
  Spawn:
    STKB A 1 A_JumpIfInTargetInventory("SteamrollerTrigger", 1, "Death")
    loop
  See:
    STKB A 1 A_JumpIfInTargetInventory("SteamrollerTrigger", 1, "Death")
    loop
  Death:
    TNT1 A 0 A_PlaySound("Weapons/BeefExplode",5,1.0)
    TNT1 A 0 A_SpawnItemEx("DeathHeadShock",0,0,20,0,0,0,0,128,0)
    TNT1 A 0 A_SpawnItemEx("SteamExploder",0,0,0,0,0,0,0,128,0)
    TNT1 A 0 A_AlertMonsters
    TNT1 A 0 A_Explode(400,256)
    TNT1 A 0 A_SpawnItemEx("SteamShockBoomSpawner",0,0,20,0,0,0,0,SXF_TRANSFERPOINTERS,0)
    TNT1 A 0 A_SpawnItemEx("SteamShockSmokeSpawner",0,0,20,0,0,0,0,128,0)
    TNT1 BCD 6
    Stop
  }
}

actor SteamrollerWallieNuker : SteamrollerWallie
{
  States
  {
  Death:
    TNT1 A 0 A_TakeFromTarget("StickyOut",1)
    TNT1 A 0 A_PlaySound("Weapons/BeefExplode",5,1.0)
    TNT1 A 0 A_SpawnItemEx("DeathHeadShock",0,0,20,0,0,0,0,128,0)
    TNT1 A 0 A_SpawnItemEx("SteamExploder",0,0,0,0,0,0,0,128,0)
    TNT1 A 0 A_AlertMonsters
    TNT1 A 0 A_Explode(800,384)
    TNT1 A 0 A_SpawnItemEx("SteamShockNukerFlashSpawner",0,0,20,0,0,0,0,128,0)
    TNT1 A 0 A_SpawnItemEx("SteamShockNukerBoomSpawner",0,0,20,0,0,0,0,SXF_TRANSFERPOINTERS,0)
    TNT1 A 0 A_SpawnItemEx("SteamShockNukerSmokeSpawner",0,0,20,0,0,0,0,128,0)
    TNT1 BCD 6
    Stop
  }
}

ACTOR SteamExploder
{
	+NOINTERACTION
	+NOGRAVITY
	+CLIENTSIDEONLY
	ReactionTime 7
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_Countdown
	TNT1 A 3 A_SpawnItemEx("SteamExplode",random(4,-4),random(4,-4),random(4,-4),frandom(0.15,0.25),frandom(0.15,0.25),frandom(0.25,0.35),random(0,359),SXF_CLIENTSIDE,0)
	Loop
	Death:
	TNT1 A 42
	Stop
	}
}

ACTOR SteamExplode
{ 
	+NOINTERACTION
	+CLIENTSIDEONLY
	+NOGRAVITY
	Renderstyle Add
	Scale 2.75
	States
	{
	Spawn:
	GRXP ABCDEFGHIJKLMNOPQRSTUVWXYZ 2 Bright //A_SetScale(ScaleX+0.01,ScaleY+0.01)
	Stop
	}
}

ACTOR SteamShockBoomSpawner
{
	+NOINTERACTION
	+NOGRAVITY
	ReactionTime 125
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_Countdown
	TNT1 A 0 A_SpawnItemEx("SteamBoom",frandom(12,-12),frandom(12,-12),frandom(12,-12),frandom(9,8.5),frandom(9,8.5),frandom(1.2,-1.2),random(0,359),SXF_TRANSFERPOINTERS,0)
	Loop
	Death:
	TNT1 A 1
	Stop
	}
}

ACTOR SteamBoom
{
	+NOINTERACTION
	+NOGRAVITY
	+FORCERADIUSDMG
	//ProjectileKickBack 50
	Renderstyle Add
	States
	{
	Spawn:
	GLX1 ABCDE 3 Bright A_Explode(20,128,0)
	GLX2 FGHI 3 Bright A_Explode(20,128,0)
	GLX3 JJJKKKLLL 1 A_FadeOut(0.075)
	Stop
	}
}

ACTOR SteamShockSmokeSpawner
{
	+NOINTERACTION
	+NOGRAVITY
	+CLIENTSIDEONLY
	ReactionTime 55
	States
	{
	Spawn:
	TNT1 A 0 A_Countdown
	TNT1 A 0 A_SpawnItemEx("SteamSmokeTrailer",frandom(2,-2),frandom(2,-2),frandom(2,-2),frandom(8,7.5),frandom(8,7.5),frandom(1.2,-1.2),random(0,359),128,0)
	Loop
	Death:
	TNT1 A 1
	Stop
	}
}

ACTOR SteamSmokeTrailer
{
	+NOINTERACTION
	+NOGRAVITY
	+CLIENTSIDEONLY
	ReactionTime 4
	States
	{
	Spawn:
	TNT1 A 8
	Looplet:
	TNT1 A 0 A_Countdown
	TNT1 A 8 A_SpawnItemEx("DeathHeadSmoke",random(15,-15),random(15,-15),random(15,-15),frandom(2,1),frandom(2,1),frandom(1.2,-1.2),random(0,359),128,0)
	Loop
	Death:
	TNT1 A 1
	Stop
	}
}

//NUKER UPGRADE

ACTOR SteamShockNukerFlashSpawner
{
	+NOINTERACTION
	+CLIENTSIDEONLY
	+NOGRAVITY
	ReactionTime 20
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_Countdown
	TNT1 A 0 A_SpawnItemEx("NukerPushkaFlash",frandom(12,-12),frandom(12,-12),frandom(12,-12),frandom(15,15.5),frandom(15,15.5),frandom(1.2,-1.2),random(0,359),128,0)
	Loop
	Death:
	TNT1 A 1
	Stop
	}
}

ACTOR SteamShockNukerBoomSpawner
{
	+NOINTERACTION
	+NOGRAVITY
	ReactionTime 65
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_Countdown
	TNT1 A 0 A_SpawnItemEx("NukerPushkaExploder",frandom(12,-12),frandom(12,-12),frandom(12,-12),frandom(15,15.5),frandom(15,15.5),frandom(1.2,-1.2),random(0,359),SXF_TRANSFERPOINTERS,0)
	Loop
	Death:
	TNT1 A 1
	Stop
	}
}

ACTOR SteamShockNukerSmokeSpawner
{
	+NOINTERACTION
	+CLIENTSIDEONLY
	+NOGRAVITY
	ReactionTime 35
	States
	{
	Spawn:
	TNT1 A 0 A_Countdown
	TNT1 A 0 A_SpawnItemEx("NukerPushkaSmoker",frandom(2,-2),frandom(2,-2),frandom(2,-2),frandom(13,13.5),frandom(13,13.5),frandom(1.2,-1.2),random(0,359),128,0)
	Loop
	Death:
	TNT1 A 1
	Stop
	}
}
