Edit Smoke/(Particle?) effects for BFG 9500 mod

Ask about editing graphics, sounds, models, music, etc here!
Shaders (GLSL) and SNDINFO questions also go here!

Moderators: GZDoom Developers, Raze Developers

Forum rules
Before asking on how to use a ZDoom feature, read the ZDoom wiki first. If you still don't understand how to use a feature, then ask here.
User avatar
Twitchy2019
Posts: 176
Joined: Wed Jan 04, 2017 8:27 pm
Location: My Foot,Your Face! (Team Monster)

Edit Smoke/(Particle?) effects for BFG 9500 mod

Post by Twitchy2019 »

Hi, I am posting here to list out a mod that fires a nuke in Brutal Doom and Project Brutality, the BFG 9500 addon. What I am trying to do is reduce the amount of the smoke effects and how long they linger to reduce the performance cost of the mod. The code will be posted. I am aware of the Nuke Launcher in Brutal Doom v21. I want to use the BFG9500 one because it has a chance of replacing the BFG9000 in game unlike the BD Nuke Launcher.


Here is the code:

Code: Select all

/*
================================================================================
Code and sprites taken from:
ArmageDoom
RussianOverkill
D4T

Weapon Sprite by Carrot

Assembled and edited by Collegia Titanica

================================================================================
*/
ACTOR BFG9500 : BFG9000
{
	Weapon.SelectionOrder 1300
	Weapon.AmmoUse 1
	Weapon.AmmoGive 1
	Weapon.AmmoType "OneTimeNuke"
	Inventory.PickupSound "BFGREADY"
	+NOAUTOFIRE
	Inventory.PickupMessage "You got the BFG 9500K! The Holy Grail of Firepower! (slot 9)"
		Weapon.PreferredSkin "BFG-Marine"
	States
	{
	Ready:
		BF9G A 1 A_WeaponReady
		Loop
	Deselect:
		BF9G A 1 A_Lower																		//BFGG A
		Loop
	Select:
		BF9G A 1 A_Raise
		Loop
	Fire:
		BF9G A 20 A_BFGsound							
		BF9G A 20 A_GunFlash
		BF9G A 0 A_SetBlend("ff 33 00",0.20,24)		
		BF9G A 20 A_FireCustomMissile ("BFG9500Bullet",0,1,0,0,0)
		BF9G A 10																				
		Goto Ready
	Flash:
		BF9G A 40 Bright A_Light1												//BFGF AAABBCCDDEFEDDCCBBAA 2
		Goto LightDone
	Spawn:
		BF2G AB 10
		Loop
	}
}

ACTOR BFG9500Bullet
{
	Radius 12
	Height 8
	Speed 25
	Damage 400
	Projectile
	+RANDOMIZE
	+DEHEXPLOSION
	+EXTREMEDEATH
	RenderStyle Add
	Alpha 0.75
	Decal BFGScorch1
	SeeSound "weapons/bfgx"
	DeathSound "DSNUKXPL"
	Obituary "$OB_MPROCKET"
	ExplosionDamage 1399
	ExplosionRadius 600
	DamageType Desintegration
	States
	{
	Spawn:
		BFGM ABCDEF 1 BRIGHT
		Loop
	Death:
	TNT1 A 0 A_SpawnItemEx("NukeBig", 0, 0, 5, 0, 0, 0, 0,SXF_TRANSFERPOINTERS|SXF_NOCHECKPOSITION)
	TNT1 A 0 A_SpawnItemEx("KaBoomer",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS,0)
	TNT1 A 0 A_SpawnItemEx("Radiation",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
	

   
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, 0)
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, -7.5) 
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, 7.5) 
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, -15)   
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, 15)
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, -22.5) 
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, 22.5)  
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, -30)  
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, 30)
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, -37.5)   
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, 37.5)  
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, -45)  
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, 45)  
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, -52.5)  
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, 52.5)  
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, -60)  
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, 60)  
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, -67.5)
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, 67.5) 
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, -75)  
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, 75)  
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, -82.5)  
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, 82.5)  
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, -90)
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, 90)
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, -97.5)    
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, 97.5)  
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, -105)
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, 105)
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, -112.5)   
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, 112.5)  
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, -120)
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, 120)
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, -127.5)
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, 127.5)
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, -135)
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, 135)
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, -142.5)
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, -142.5)
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, -150)
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, 150)
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, -157.5)
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, -157.5)
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, -165)
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, -165)
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, -172.5)
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, 172.5)
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, -180)
NULL A 0 A_CustomMissile("NukeRing3", 0, 0, 180)                   


   
	    BPLO B 1 A_Explode
		TNT1 A 0 Radius_Quake (20, 100, 0, 20, 0)
		TNT1 A 0 Radius_Quake (10, 100, 0, 40, 0)
		TNT1 A 0 Radius_Quake (5, 100, 0, 120, 0)
		TNT1 AAAA 0 Bright A_SpawnItem("NuclearMushroom",0,0,0)
		TNT1 AAAA 0 Bright A_SpawnItem("NuclearFlare",0,0,0)
		TNT1 A 20
		TNT1 AAAAAAAAAAAAAAAAAAAAAAA 4 Bright A_SpawnItem("NuclearMushroom2",0,0,0)
		TNT1 A 0
		
		
		Stop
	}
}

/*
	100SmallFireFocusSpawnerz

*/



ACTOR NuclearMushroom
{
   Radius 8
   Height 40
   PROJECTILE
   RENDERSTYLE Add
   DamageType Burn
   ALPHA 0.99
   DONTHURTSHOOTER
   +NOCLIP
   +NOGRAVITY
   +NOEXPLODEFLOOR
   +NODAMAGETHRUST
   +THRUGHOST
   Scale 6.0
   States
   {
   Spawn:
      BFE1 ABCDEFGHIJKL 4 BRIGHT
      Stop
   }
}

ACTOR NuclearMushroom2: NuclearMushroom
{
   States
   {
   Spawn:
      BFE1 HIJKL 4 BRIGHT
      Stop
   }
}

ACTOR NuclearFlare: NuclearMushroom
{
Alpha 0.7
Scale 4.0
+FORCEXYBILLBOARD
+NOCLIP
   States
   {
   Spawn:
      FLAR IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 1 BRIGHT
      FLAR IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 1 Bright A_FadeOut(0.005)
	  FLAR IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 1 Bright A_FadeOut(0.01)
      Stop
   }
}



ACTOR NukeRing3
{
Speed 6
+NONSHOOTABLE+NOTELEPORT+NOCLIP+NOBLOCKMAP+EXTREMEDEATH
+NOGRAVITY
RenderStyle None
Alpha 1.0
YScale 0.5
XScale 0.5
Obituary "%o was terminated by %k's nuclear rocket."
States
{
Spawn:

TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 4 BRIGHT A_CustomMissile("Kaboooooom", 0, 0, 0)
Stop
   }
}


ACTOR NukeRing4
{
Speed 32
+NONSHOOTABLE+NOTELEPORT+NOCLIP+NOBLOCKMAP+EXTREMEDEATH
+NOGRAVITY
RenderStyle Add
Alpha 1.0
Scale 3.0
Obituary "%o was terminated by %k's nuclear rocket."
States
{
Spawn:


BBOM ABCCCCDDDDDDDDDEEEEEEEEFFFFGHIJKL 1 BRIGHT A_CustomMissile("Kaboooooom", 0, 0, 0)
NULL A 0
Stop
   }
}


ACTOR Kaboooooom
{
Speed 0
+NOBLOCKMAP
+NOGRAVITY
+NOCLIP
+NONSHOOTABLE
+EXTREMEDEATH
+FORCERADIUSDMG
+PAINLESS
Decal GiantScorch
ExplosionDamage 11
ExplosionRadius 250
DamageType Burn
Scale 1.0
//SeeSound "weapons/rocklx"
States
{
Spawn:
NULL A 9 BRIGHT
Stop
   }
}


ACTOR KaBoom
{
	Scale 4
	Renderstyle Add
	DamageType "Superweapon"
	PROJECTILE
	+NOINTERACTION
	+NOGRAVITY
	States
	{   
	Spawn:
	BIGB ABCDEFGHIJ 2 Bright
	BIGB KLMNOP 2 Bright A_Explode(4500,768,0)
	BIGB QRSTU 2 Bright
	Stop
	}
}

ACTOR KaBoomer
{
    +NOGRAVITY
    +NOINTERACTION
    States
	{
	Spawn:
    TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("KaBoom",random(-100,100),random(-100,100),random(-100,100),random(-4,4),random(-4,4),random(-2,6),random(0,359),SXF_TRANSFERTRANSLATION|SXF_TRANSFERPOINTERS|SXF_NOCHECKPOSITION,40)
	Stop
	}
}

//NUKE

Actor NukeBig
{
 +NoBlockmap
 +NoGravity
 +NoInteraction
 Radius 0
 Height 0
 States
 {
  Spawn:
   TNT1 A 0 NoDelay A_PlaySound("STLNBOOM",0,0.4,false,ATTN_NONE)
   TNT1 A 0 A_PlaySound("MININUEK",0)
   TNT1 A 0 A_Quake(7, 100, 0, 9096, "none")
   TNT1 A 0 A_SpawnItemEx("NukeBoom",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
   TNT1 A 0 A_SpawnItemEx("NukeBoomLethal",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
   TNT1 A 0 A_SpawnItemEx("NukeFlare1", 0, 0, 0, 0, 0, 0, 0)
   TNT1 A 25 A_SpawnItemEx("NukeFloor", 0, 0, 0, 0, 0, 0, 0)
   TNT1 AA 0 A_SpawnItemEx("NukeSmokeFloor", 0, 0, 0, 0, 0, 0, 0)
   TNT1 A 0 A_SpawnItemEx("NukePillar", 0, 0, 0, 0, 0, 10, 0)
   TNT1 A 0 A_PlaySound("Bomb1")
   TNT1 A 2 A_PlaySound("AtomBurn")
   TNT1 A 105 A_SpawnItemEx("NukeSmokePillar", 0, 0, 0, 0, 0, 10, 0)
   TNT1 A 0 A_SpawnItemEx("NukeMushroom", 0, 0, 800, 0, 0, 0, 0)
   TNT1 AA 0 A_SpawnItemEx("NukeSmokeMushroom", 0, 0, 800, 0, 0, 0, 0)

   Stop
 }
}

Actor NukeBoom
{
 +NoBlockmap
 +NoGravity
 +ForceRadiusDmg
 DamageType "Superweapon"
 States
 {
  Spawn:
   TNT1 A 0
   TNT1 AAAAAAAAAA 2 A_Explode(550, 1536, 0, 1)
   Stop
 }
}

Actor NukeBoomLethal
{
 +NoBlockmap
 +NoGravity
 +ForceRadiusDmg
 DamageType "Superweapon"
 States
 {
  Spawn:
   TNT1 A 0
   TNT1 AAAAAAAAAA 2 A_Explode(750, 768, 1)
   Stop
 }
}

Actor NukeFire : NukeBig
{
 RenderStyle Add
 +NoInteraction
 +DONTSPLASH
 +EXPLODEONWATER
 Scale 0.75
 States
 {
  Spawn:
   TNT1 AA 0 A_Jump(196, "Spawn2", "Spawn3", "Spawn4")
   FLA1 A 1 Bright A_FadeOut(0.01)
   Wait
  Spawn2:
   FLA2 A 1 Bright A_FadeOut(0.01)
   Wait
  Spawn3:
   FLA3 A 1 Bright A_FadeOut(0.01)
   Wait
  Spawn4:
   FLA4 A 1 Bright A_FadeOut(0.01)
   Wait
 }
}

Actor NukeSmoke : NukeBig
{
 Scale 3.5
 +NoInteraction
 +DONTSPLASH
 +EXPLODEONWATER
 Alpha 0.5
 States
 {
  Spawn:
   TNT1 A 0 NoDelay A_Jump(256, "Spawn1", "Spawn2", "Spawn3", "Spawn4")
  Spawn1:
   NSMK A 0
   Goto Main
  Spawn2:
   NSMK B 0
   Goto Main
  Spawn3:
   NSMK C 0
   Goto Main
  Spawn4:
   NSMK D 0
   Goto Main
  Main:
   "####" "#" 5 A_FadeOut(0.007)
   Loop
 }
}

Actor NukeFlare1 : NukeFire
{
 Scale 8
 +NoInteraction
 +ForceXyBillboard
 States
 {
  Spawn:
   FLAR I 1 Bright A_FadeOut(0.005)
   Wait
 }
}

Actor NukeFloor : NukeBig
{
 States
 {
  Spawn:
   TNT1 A 0
   TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("NukeFire", 0, 0, 0, 0.00001 * Random(0, 300000), 0.00001 * Random(0, 300000), 0, Random(0, 359), 128, 0)
   Stop
 }
}

Actor NukeSmokeFloor : NukeBig
{
 States
 {
  Spawn:
   TNT1 A 0
   TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("NukeSmoke", 0, 0, 0, 0.00001 * Random(0, 300000), 0.00001 * Random(0, 300000), 0, Random(0, 359), 128, 0)
   Stop
 }
}

Actor NukePillar : NukeBig
{
 States
 {
  Spawn:
   TNT1 A 0
   TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("NukeFire", 0, 0, 0, 0.00001 * Random(0, 100000), 0.00001 * Random(0, 100000), Random(0, -3), Random(0, 359), 128, 0)
   TNT1 A 0 A_SpawnItem("NukeSmokering", 0, 0, 0)
   TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("NukeFire", 0, 0, 0, 0.00001 * Random(0, 100000), 0.00001 * Random(0, 100000), Random(0, -3), Random(0, 359), 128, 0)
   Stop
 }
}

Actor NukeSmokePillar : NukeBig
{
 States
 {
  Spawn:
   TNT1 A 0
   TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("NukeSmoke", 0, 0, 0, 0.00001 * Random(0, 100000), 0.00001 * Random(0, 100000), 0.00001 * Random(0, -400000), Random(0, 359), 128, 0)
   Stop
 }
}

Actor NukeMushroom : NukeBig
{
 States
 {
  Spawn:
   TNT1 A 0
   TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("NukeFire", 0, 0, 0, 0.00001 * Random(0, 250000), 0.00001 * Random(0, 250000), 0.00001 * Random(-100000, 100000), Random(0, 359), 128, 0)
   Stop
 }
}

Actor NukeSmokeMushroom : NukeBig
{
 States
 {
  Spawn:
   TNT1 A 0
   TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("NukeSmoke", 0, 0, 0, 0.00001 * Random(0, 250000), 0.00001 * Random(0, 250000), 0.00001 * Random(-100000, 100000), Random(0, 359), 128, 0)
   Stop
 }
}

Actor NukeSmokering : NukeBig
{
 States
 {
  Spawn:
   TNT1 A 0
   TNT1 A 0 A_SpawnItemEx("NukeSmoke", 0, 0, 0, 4, 0, 0, 0, 0, 0)
   TNT1 A 0 A_SpawnItemEx("NukeSmoke", 0, 0, 0, 4, 0, 0, 20, 0, 0)
   TNT1 A 0 A_SpawnItemEx("NukeSmoke", 0, 0, 0, 4, 0, 0, 40, 0, 0)
   TNT1 A 0 A_SpawnItemEx("NukeSmoke", 0, 0, 0, 4, 0, 0, 60, 0, 0)
   TNT1 A 0 A_SpawnItemEx("NukeSmoke", 0, 0, 0, 4, 0, 0, 80, 0, 0)
   TNT1 A 0 A_SpawnItemEx("NukeSmoke", 0, 0, 0, 4, 0, 0, 100, 0, 0)
   TNT1 A 0 A_SpawnItemEx("NukeSmoke", 0, 0, 0, 4, 0, 0, 120, 0, 0)
   TNT1 A 0 A_SpawnItemEx("NukeSmoke", 0, 0, 0, 4, 0, 0, 140, 0, 0)
   TNT1 A 0 A_SpawnItemEx("NukeSmoke", 0, 0, 0, 4, 0, 0, 160, 0, 0)
   TNT1 A 0 A_SpawnItemEx("NukeSmoke", 0, 0, 0, 4, 0, 0, 180, 0, 0)
   TNT1 A 0 A_SpawnItemEx("NukeSmoke", 0, 0, 0, 4, 0, 0, 200, 0, 0)
   TNT1 A 0 A_SpawnItemEx("NukeSmoke", 0, 0, 0, 4, 0, 0, 220, 0, 0)
   TNT1 A 0 A_SpawnItemEx("NukeSmoke", 0, 0, 0, 4, 0, 0, 240, 0, 0)
   TNT1 A 0 A_SpawnItemEx("NukeSmoke", 0, 0, 0, 4, 0, 0, 260, 0, 0)
   TNT1 A 0 A_SpawnItemEx("NukeSmoke", 0, 0, 0, 4, 0, 0, 280, 0, 0)
   TNT1 A 0 A_SpawnItemEx("NukeSmoke", 0, 0, 0, 4, 0, 0, 300, 0, 0)
   TNT1 A 0 A_SpawnItemEx("NukeSmoke", 0, 0, 0, 4, 0, 0, 320, 0, 0)
   TNT1 A 0 A_SpawnItemEx("NukeSmoke", 0, 0, 0, 4, 0, 0, 340, 0, 0)
   Stop
 }
}

Actor Radiation
{
	States
	{
		Spawn:
		TNT1 A 15 A_PlaySound("RadiCloud",4,1,1)
		TNT1 A 0 A_CustomMissile("SMMGasSpawner",0,0,   0)
		TNT1 A 0 A_CustomMissile("SMMGasSpawner",0,0,  30)
		TNT1 A 0 A_CustomMissile("SMMGasSpawner",0,0,  60)
		TNT1 A 0 A_CustomMissile("SMMGasSpawner",0,0,  90)
		TNT1 A 0 A_CustomMissile("SMMGasSpawner",0,0, 120)
		TNT1 A 0 A_CustomMissile("SMMGasSpawner",0,0, 150)
		TNT1 A 0 A_CustomMissile("SMMGasSpawner",0,0, 180)
		TNT1 A 0 A_CustomMissile("SMMGasSpawner",0,0,- 30)
		TNT1 A 0 A_CustomMissile("SMMGasSpawner",0,0,- 60)
		TNT1 A 0 A_CustomMissile("SMMGasSpawner",0,0,- 90)
		TNT1 A 0 A_CustomMissile("SMMGasSpawner",0,0,-120)
		TNT1 A 0 A_CustomMissile("SMMGasSpawner",0,0,-150)
		TNT1 A 50
		TNT1 A 0 A_CustomMissile("SMMGasSpawner2",0,0,   0)
		TNT1 A 0 A_CustomMissile("SMMGasSpawner2",0,0, random(0,30))
		TNT1 A 0 A_CustomMissile("SMMGasSpawner2",0,0, random(30,60))
		TNT1 A 0 A_CustomMissile("SMMGasSpawner2",0,0, random(60,90))
		TNT1 A 0 A_CustomMissile("SMMGasSpawner2",0,0, random(90,120))
		TNT1 A 0 A_CustomMissile("SMMGasSpawner2",0,0, random(120,150))
		TNT1 A 0 A_CustomMissile("SMMGasSpawner2",0,0, random(150,180))
		TNT1 A 0 A_CustomMissile("SMMGasSpawner2",0,0, random(-30,-1))
		TNT1 A 0 A_CustomMissile("SMMGasSpawner2",0,0, random(-60,-90))
		TNT1 A 0 A_CustomMissile("SMMGasSpawner2",0,0, random(-90,-120))
		TNT1 A 0 A_CustomMissile("SMMGasSpawner2",0,0, random(-120,-150))
		TNT1 A 0 A_CustomMissile("SMMGasSpawner2",0,0, random(-150,-180))
		TNT1 A 40
				TNT1 A 0 A_CustomMissile("SMMGasSpawner",0,0,   0)
		TNT1 A 0 A_CustomMissile("SMMGasSpawner",0,0,  30)
		TNT1 A 0 A_CustomMissile("SMMGasSpawner",0,0,  60)
		TNT1 A 0 A_CustomMissile("SMMGasSpawner",0,0,  90)
		TNT1 A 0 A_CustomMissile("SMMGasSpawner",0,0, 120)
		TNT1 A 0 A_CustomMissile("SMMGasSpawner",0,0, 150)
		TNT1 A 0 A_CustomMissile("SMMGasSpawner",0,0, 180)
		TNT1 A 0 A_CustomMissile("SMMGasSpawner",0,0,- 30)
		TNT1 A 0 A_CustomMissile("SMMGasSpawner",0,0,- 60)
		TNT1 A 0 A_CustomMissile("SMMGasSpawner",0,0,- 90)
		TNT1 A 0 A_CustomMissile("SMMGasSpawner",0,0,-120)
		TNT1 A 0 A_CustomMissile("SMMGasSpawner",0,0,-150)
		
				TNT1 A 0 A_CustomMissile("SMMGasSpawner2",0,0,   0)
		TNT1 A 0 A_CustomMissile("SMMGasSpawner2",0,0, random(0,30))
		TNT1 A 0 A_CustomMissile("SMMGasSpawner2",0,0, random(30,60))
		TNT1 A 0 A_CustomMissile("SMMGasSpawner2",0,0, random(60,90))
		TNT1 A 0 A_CustomMissile("SMMGasSpawner2",0,0, random(90,120))
		TNT1 A 0 A_CustomMissile("SMMGasSpawner2",0,0, random(120,150))
		TNT1 A 0 A_CustomMissile("SMMGasSpawner2",0,0, random(150,180))
		TNT1 A 0 A_CustomMissile("SMMGasSpawner2",0,0, random(-30,-1))
		TNT1 A 0 A_CustomMissile("SMMGasSpawner2",0,0, random(-60,-90))
		TNT1 A 0 A_CustomMissile("SMMGasSpawner2",0,0, random(-90,-120))
		TNT1 A 0 A_CustomMissile("SMMGasSpawner2",0,0, random(-120,-150))
		TNT1 A 0 A_CustomMissile("SMMGasSpawner2",0,0, random(-150,-180))
		
		
		TNT1 A 0 A_StopSound(4)
		TNT1 A 5
		Stop
	}
}
//------------------------------------------------------------------


Actor SMMGasSpawner 
{
	Projectile
	Radius 2
	Height 3
	+FLOORHUGGER
	+THRUACTORS
	Scale 0.2
	Speed 10
	RenderStyle None
	States
	{
	Spawn:
		TNT1 AAAAAAAAAA 5 NODELAY A_SpawnItemEx("SMMGas", random(70,-70),random(70,-70),0, 0,0,0, 0)

		Stop
	Death:
		TNT1 A 1
		Stop
	}
}

Actor SMMGasSpawner2 : SMMGasSpawner
{
Speed 15
}


Actor SMMGas
{
	+NOCLIP
	+FloorHugger
	-NOGRAVITY
	Height 20
	RenderStyle Add
	Translation "0:255=%[0,0,0]:[2.0,0.7,0.4]"
	XScale 1.6
	YScale 0.6
	Alpha 0.0
	DamageType "SMMGas"
	Obituary "%o got sunburnt."
	+DONTSPLASH
	+FORCEXYBILLBOARD
	+Painless
	States
	{
	Spawn:
		X110 A 0 NODELAY A_Explode(5,60,XF_NOSPLASH,0,30)
		X110 A 0 A_Jump(256,1,2,3,4,5,6,7)
		X110 ABCDEFGH 4 Bright A_Fadeto(0.8,0.06)	
		X110 A 0 A_SpawnItemEx("TeslaRays",0,0,10, 0,0,0, 0,SXF_NOCHECKPOSITION|SXF_TRANSFERTRANSLATION, 200)
		X110 A 0 A_Explode(5,60, XF_NOSPLASH,0,30)
		X110 IJKLMNOP 4 Bright A_Fadeto(0.8,0.06)
		X110 A 0 A_SpawnItemEx("TeslaRays",0,0,10, 0,0,0, 0,SXF_NOCHECKPOSITION|SXF_TRANSFERTRANSLATION, 200)
//		X110 A 0 A_SpawnItemEx("100SmallFireFocusSpawnerz" , random(10,-10),random(12,-12), 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION, 0)
	
		X110 A 0 A_Explode(5,60,0,0,30)
		X110 QRSTUVWX 4 Bright 			
		X110 A 0 A_SpawnItemEx("TeslaRays",0,0,10, 0,0,0, 0,SXF_NOCHECKPOSITION|SXF_TRANSFERTRANSLATION, 200)
		X110 A 0 A_Explode(5,60,0,0,30)
		X110 YABCDEFG 4 Bright
		X110 A 0 A_SpawnItemEx("TeslaRays",0,0,10, 0,0,0, 0,SXF_NOCHECKPOSITION|SXF_TRANSFERTRANSLATION, 200)
//		X110 A 0 A_SpawnItemEx("TinyBurningpiece" , random(10,-10),random(12,-12), 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION, 0)
		
		X110 A 0 A_Explode(5,60,0,0,30)
		X110 HIJKLMNO 4 Bright
		X110 A 0 A_SpawnItemEx("TeslaRays",0,0,10, 0,0,0, 0,SXF_NOCHECKPOSITION|SXF_TRANSFERTRANSLATION, 200)
		X110 A 0 A_Explode(5,60,0,0,30)
		X110 PQRSTUVW 4 Bright
		X110 A 0 A_SpawnItemEx("TeslaRays",0,0,10, 0,0,0, 0,SXF_NOCHECKPOSITION|SXF_TRANSFERTRANSLATION, 200)
//		X110 A 0 A_SpawnItemEx("TinyBurningPiece2" , random(10,-10),random(12,-12), 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION, 0)
		
		X110 A 0 A_Explode(5,60,0,0,30)
		X110 YABCDEFG 4 Bright
		X110 A 0 A_SpawnItemEx("TeslaRays",0,0,10, 0,0,0, 0,SXF_NOCHECKPOSITION|SXF_TRANSFERTRANSLATION, 200)
		X110 A 0 A_Explode(5,60,0,0,30)
		X110 HIJKLMNO 4 Bright
		X110 A 0 A_SpawnItemEx("TeslaRays",0,0,10, 0,0,0, 0,SXF_NOCHECKPOSITION|SXF_TRANSFERTRANSLATION, 200)
//		X110 A 0 A_SpawnItemEx("TinyburningPiece3" , random(10,-10),random(12,-12), 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION, 0)
		

		

		X110 A 0 A_Explode(5,60, XF_NOSPLASH,0,30) 
		X110 PQRSTUVW 4 Bright Bright A_FadeOut(0.076)
		X110 A 0 A_Explode(5,60, XF_NOSPLASH,0,30)
		X110 XYABCDEF 4 Bright Bright A_FadeOut(0.076)
		
		
		
		X110 A 0 A_Explode(5,60,XF_NOSPLASH,0,30)
		X110 A 0 A_Jump(256,1,2,3,4,5,6,7)
		X110 ABCDEFGH 4 Bright A_Fadeto(0.8,0.06)	
		X110 A 0 A_SpawnItemEx("TeslaRays",0,0,10, 0,0,0, 0,SXF_NOCHECKPOSITION|SXF_TRANSFERTRANSLATION, 200)
		X110 A 0 A_Explode(5,60, XF_NOSPLASH,0,30)
		X110 IJKLMNOP 4 Bright A_Fadeto(0.8,0.06)
		X110 A 0 A_SpawnItemEx("TeslaRays",0,0,10, 0,0,0, 0,SXF_NOCHECKPOSITION|SXF_TRANSFERTRANSLATION, 200)

	
		X110 A 0 
		X110 QRSTUVWX 4 Bright 			
		X110 A 0 A_SpawnItemEx("TeslaRays",0,0,10, 0,0,0, 0,SXF_NOCHECKPOSITION|SXF_TRANSFERTRANSLATION, 200)
		X110 A 0 
		X110 YABCDEFG 4 Bright
		X110 A 0 A_SpawnItemEx("TeslaRays",0,0,10, 0,0,0, 0,SXF_NOCHECKPOSITION|SXF_TRANSFERTRANSLATION, 200)

		
		X110 A 0 
		X110 HIJKLMNO 4 Bright
		X110 A 0 A_SpawnItemEx("TeslaRays",0,0,10, 0,0,0, 0,SXF_NOCHECKPOSITION|SXF_TRANSFERTRANSLATION, 200)
		X110 A 0 
		X110 PQRSTUVW 4 Bright
		X110 A 0 A_SpawnItemEx("TeslaRays",0,0,10, 0,0,0, 0,SXF_NOCHECKPOSITION|SXF_TRANSFERTRANSLATION, 200)

		
		X110 A 0 
		X110 YABCDEFG 4 Bright
		X110 A 0 A_SpawnItemEx("TeslaRays",0,0,10, 0,0,0, 0,SXF_NOCHECKPOSITION|SXF_TRANSFERTRANSLATION, 200)
		X110 A 0 
		X110 HIJKLMNO 4 Bright
		X110 A 0 A_SpawnItemEx("TeslaRays",0,0,10, 0,0,0, 0,SXF_NOCHECKPOSITION|SXF_TRANSFERTRANSLATION, 200)
		
		

		

		X110 A 0 A_Explode(5,60, XF_NOSPLASH,0,30) 
		X110 PQRSTUVW 4 Bright Bright A_FadeOut(0.076)
		X110 A 0 A_Explode(5,60, XF_NOSPLASH,0,30)
		X110 XYABCDEF 4 Bright Bright A_FadeOut(0.076)
		
		sTOP
		
	}
}

Actor TeslaRays
{
	+NOINTERACTION
	+PUFFGETSOWNER
	+PUFFONACTORS
	+ALWAYSPUFF
	+FORCEXYBILLBOARD
	+MTHRUSPECIES
	RenderStyle Add
	Alpha 0.99
	Translation "0:255=%[0,0,0]:[2.0,0.5,0.0]"
	Scale 0.4
	DamageType "LGChain"
	States
	{
	Spawn:
		TNT1 A 0 A_Jump(256,"Type1a","Type1b","Type2a","Type2b","Type3a","Type3b","Type4a","Type4b","Type5a","Type5b")
	Type1a:
		DLI1 A 0
		Goto Perform1
	Type1b:
		DLI1 L 0
		Goto Perform2
	Type2a:
		DLI2 A 0
		Goto Perform1
	Type2b:
		DLI2 L 0
		Goto Perform2
	Type3a:
		DLI3 A 0
		Goto Perform1
	Type3b:
		DLI3 L 0
		Goto Perform2
	Type4a:
		DLI4 A 0
		Goto Perform1
	Type4b:
		DLI4 L 0
		Goto Perform2
	Type5a:
		DLI5 A 0
		Goto Perform1
	Type5b:
		DLI5 L 0
		Goto Perform2
		
	Perform1:
		"####" BDHI 1 Bright
		Stop
	Perform2:
		"####" MOST 1 Bright
		Stop
	}
}


ACTOR OneTimeNuke : Ammo
{
	Game Doom
	SpawnID 75
	Inventory.PickupMessage "$GOTCELL"
	Inventory.Amount 1
	Inventory.MaxAmount 1
	Ammo.BackpackAmount 1
	Ammo.BackpackMaxAmount 1
	Inventory.Icon "NSYMA0"
	Scale 0.9
	States
	{
	Spawn:
		NSYM A -1
		Stop
	}
}

Return to “Assets (and other stuff)”