// --------------------------------------------------------------------------
//
//	BFG 9000
//
// --------------------------------------------------------------------------

ACTOR U_BFG9000 : BaseWeapon
{
	Weapon.AmmoUse 40
	Weapon.AmmoGive 40
	Weapon.AmmoType "AmmoCell"
	Weapon.SelectionOrder 2800
	-WEAPON.CHEATNOTWEAPON
	Inventory.PickupSound "BFGREADY"
    Inventory.PickupMessage "You got the BFG 9000!"
	tag "BFG 9000"
	States
	{
	Spawn:
		BFUG A -1
		Stop

	Select:
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist",1,"PuristGun")
		TNT1 A 0 A_Giveinventory("BFGSelected",1)
		TNT1 A 0 A_Giveinventory("GoSpecial",1)
		TNT1 A 0 A_Takeinventory("Unloading",1)
		TNT1 A 0 A_Takeinventory("Reloading",1)
		TNT1 A 0 A_TakeInventory("TossGrenade", 1)
		TNT1 A 0 A_Takeinventory("WeapSpecial",1)
		TNT1 A 0 A_Takeinventory("Taunting",1)
		TNT1 A 0 A_Takeinventory("IdleCounter",200)
		TNT1 A 4
		TNT1 A 0 A_Raise
		Wait

	Deselect:
        BFGS ABCDEF 1
		TNT1 A 0 A_TakeInventory("BFGSelected", 1)
		TNT1 A 0 A_Lower
		Wait

	Ready:
		TNT1 A 0 A_JumpIfInventory("GoFatality",1,"Steady")
        TNT1 A 0 A_PlaySound("BFGREADY")
	Ready1:
		BFGS FEDCBA 1
	Ready2:
		TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
		TNT1 A 0 A_JumpIfInventory("Taunting",1,"TauntR")
		TNT1 A 0 A_JumpIfInventory("Salute1",1,"Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2",1,"Salute")
		TNT1 A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
		BFGI AB 2 A_WeaponReady
		TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
		TNT1 A 0 A_JumpIfInventory("Taunting",1,"TauntR")
		TNT1 A 0 A_JumpIfInventory("Salute1",1,"Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2",1,"Salute")
		TNT1 A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
		BFGI CD 2 A_WeaponReady
		TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
		TNT1 A 0 A_JumpIfInventory("Taunting",1,"TauntR")
		TNT1 A 0 A_JumpIfInventory("Salute1",1,"Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2",1,"Salute")
		TNT1 A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
		TNT1 A 0 A_JumpIfInventory("IdleCounter",200,"PlayerIsIdle")
		BFGI EF 2 A_WeaponReady
		Goto Ready2
		
	PuristGun:
		TNT1 A 0 A_GiveInventory("VanillaBFG9000", 1)
		TNT1 A 0 A_TakeInventory("BIG_FUCKING_GUN", 1)
		Goto Ready
		
// --------------------------------------------------------------------------
//
//	Fire
//
// --------------------------------------------------------------------------
		
	Fire:
        TNT1 A 0 A_PlaySound("BFGCHARGE",1)
		TNT1 A 0 A_GunFlash("FireFlash")
		TNT1 A 0 Radius_Quake(1,4,0,2,0)
		//Start charging
		BFGC AB 2 A_FireCustomMissile("GreenFlareSpawn",0,0,0,0)
		TNT1 A 0 Radius_Quake(1,4,0,2,0)
		BFGC CD 2 A_FireCustomMissile("GreenFlareSpawn",0,0,0,0)
		TNT1 A 0 Radius_Quake(1,4,0,2,0)
		BFGC EF 2 A_FireCustomMissile("GreenFlareSpawn",0,0,0,0)
		TNT1 A 0 Radius_Quake(2,4,0,2,0)
		BFGC GH 2 A_FireCustomMissile("GreenFlareSpawn",0,0,0,0)
		TNT1 A 0 Radius_Quake(2,4,0,2,0)
		BFGC IJ 2 A_FireCustomMissile("GreenFlareSpawn",0,0,0,0)
		TNT1 A 0 Radius_Quake(2,4,0,2,0)
		BFGC KF 2 A_FireCustomMissile("GreenFlareSpawn",0,0,0,0)
		TNT1 A 0 Radius_Quake(3,4,0,2,0)
		BFGC GH 2 A_FireCustomMissile("GreenFlareSpawn",0,0,0,0)
		TNT1 A 0 Radius_Quake(3,6,0,2,0)
		BFGC IJK 2 A_FireCustomMissile("GreenFlareSpawn",0,0,0,0)
		//FIRE!
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1024)==0, 2)
		TNT1 A 0 A_Firebullets(10,0,6,50,"BfgPuff",0,120)//Kills smaller enemies at point blank so the projectile gets a chanse to fly.
        BFGF A 1 A_FireCustomMissile("GreenFlareSpawn",0,0,0,0)
        BFGF A 1 A_PlaySound("BFGFIRE",1)
		TNT1 A 0 A_AlertMonsters
		TNT1 AAA 0 A_FireCustomMissile("GreenFlareSpawn",0,0,0,0)
        TNT1 A 0 A_Recoil(8)
		TNT1 A 0 Radius_Quake(2,2,0,2,0)
        TNT1 A 0 A_FireCustomMissile("Alerter", 0, 0, -1, 0)
		TNT1 A 0 A_FireCustomMissile("ShakeYourAssDouble", 0, 0, 0, 0)
		TNT1 A 0 A_SetPitch(-1.0 + pitch)
		BFGF B 1 A_FireCustomMissile("GreenFlareSpawn",0,0,0,0)
		TNT1 A 0 A_SetPitch(-1.0 + pitch)
		BFGF B 1 Radius_Quake(1,4,0,2,0)
		TNT1 A 0 A_SetPitch(+2.0 + pitch)
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1024)==0, 3)
		TNT1 A 0 A_FireCustomMissile("U_BFGBall1")
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_FireCustomMissile("U_BFGBall2")
		TNT1 A 0 A_SetPitch(-4.0 + pitch)
		BFGF CCDDEEFF 1 A_SetPitch(+0.5 + pitch)
        BFGF G 2
		BFGI ABCDEF 2
        TNT1 A 0 A_Refire
		Goto Ready2

	FireFlash:
		TNT1 A 22
		TNT1 A 1 A_ZoomFactor(0.99)
		TNT1 A 1 A_ZoomFactor(0.99)
		TNT1 A 1 A_ZoomFactor(0.98)
		TNT1 A 1 A_ZoomFactor(0.98)
		TNT1 A 1 A_ZoomFactor(0.97)
		TNT1 A 1 A_ZoomFactor(0.96)
		TNT1 A 1 A_ZoomFactor(0.95)
		TNT1 A 1 A_ZoomFactor(0.93)
		TNT1 A 1 A_ZoomFactor(0.91)
		TNT1 A 1 A_ZoomFactor(0.89)
		TNT1 A 1 A_ZoomFactor(0.86)
		TNT1 A 1 A_ZoomFactor(0.83)
		TNT1 A 0 //Fire!
		TNT1 A 1 A_ZoomFactor(0.81)
		TNT1 A 1 A_ZoomFactor(0.80)
		TNT1 A 1 A_ZoomFactor(0.80)
		TNT1 A 1 A_ZoomFactor(0.81)
		TNT1 A 1 A_ZoomFactor(0.81)
		TNT1 A 1 A_ZoomFactor(0.82)
		TNT1 A 1 A_ZoomFactor(0.83)
		TNT1 A 1 A_ZoomFactor(0.94)
		TNT1 A 1 A_ZoomFactor(0.85)
		TNT1 A 1 A_ZoomFactor(0.96)
		TNT1 A 1 A_ZoomFactor(0.88)
		TNT1 A 1 A_ZoomFactor(1.00)
		Stop

// --------------------------------------------------------------------------
//
//	End Stuff
//
// --------------------------------------------------------------------------

	KickFlash:
		BFGK ABC 1
		BFGK D 10
		BFGK CBA 1
		BFGI A 1
		Stop

	AirKickFlash:
		BFGK ABC 1
		BFGK D 12
		BFGK CBA 1
		BFGI A 1
		Stop
		
	TauntFlash:
		BFGK ABC 1
		BFGK D 37
		BFGK CBA 1
		BFGI A 1
		Stop
	
	GrenadeFlash:
		BFGS ABCDE 1
		Stop
	}
}

Actor U_BFGBall2 //Vanilla ball
{
	Radius 5
	Height 5
	Projectile
	Speed 30
	Damage 300
	DamageType Desintegrate
	RenderStyle Add
	Alpha 0.9
	Scale 0.7
	Decal BFGLightning
	DeathSound "BFGEXPLO"
	Obituary "$OB_MPBFG_BOOM"
	Species "Marines"
	+RANDOMIZE
	+EXTREMEDEATH
	+THRUSPECIES
	+MTHRUSPECIES
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_ExecuteAlways(719, 0, 0, 0, 0)//Check if Coop
	Spawn1:
		TNT1 A 0 A_SpawnItemEx("BFGFOG", 0, 0)
		BFS1 A 1 BRIGHT A_SpawnItem("GreenFlareMedium",0,0)
		BFS1 A 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)
		TNT1 A 0 A_SpawnItemEx("BFGFOG", 0, 0)
		BFS1 B 1 BRIGHT A_SpawnItem("GreenFlareMedium",0,0)
		BFS1 B 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
	DM:
		TNT1 A 0 A_ChangeFLag("THRUSPECIES", 0)
		TNT1 A 0 A_ChangeFLag("MTHRUSPECIES", 0)
		Goto Spawn1
	Death:
		TNT1 A 0 Radius_Quake(4,34,0,12,0)
		TNT1 A 0 Radius_Quake(1,34,0,32,0)
		TNT1 A 0 A_SpawnItemEx ("ExplosionSplashSpawner", 0, 0, -20)
		TNT1 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)
		TNT1 A 0 A_SpawnItemEx ("DetectCeilCrater",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 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)
		TNT1 A 0 A_SpawnItemEx("BFGBigFlare", 0, 0, 0)
		TNT1 A 0 A_SpawnItemEx("BFGBigFlare", 50, 0, 0)
		TNT1 A 0 A_SpawnItemEx("BFGBigFlare", -50, 0, 0)
		TNT1 A 0 A_SpawnItemEx("BFGBigFlare", 0, 50, 0)
		TNT1 A 0 A_SpawnItemEx("BFGBigFlare", 0, -50, 0)
		TNT1 A 0 A_SpawnItemEx("BFGBigFlare", 50, 50, 0)
		TNT1 A 0 A_SpawnItemEx("BFGBigFlare", 50, -50, 0)
		TNT1 A 0 A_SpawnItemEx("BFGBigFlare", -50, 50, 0)
		TNT1 A 0 A_SpawnItemEx("BFGBigFlare", -50, -50, 0)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BFGDeathParticleFast", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BFGDeathParticleSuperFast", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BFGDeathParticleFast", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BFGDeathParticleFast", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 A 0 A_SpawnItem("MegaGibRemoving")
		TNT1 A 0 A_Explode(100,400,0)
		BFGB ABCDEFG 1 Bright A_SpawnItem("GreenFlare",0,0)
		BFGB H 1 Bright A_BFGSpray("SuperBFGExtra", 60, 20)
		TNT1 A 0 A_SpawnItem("SuperBFGExtraGiant")
		BFGB IJK 1 Bright A_SpawnItem("GreenFlare",0,0)
		TNT1 A 12
		Stop
	}
}

Actor U_BFGBall1 //Updated ball
{
	Radius 5
	Height 5
	Projectile
	Speed 40
	Damage (random(100, 200))
	DamageType Desintegrate
	RenderStyle Add
	Alpha 0.9
	Scale 0.7
	Decal BFGLightning
	DeathSound "BFGEXPLO"
	Obituary "$OB_MPBFG_BOOM"
	Species "Marines"
	+RANDOMIZE
	+EXTREMEDEATH
	+THRUSPECIES
	+MTHRUSPECIES
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_ExecuteAlways(719, 0, 0, 0, 0)//Check if Coop
	Spawn1:
		BFGP A 1 Bright A_SpawnItem("U_GreenFlare",0,0)
		TNT1 A 0 A_Explode(90,180,0,0,5,0,0,"SuperBFGExtra")
		TNT1 A 0 A_SpawnItem("BFGLightning",0,0)
		TNT1 AA 0 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)
		BFGP B 1 Bright A_SpawnItem("U_GreenFlare",0,0)
		TNT1 A 0 A_Explode(90,180,0,0,5,0,0,"SuperBFGExtra")
		TNT1 A 0 A_SpawnItem("BFGLightning",0,0)
		TNT1 AA 0 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)
		BFGP C 1 Bright A_SpawnItem("U_GreenFlare",0,0)
		TNT1 A 0 A_Explode(90,180,0,0,5,0,0,"SuperBFGExtra")
		TNT1 A 0 A_SpawnItem("BFGLightning",0,0)
		TNT1 AA 0 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)
		BFGP D 1 Bright A_SpawnItem("U_GreenFlare",0,0)
		TNT1 A 0 A_Explode(90,180,0,0,5,0,0,"SuperBFGExtra")
		TNT1 A 0 A_SpawnItem("BFGLightning",0,0)
		TNT1 AA 0 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)
		BFGP E 1 Bright A_SpawnItem("U_GreenFlare",0,0)
		TNT1 A 0 A_Explode(90,180,0,0,5,0,0,"SuperBFGExtra")
		TNT1 A 0 A_SpawnItem("BFGLightning",0,0)
		TNT1 AA 0 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
	DM:
		TNT1 A 0 A_ChangeFlag("THRUSPECIES", 0)
		TNT1 A 0 A_ChangeFlag("MTHRUSPECIES", 0)
		Goto Spawn1
	Death:
		TNT1 A 0 Radius_Quake(4,34,0,12,0)
		TNT1 A 0 Radius_Quake(1,34,0,32,0)
		TNT1 A 0 A_SpawnItemEx ("ExplosionSplashSpawner", 0, 0, -20)
		TNT1 A 0 A_SpawnItemEx ("UnderwaterExplosion",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx ("DetectFloorCrater",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx ("DetectCeilCrater",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		//TNT1 A 0 A_SpawnItem("GreenShockWave",0,0,0)
		TNT1 A 0 A_SpawnItemEx("BFGDeathParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
		TNT1 A 0 A_SpawnItemEx("BFGSuperParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
		TNT1 A 0 A_SpawnItem("BFGSplashFX")
		TNT1 A 0 A_Explode(180,500,0,1,5,0,0,"SuperBFGExtra")
		BFGB AAABBBCCC 1 Bright A_SpawnItem("U_GreenFlare",0,0)
		TNT1 A 0 A_Explode(180,500,0,1,5,0,0,"SuperBFGExtra")
		BFGB DDDEEEFFF 1 Bright A_SpawnItem("U_GreenFlare",0,0)
		TNT1 A 0 A_Explode(180,500,0,1,5,0,0,"SuperBFGExtra")
		BFGB GGGHHHIIIJJJKKK 1 Bright A_SpawnItem("U_GreenFlare",0,0)
		Stop
	}
}

ACTOR BfgPuff
{
	renderstyle Translucent
	alpha 0.4
	Scale 1.5
	radius 0
	height 0
	Gravity 0.01
	DamageType Desintegrate
	Decal BFGLightning
	+NOBLOCKMAP
	+NOGRAVITY
	+NOEXTREMEDEATH
	+FORCEXYBILLBOARD
	+DONTSPLASH
	-EXPLODEONWATER
	states
	{
	Spawn:
		TNT1 A 0
	Melee:
		TNT1 A 1
		stop
	}
}

Actor U_GreenFlare : Flare_General
{
	alpha 0.4
	scale 0.3
	states
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(128,"Spawn2")
	Spawn1:
		LENG A 1 bright
		TNT1 A 0 A_FadeOut(0.15)
		loop
	Spawn2:
		LENG B 1 bright
		TNT1 A 0 A_FadeOut(0.15)
		loop
	}
}

Actor U_GreenFlare2 : U_GreenFlare
{
	alpha 0.4
	scale 0.6
	states
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(128,"Spawn2")
	Spawn1:
		LENG A 1 bright
		TNT1 A 0 A_FadeOut(0.07)
		loop
	Spawn2:
		LENG B 1 bright
		TNT1 A 0 A_FadeOut(0.07)
		loop
	}
}

Actor BFGLightning : Flare_General
{
	alpha 1.0
	Scale 0.8
	states
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_SetScale(0.8*random(-1,1),0.8*random(-1,1))
		TNT1 A 0 A_Jump(128,"Spawn1","Spawn2","Spawn3","Spawn4","Spawn5","Spawn6","Spawn7","Spawn8","Spawn9","Spawn0")
		Stop
	Spawn1:
		BFGL A 1 bright
		Stop
	Spawn2:
		BFGL B 1 bright
		Stop
	Spawn3:
		BFGL C 1 bright
		Stop
	Spawn4:
		BFGL D 1 bright
		Stop
	Spawn5:
		BFGL E 1 bright
		Stop
	Spawn6:
		BFGL F 1 bright
		Stop
	Spawn7:
		BFGL G 1 bright
		Stop
	Spawn8:
		BFGL H 1 bright
		Stop
	Spawn9:
		BFGL I 1 bright
		Stop
	Spawn0:
		BFGL J 1 bright
		Stop
	}
}

Actor BFGSplashFX
{
	+NoBlockMap
	+NoGravity
	RenderStyle Add
	+FORCERADIUSDMG
	+THRUGHOST
	Alpha 0.9
	Damage 0
	Scale 2
	Radius 1
	Height 1
	DamageType "Desintegrate"
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 AAA 0 A_SpawnItemEx("BFGExtraParticle", 0, 0, 14, (0.1)*Random(10, 40), 0, (0.1)*Random(-40, 40), Random(0, 360), 128)
	BFGB ABCD 2 Bright A_SpawnItem("U_GreenFlare2",0,0)
	TNT1 AAA 0 A_SpawnItemEx("BFGExtraParticle", 0, 0, 14, (0.1)*Random(10, 40), 0, (0.1)*Random(-40, 40), Random(0, 360), 128)
	BFGB EFGH 2 Bright A_SpawnItem("U_GreenFlare2",0,0)
	TNT1 AAA 0 A_SpawnItemEx("BFGExtraParticle", 0, 0, 14, (0.1)*Random(10, 40), 0, (0.1)*Random(-40, 40), Random(0, 360), 128)
	BFGB IJK 2 Bright A_SpawnItem("U_GreenFlare2",0,0)
	Stop
	}
}

Actor U_BFGDeathParticle replaces BFGDeathParticle
{
	Height 0
	Radius 0
	Mass 0
	+Missile
	+NoBlockMap
	-NoGravity
	+LowGravity
	+DontSplash
	+FORCEXYBILLBOARD
	+DoomBounce
	RenderStyle Add
	BounceFactor 0.5
	Scale 0.04
	States
	{
	Spawn:
	Death:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"Fade1","Fade2","Fade3")
	Fade1:
		SPKG A 2 Bright A_FadeOut(0.01)
		Loop
	Fade2:
		SPKG A 1 Bright A_FadeOut(0.01)
		Loop
	Fade3:
		SPKG A 1 Bright A_FadeOut(0.01)
		SPKG A 1 Bright A_FadeOut(0.02)
		Loop
	}
}

Actor U_BFGSuperParticle replaces BFGSuperParticle
{
	Height 0
	Radius 0
	Mass 0
	+Missile
	+NoBlockMap
	+NOGRAVITY
	+DontSplash
	+FORCEXYBILLBOARD
	RenderStyle Add
	Scale 0.04
	Speed 24
	States
	{
	Spawn:
	Death:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"Fade1","Fade2","Fade3")
	Fade1:
		SPKG A 2 Bright A_FadeOut(0.01)
		Loop
	Fade2:
		SPKG A 1 Bright A_FadeOut(0.01)
		Loop
	Fade3:
		SPKG A 1 Bright A_FadeOut(0.01)
		SPKG A 1 Bright A_FadeOut(0.02)
		Loop
	}
}

Actor U_BFGExtraParticle replaces BFGExtraParticle
{
	Height 0
	Radius 0
	Mass 0
	+Missile
	+NoBlockMap
	+DontSplash
	+FORCEXYBILLBOARD
	RenderStyle Add
	Scale 0.035
	States
	{
	Spawn:
	Death:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"Fade1","Fade2","Fade3")
	Fade1:
		SPKG A 1 Bright A_FadeOut(0.03)
		Loop
	Fade2:
		SPKG A 1 Bright A_FadeOut(0.05)
		Loop
	Fade3:
		SPKG A 1 Bright A_FadeOut(0.07)
		Loop
	}
}

Actor U_BFGTrailParticle replaces BFGTrailParticle
{
	Height 0
	Radius 0
	Mass 0
	Speed 3
	+Missile
	+NoBlockMap
	+NoGravity
	+DontSplash
	+FORCEXYBILLBOARD
	RenderStyle Add
	Scale 0.05
	States
	{
	Spawn:
	Death:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"Fade1","Fade2","Fade3")
	Fade1:
		SPKG A 1 Bright A_FadeOut(0.01)
		SPKG A 1 Bright A_FadeOut(0.01)
		SPKG A 1 Bright
		Loop
	Fade2:
		SPKG A 1 Bright A_FadeOut(0.01)
		Loop
	Fade3:
		SPKG A 1 Bright A_FadeOut(0.01)
		SPKG A 1 Bright A_FadeOut(0.01)
		SPKG A 1 Bright A_FadeOut(0.02)
		Loop
	}
}