ACTOR BIG_FUCKING_GUN : BrutalWeapon
{
	Game Doom
	Height 20
	SpawnID 31
	Weapon.SelectionOrder 101
	Weapon.AmmoUse 0
	Weapon.AmmoGive 0
	Weapon.AmmoType "AmmoCell"
    Inventory.PickupSound "BFGREADY"
	//DamageType Desintegrate
	+FORCEXYBILLBOARD
	+WEAPON.NOAUTOFIRE
	Tag "BFG 9000"
    Inventory.PickupMessage "You got the BFG-9000! FUCK YEAH!"
	States
	{
	
	Ready3:
	Ready:
	Reload:
		BFGN A 1 A_WeaponReady
        BFGN A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        BFGN A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		BFGN A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		BFGN A 0 A_JumpIfInventory("Salute2", 1, "Salute")
		BFGN A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
		BFGN A 0 A_JumpIfInventory("IsRunning",1,"CheckSprint")
		Loop
		
	NoAmmo:
		BFGN A 1
		BFGN A 2 A_PlaySound("weapons/empty", 4)
		Goto Ready3
		
	
	CheckSprint:
		BFGN A 1 A_WeaponReady(WRF_NOFIRE)
		BFGN A 0 A_JumpIfInventory("IsStandingStill", 1, "Ready3")
		BFGN A 0 A_JumpIfInventory("IsTacticalClass", 1, "StartSprint")
		Goto Ready
		
	StartSprint:
		BFGN A 1 A_WeaponReady(WRF_NOFIRE)
		BFGN A 0 A_Takeinventory("Zoomed",1)
		BFGN A 0 A_Takeinventory("ADSmode",1)
		BFGN A 0 A_ZoomFactor(1.0)
		BFGN A 0 A_JumpIfInventory("UsedStamina", 40, "StopSprintTired")
		
	Sprinting:	
		BFSP A 0 offset(-9,32) 
		BFGN A 0 offset(-9,32) A_JumpIfInventory("IsStandingStill", 1, "Ready3")
		BFGN A 0 offset(-9,32) A_JumpIfInventory("UsedStamina", 100, "StopSprintTired")
		PLAY A 0 offset(-9,32) ACS_ExecuteAlways(852, 0, 0, 0, 0)//Makes player faster.
		BFGN A 0 offset(-9,32) A_JumpIfInventory("PowerStrength", 1, 2)
		BFGN A 0 offset(-9,32) A_GiveInventory("UsedStamina", 13)
		BFGN A 0 offset(-9,32)
		BFSP A 1 offset(-9,34) A_SetPitch(pitch -0.5)
		BFSP A 1 offset(-6,36) A_SetPitch(pitch -0.5)
		BFSP A 1 offset(-3,38) A_SetPitch(pitch -0.5)
		BFSP A 1 offset(0,38) A_SetPitch(pitch -0.5)
		BFSP A 1 offset(3,36) A_SetPitch(pitch -0.5)
		BFSP A 1 offset(6,34) A_SetPitch(pitch -0.5)
		BFSP A 1 offset(9,32) A_SetPitch(pitch -0.5)
		BFGN A 0 offset(9,32) A_WeaponReady(WRF_NOBOB)
		BFGN A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        BFGN A 0 A_JumpIfInventory("Taunting",1,"Taunt")
        BFGN A 0 A_JumpIfInventory("Reloading",1,"Reload")
		BFGN A 0 offset(-9,32) A_GiveInventory("UsedStamina", 13)
		BFGN A 0 offset(9,33) A_SpawnItemEx("FootStep", 0, 0, 2, 0, 0, -4)
		BFSP A 1 offset(9,34) A_SetPitch(pitch +0.5)
		BFSP A 1 offset(6,36) A_SetPitch(pitch +0.5)
		BFSP A 1 offset(3,38) A_SetPitch(pitch +0.5)
		BFSP A 1 offset(0,38) A_SetPitch(pitch +0.5)
		BFSP A 1 offset(-3,36) A_SetPitch(pitch +0.5)
		BFSP A 1 offset(-6,34) A_SetPitch(pitch +0.5)
		BFSP A 1 offset(-9,32) A_SetPitch(pitch +0.5)
		BFGN A 0 offset(-9,32) A_WeaponReady(WRF_NOBOB)
		BFGN A 0 offset(-9,32) A_JumpIfInventory("IsRunning", 1, "Sprinting")
		Goto StopSprint
		
	StopSprintTired:
		BFGN A 1
		PLAY A 0 ACS_ExecuteAlways(853, 0, 0, 0, 0)//Makes player slower.
		BFGN A 0 A_PlaySound("Tired", 2)
		BFGN A 0 A_TakeInventory("UsedStamina", 2)
		BFGN A 5 A_WeaponReady
		BFGN A 0 A_TakeInventory("UsedStamina", 2)
		BFGN A 5 A_WeaponReady
		BFGN A 0 A_TakeInventory("UsedStamina", 2)
		BFGN A 5 A_WeaponReady
		BFGN A 0 A_TakeInventory("UsedStamina", 2)
		BFGN A 5 A_WeaponReady
		BFGN A 0 A_TakeInventory("UsedStamina", 2)
		BFGN A 5 A_WeaponReady
		Goto Ready
	StopSprint:
		BFSP A 1
		BFGN A 0 A_JumpIfInventory("UsedStamina", 60, "StopSprintTired")
		PLAY A 0 ACS_ExecuteAlways(853, 0, 0, 0, 0)//Makes player slower.
		Goto Ready
		
	Deselect:
	    TNT1 AAAAAAAAAAAAAAAAAA 0 A_Lower
		BFGN A 0 A_TakeInventory("TossGrenade", 1)
		BFGN A 1 A_Lower
		Loop
		
	Select:
		BFGN A 0 A_Giveinventory("GoSpecial",1)
		BFGN A 0 A_Takeinventory("FistsSelected",1)
		BFGN A 0 A_Takeinventory("SawSelected",1)
		BFGN A 0 A_Takeinventory("ShotgunSelected",1)
		BFGN A 0 A_Takeinventory("SSGSelected",1)
		BFGN A 0 A_Takeinventory("MinigunSelected",1)
		BFGN A 0 A_Takeinventory("PlasmaGunSelected",1)
		BFGN A 0 A_Takeinventory("RocketLauncherSelected",1)
		BFGN A 0 A_Takeinventory("GrenadeLauncherSelected",1)
		BFGN A 0 A_Giveinventory("BFGSelected",1)
		BFGN A 0 A_Takeinventory("BFG10kSelected",1)
		BFGN A 0 A_Takeinventory("RailGunSelected",1)
		BFGN A 0 A_Takeinventory("SubMachineGunSelected",1)
		BFGN A 0 A_Takeinventory("RevenantLauncherSelected",1)
		BFGN A 0 A_Takeinventory("LostSoulSelected",1)
		BFGN A 0 A_Takeinventory("FlameCannonSelected",1)
		BFGN A 0 A_Takeinventory("HasBarrel",1)
		BFGN A 0 A_TakeInventory("TossGrenade", 1)
		BFGN A 0 A_GunFlash
		TNT1 A 1 A_Raise
		TNT1 AAAAAAAA 0 A_Raise
		BFGN A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
        BFGN A 0 A_PlaySound("BFGREADY")
		SelectAnimation:
		BFGS ABCDE 1
		Goto Ready

		
	Fire:
		BFGN A 0
		BFGN A 0 A_JumpIfInventory("AmmoCell",50,2)
        Goto NoAmmo	
		BFGN A 0
		BFGN A 0 A_TakeInventory("AmmoCell", 50)
        BFGN A 0 A_PlaySound("BFGCHARGE")
		BFGC ABCDABCDABCDABCDABCDABCDABCD 1 BRIGHT
        BFGA A 2 BRIGHT A_FireCustomMissile("GreenFlareSpawn",0,0,0,0)
        BFGN A 0 A_PlaySound("BFGFIRE")
		TNT1 AAA 0 A_FireCustomMissile("GreenFlareSpawn",0,0,0,0)
        BFGN A 0 A_Recoil(8)
        
		
        BFGN A 0 BRIGHT A_FireCustomMissile("Alerter", 0, 0, -1, 0)
		BFGN A 0 A_JumpIfInventory("DMgame", 1, 4)
		BFGN A 0 BRIGHT A_FireCustomMissile("BFGBall")
		BFGN A 0
		Goto RecoilFire
		TNT1 AAA 0
		BFGN A 0 BRIGHT A_FireCustomMissile("BFGBallDM")
		
	RecoilFire:	
		BFGN A 0 A_ZoomFactor(0.9)
		BFGA B 2 BRIGHT
		BFGN A 0 A_ZoomFactor(1.0)
		BFGA CDCB 2 BRIGHT
        BFGN A 1
		BFGN A 8
        BFGN A 0 A_Refire
		Goto Ready3
		
		
	//Alpha Doom Attack, discontinued.	
	//AltFire:
		BFGN A 1
		BFGN A 0 A_JumpIfInventory("AmmoCell", 50, 5)
		BFGN A 10
		Goto Ready
		TNT1 AAAAAA 0
		BFGN A 0 A_TakeInventory("AmmoCell", 50)
        BFGN A 0 A_PlaySound("BFGCHARGE")
		BFGC ABCDABCDABCDABCD 1 BRIGHT
		BFGC ABCDABCDABCDABCD 1 BRIGHT
        BFGA A 2 BRIGHT A_FireCustomMissile("GreenFlareSpawn",0,0,0,0)
        BFGN A 0 A_PlaySound("BFGFIRE")
		TNT1 AAA 0 A_FireCustomMissile("GreenFlareSpawn",0,0,0,0)
        BFGN A 0 A_Recoil(8)
        //BFGN A 0 A_ZoomFactor(1.3)
        BFGN A 0 BRIGHT A_FireCustomMissile("Alerter", 0, 0, -1, 0)
		BFGN A 0 A_FireCustomMissile("ShakeYourAssDouble", 0, 0, 0, 0)
        BFGA BCBCBCBCBCB 2 BRIGHT A_FireCustomMissile("AlphaBFGBall", random(-6, 6), 0, 0, 0, 0, random(-2, 2))
		BFGA DE 2 BRIGHT
        //BFGN A 0 A_ZoomFactor(1.0)
        BFGN A 1 BRIGHT
		BFGN A 4
        BFGN A 0  A_Refire
		Goto Ready	

	
   
	
	Spawn:
		BFUG A -1
		Stop	
	}
}



Actor SuperBFGBall : BFGBall replaces BFGBall
{
    +EXTREMEDEATH
	Damage (random(1500, 1500))
  Decal BFGLightning
	DeathSound "BFGEXPLO"
    DamageType Desintegrate
	Scale 0.7
	Species "Marines"
	Height 1
	+THRUSPECIES
	+MTHRUSPECIES
  States
  {
 Spawn:
    BFGN A 0 A_SpawnItemEx("BFGFOG", 0, 0)
    BFS1 AB 1 BRIGHT A_SpawnItemEx("BFGTrailParticle", Random(-13, 13), Random(-13, 13), Random(0, 18), Random(1, 3), 0, (0.1)*Random(-10, 10), Random(-20, 20), 128)
    Loop
 
 Death:
    BFGN A 0
    BFGN A 0 Radius_Quake(4,34,0,12,0)
	BFGN A 0 Radius_Quake(1,34,0,32,0)
	BFGN A 0 A_SpawnItemEx ("ExplosionSplashSpawner", 0, 0, -20)
	BFGN A 0 A_SpawnItemEx ("UnderwaterExplosion",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
    TNT1 AA 0 A_SpawnItemEx ("DetectFloorCrater",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	BFGN A 0 A_SpawnItemEx ("DetectCeilCrater",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_PlaySOund("BFGEXPL2", 1)
	BFGN A 0 Bright A_SpawnItem("GreenShockWave",0,0,0)
    //BFE1 A 0 A_SpawnItemEx("BFGDeathParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
    //BFE1 A 0 A_SpawnItemEx("BFGSuperParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0, 0, 0)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 50, 0, 0)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", -50, 0, 0)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0, 50, 0)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0, -50, 0)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 50, 50, 0)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 50, -50, 0)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", -50, 50, 0)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", -50, -50, 0)
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BFGDeathParticleFast", 0, 0, random (0, 360), 2, random (0, 360))
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BFGDeathParticleSuperFast", 0, 0, random (0, 360), 2, random (0, 360))
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BFGDeathParticleFast", 0, 0, random (0, 360), 2, random (0, 360))
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BFGDeathParticleFast", 0, 0, random (0, 360), 2, random (0, 360))
    
	BFGN A 0 A_Explode(200,400,0)
	BFGB A 2 BRIGHT
    BFGB F 0 Bright A_BFGSpray("SuperBFGExtra", 50)
	BFGB BCDEFG 2 Bright
	BFGN A 0 A_SPawnItem("SuperBFGExtraGiant")
    TNT1 A 12
    Stop
  }
}

Actor BFGBallDM : SuperBFGBall
{

	Species "NOne"
	-THRUSPECIES
	-MTHRUSPECIES
}


Actor AlphaBFGBAll : SuperBFGBall
{

	Scale 0.3
	Species "Marines"
	+THRUSPECIES
	+MTHRUSPECIES
	DeathSound "Explosion"
	Damage (random(100, 150))
  States
  {
	DM:
		BFGN A 0
		BFGN A 0 A_ChangeFLag("THRUSPECIES", 0)
		BFGN A 0 A_ChangeFLag("MTHRUSPECIES", 0)
		Goto Spawn1
	
	Spawn:
		BFGN A 0
		BFGN A 0 ACS_NamedExecuteAlways("CheckIfDM", 0, 0, 0, 0)//Check if Coop

	Spawn1:
    BFS1 AB 1 BRIGHT A_SpawnItem("GreenFlareMedium",0,0)
    Loop
 
 Death:
    BFGN A 0
	BFGN A 0 A_Explode(35,100,0)
	Goto Death2
	
 Death2:	
    BFGN A 0 Radius_Quake(2,34,0,12,0)
        BFGN A 0 A_SpawnItemEx ("DetectFloorCrater",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	    BFGN A 0 A_SpawnItemEx ("DetectCeilCrater",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
    //BFE1 A 0 A_SpawnItemEx("BFGDeathParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
    //BFE1 A 0 A_SpawnItemEx("BFGSuperParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
	EXPL AAAAAAAAAAAAAAAA 0 A_CustomMissile ("BFGDeathParticleSuperFast", 0, 0, random (0, 360), 2, random (0, 360))
	TNT1 AAAAAAAAA 0 A_CustomMissile ("GreenExplosionFire", 2, 0, random (0, 360), 2, random (0, 360))
    
	
	BFGB ABCDE 1 Bright A_SpawnItem("GreenFlare",0,0)
    BFGB GHIJK 1 Bright A_SpawnItem("GreenFlare",0,0)
    Stop
  }
}



Actor AlphaBFGBAll2 : AlphaBFGBAll
{

	Scale 0.15
	Speed 50
	Damagetype "Extreme"
	DeathSound "Explosion"
	Damage (random(200, 250))
	States
	{
	 Death:
    BFGN A 0
	BFGN A 0 A_Explode(100,200,0)
	Goto Death2
	}
}

Actor FriendlyBFGBAll : SuperBFGBall
{
    Damagetype "FriendBullet"
	+EXTREMEDEATH
  States
  {
 Death:
    BFGN A 0
    //BFGN A 0 Radius_Quake(4,34,0,12,0)
	
	BFGN A 0 Bright A_SpawnItem("GreenShockWave",0,0,0)
	BFGN A 0 A_SpawnItemEx ("ExplosionSplashSpawner", 0, 0, -20)
        BFGN A 0 A_SpawnItemEx ("DetectFloorCrater",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	    BFGN A 0 A_SpawnItemEx ("DetectCeilCrater",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
    //BFE1 A 0 A_SpawnItemEx("BFGDeathParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
    //BFE1 A 0 A_SpawnItemEx("BFGSuperParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BFGBIGFOG", 0, 0, random (0, 360), 2, random (0, 360))
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BFGDeathParticleFast", 0, 0, random (0, 360), 2, random (0, 360))
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BFGDeathParticleSuperFast", 0, 0, random (0, 360), 2, random (0, 360))
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BFGDeathParticleFast", 0, 0, random (0, 360), 2, random (0, 360))
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BFGDeathParticleFast", 0, 0, random (0, 360), 2, random (0, 360))
    
	BFGN A 0 A_Explode(120,350,0)
	BFGB ABCDE 1 Bright A_SpawnItem("GreenFlare",0,0)
	BFGN A 0 A_SPawnItem("SuperBFGExtraGiant")
    BFGB GHIJK 1 Bright A_SpawnItem("GreenFlare",0,0)
    Stop
  }
}

Actor BFGTrailParticle
{
  Height 0
  Radius 0
  Mass 0
  Speed 3
  +Missile
  +NoBlockMap
  +NoGravity
  +DontSplash
  RenderStyle Add
  Scale 0.05
  States
  {
  Spawn:
    SPKG A 2 Bright A_FadeOut(0.02)
    Loop
  }
}



Actor BFGDeathParticle
{
  Height 0
  Radius 0
  Mass 0
  +Missile
  +NoBlockMap
  -NoGravity
  +LowGravity
  +DontSplash
  +DoomBounce
  BounceFactor 0.5
  RenderStyle Add
  Scale 0.04
  States
  {
  Spawn:
  Death:
    SPKG A 2 Bright A_FadeOut(0.02)
    Loop
  }
}



Actor BFGDeathParticleFast: BFGDeathParticle
{
  Speed 10
  Scale 0.1
  States
  {
  Spawn:
  Death:
	SPKG A 11 BRIGHT
    SPKG AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 2 Bright A_FadeOut(0.06)
    Stop
  }
}

Actor BFGDeathParticleSuperFast: BFGDeathParticleFast
{
  Speed 20
}

Actor SuperBFGExtra : BFGExtra Replaces BFGExtra
{
  +NoBlockMap
  +NoGravity
  RenderStyle Add
  +FORCERADIUSDMG
  +THRUGHOST
  Alpha 0.75
  Damage 2
  Scale 0.6
  Radius 1
  Height 1
  DamageType "Desintegrate"
  States
  {
  Spawn:
    BFE2 A 0
    TNT1 AAAAA 0 A_SpawnItemEx("BFGExtraParticle", 0, 0, 14, (0.1)*Random(10, 40), 0, (0.1)*Random(-40, 40), Random(0, 360), 128)
    TNT1 AAAAA 0 A_SpawnItemEx("BFGExtraParticle", 0, 0, 14, (0.1)*Random(10, 40), 0, (0.1)*Random(-40, 40), Random(0, 360), 128)
    TNT1 AAAAA 0 A_SpawnItemEx("BFGExtraParticle", 0, 0, 14, (0.1)*Random(10, 40), 0, (0.1)*Random(-40, 40), Random(0, 360), 128)
	BFGB ABCDEFGHIJK 2 Bright A_SpawnItem("GreenFlareMedium",0,0)
    stop
  }
}


Actor SuperBFGExtraGiant : SuperBFGExtra
{
  Scale 2.9
  States
  {
  Spawn:
    BFE2 A 0
    BFGB ABCDEFGH 2 Bright
	Stop
}}

Actor BFGExtraParticle
{
  Height 0
  Radius 0
  Mass 0
  +Missile
  +NoBlockMap
  +DontSplash
  +NoInteraction
  RenderStyle Add
  Scale 0.035
  States
  {
  Spawn:
  Death:
    SPKG A 2 Bright A_FadeOut(0.1)
    Loop
  }
}


ACTOR GreenShockWave 
{ 
   Speed 0
   Height 64 
   Radius 32
   Scale 2.25 
   RenderStyle add
   Alpha 0.9
   +DROPOFF 
   +NOBLOCKMAP 
   +NOGRAVITY 
   +CLIENTSIDEONLY
   States 
   { 
   Spawn: 
      SHOK A 1 BRIGHT
      Goto Death 
   Death: 
      SHOK BCDEFGHIJKLMNOPQR 1 BRIGHT A_FadeOut(0.05)
      Stop 
   } 
} 


ACTOR WhiteShockWave: GreenShockwave
{ 
Scale 2.0
Alpha 0.12
   States 
   { 
   Spawn: 
      SHWK A 1
      SHWK CEGIKMOQ 1 A_FadeOut(0.01)
      Stop 
   } 
} 

ACTOR WhiteShockWaveBig: WhiteShockWave
{ 
Scale 3.0
} 

ACTOR WhiteShockWaveSmall: WhiteShockWave
{ 
Scale 1.0
} 

ACTOR BFGFOG
{
    Radius 1
    Height 1
	Alpha 0.7
	RenderStyle Add
	Scale 0.4
	Speed 8
	Gravity 0
    +NOBLOCKMAP
    +NOTELEPORT
    +DONTSPLASH
	+MISSILE
	+FORCEXYBILLBOARD
    +CLIENTSIDEONLY
    States
    {
    Spawn:
		TNT1 A 2
        BFOG ABCDEF 1 BRIGHT 
		Stop
    }
}

ACTOR BFGBIGFOG: BFGFOG
{
	Scale 0.8
}

ACTOR SmallGreenFog: BFGFOG
{
	Speed 3
	Scale 0.5
}

Actor BFGDeathParticleSpawner
{
  +NoClip
  +NoBlockMap
  +NoGravity
  +Missile
  States
  {
  Spawn:
    BFGN A 0
    TNT1 AAAAA 0 A_SpawnItemEx("BFGDeathParticle", 0, 0, 0, (0.1)*Random(20, 45), 0, (0.1)*Random(-40, 40), Random(0, 360), 128)
    TNT1 AAAAA 0 A_SpawnItemEx("BFGDeathParticle", 0, 0, 0, (0.1)*Random(20, 45), 0, (0.1)*Random(-40, 40), Random(0, 360), 128)
    TNT1 AAAAA 0 A_SpawnItemEx("BFGDeathParticle", 0, 0, 0, (0.1)*Random(20, 45), 0, (0.1)*Random(-40, 40), Random(0, 360), 128)
    TNT1 AAAAA 0 A_SpawnItemEx("BFGDeathParticle", 0, 0, 0, (0.1)*Random(20, 45), 0, (0.1)*Random(-40, 40), Random(0, 360), 128)
    TNT1 A 1
    Stop
  }
}

Actor BFGSuperParticleSpawner
{
  +NoClip
  +NoBlockMap
  +NoGravity
  +Missile
  +FORCEXYBILLBOARD
  States
  {
  Spawn:
    BFGN A 0
    TNT1 AAAAAAAAAAA 0 A_SpawnItemEx("BFGSuperParticle", 0, 0, 0, (0.1)*Random(10, 35), 0, (0.1)*Random(-20, 20), Random(0, 360), 128)
    TNT1 AAAAAAAAAAA 0 A_SpawnItemEx("BFGSuperParticle", 0, 0, 0, (0.1)*Random(10, 35), 0, (0.1)*Random(-20, 20), Random(0, 360), 128)
    TNT1 AAAAAAAAAAAAAAA 0 A_SpawnItemEx("BFGSuperParticle", 0, 0, 0, (0.1)*Random(10, 35), 0, (0.1)*Random(-20, 20), Random(0, 360), 128)
    TNT1 A 1
    Stop
  }
}


Actor BFGSuperParticle
{
  Height 0
  Radius 0
  Mass 0
  +Missile
  +NoBlockMap
  +NOGRAVITY
  +DontSplash
  +FORCEXYBILLBOARD
  RenderStyle Add
  Scale 0.04
  Speed 24
  States
  {
  Spawn:
  Death:
    SPKG A 2 Bright A_FadeOut(0.02)
    Loop
  }
}
