ACTOR T3DBFGBallParticleFloater : T3BaseEffect
{
Height 0
Radius 0
Mass 0
Scale 0.06
RenderStyle Add
BounceFactor 0.6
Gravity 0.2
Damage (0)
+MISSILE
-NOGRAVITY
+THRUACTORS
+DONTSPLASH
+DOOMBOUNCE
+FORCEXYBILLBOARD
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		SSKB ABC 2 Bright A_FadeOut(0.015,1)
		Loop
	}
}

ACTOR T3DBFGShockAttack
{
Projectile
Height 2
Radius 1
MissileType "T3DBFGRailgunSlug"
+ISMONSTER
-COUNTKILL
+LOOKALLAROUND
+QUICKTORETALIATE
+NOTARGET
+THRUACTORS
DamageType "DBFG2"
Obituary "%o got shocked by %k's D-BFG."
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 AAAAA 1 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,1250,0,360,"Attack")
		Goto Death
	Attack:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_FaceTarget
		TNT1 A 0 Bright A_MissileAttack
		TNT1 A 1 Bright A_CustomRailgun(-1,0,NONE,"White",1,1,2)
		Goto Death
	Death:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR PlayerT3DBFGShockAttack : T3DBFGShockAttack
{
+FRIENDLY
Species "Player"
DamageType ""
DamageType "PlayerDBFG2"
MissileType "PlayerT3DBFGRailgunSlug"
}

ACTOR T3DBFGBallTrail : T3BaseEffect
{
Scale 1.0
Renderstyle Add
Alpha 0.70
States
	{
	Spawn:
		TNT1 A 0 Bright
        B3FL ABC 2 Bright A_FadeOut(0.1,1)
        B3FL DEF 2 Bright A_FadeOut(0.1,1)
        TNT1 AAAA 2 Bright A_FadeOut(0.1,1)
		Stop
	}
}

ACTOR T3DBFGBallParticle : T3BaseEffect
{
Scale 0.5
Renderstyle Add
Alpha 0.75
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_ChangeVelocity(frandom(1.6,-1.6),frandom(1.6,-1.6),frandom(1.6,-1.6),0)
		SSKB A 1 Bright A_FadeOut(0.08+random(0.0075,-0.0075),1)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleTrail",0,0,0,0)
		SSKB B 1 Bright A_FadeOut(0.08+random(0.0075,-0.0075),1)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleTrail",0,0,0,0)
		SSKB C 1 Bright A_FadeOut(0.08+random(0.0075,-0.0075),1)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleTrail",0,0,0,0)
		SSKB B 1 Bright A_FadeOut(0.08+random(0.0075,-0.0075),1)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleTrail",0,0,0,0)
		SSKB A 1 Bright A_FadeOut(0.08+random(0.0075,-0.0075),1)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleTrail",0,0,0,0)
		SSKB B 1 Bright A_FadeOut(0.08+random(0.0075,-0.0075),1)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleTrail",0,0,0,0)
		SSKB C 1 Bright A_FadeOut(0.08+random(0.0075,-0.0075),1)
		TNT1 A 1 A_SpawnItemEx("T3DBFGBallParticleTrail",0,0,0,0)
		Loop
	}
}

ACTOR T3DBFGBallParticleTrail : T3BaseEffect
{
Scale 0.5
Renderstyle Add
Alpha 0.75
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_ChangeVelocity(frandom(0.2,-0.2),frandom(0.2,-0.2),frandom(0.2,-0.2),0)
		//BGFL ABC 1 Bright A_FadeOut(0.05+random(0.0075,-0.0075))
		B3FL ABC 2 Bright A_FadeOut(0.1,1)
		TNT1 A 0 Bright A_ChangeVelocity(frandom(0.2,-0.2),frandom(0.2,-0.2),frandom(0.2,-0.2),0)
		B3FL DEF 2 Bright A_FadeOut(0.1,1)
		TNT1 A 0 Bright A_ChangeVelocity(frandom(0.2,-0.2),frandom(0.2,-0.2),frandom(0.2,-0.2),0)
		TNT1 AAAA 2 Bright A_FadeOut(0.1,1)
		Stop
	}
}


ACTOR T3DBFGBallLightningBolt : T3LightningBolt { Scale 0.35 }

ACTOR T3DTBFGLightningSpawner : T3BaseEffect
{
+NOGRAVITY
States
{
Spawn:
    TNT1 A 0 Bright
	TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
    TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 Bright A_SpawnItemEx("T3DBFGBallLightningBolt",Random(6,-6),Random(6,-6),Random(6,-6),0,0,0,0,128)
    Stop
    }
}


ACTOR T3DBFGBallShockwave : T3BaseEffect
{
Renderstyle Add
Alpha 0.9
+DONTSPLASH
+FORCEXYBILLBOARD
States
	{
	Spawn:
		TNT1 A 0 Bright
		BG3W ABCDEFGHIJKLMNOPQR 1 Bright A_FadeOut(0.04,1)
		Stop
	}
}

ACTOR T3DBFGBallShockwaveLrg : T3DBFGBallShockwave
{
Scale 2.5
Alpha 0.85
States
	{
	Spawn:
		TNT1 A 0 Bright
		BG3W ABCDEFGHIJKLMNOPQR 2 Bright A_FadeOut(0.04,1)
		Stop
	}
}

ACTOR T3DBFGShotShockwave : T3DBFGBallShockwave { Scale 0.75 }

/*
ACTOR PlayerT3DBFGProjectileAttack
{
PROJECTILE
+LOOKALLAROUND
+ISMONSTER
+QUICKTORETALIATE
+NOTARGET
+FRIENDLY
+NOCLIP
Obituary "%o had no chance against %k's Demon Tech BFG10K."
MissileType "PlayerDTBFGRailgunSlug"
States
	{
	Spawn:
		TNT1 A 0
		TNT1 AAAAA 1 A_Look
		Goto Death
	See:
		TNT1 A 0
		TNT1 A 1 A_JumpIfCloser(1250,"Attack")
		Goto Death
	Attack:
		TNT1 A 0
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_MissileAttack
		TNT1 A 1 A_CustomRailgun(-1,0,NONE,"Green",1,1,2)
		Goto Death
	Death:
		TNT1 A 1
		Stop
	}
}*/

/*
ACTOR LightBlueParticleSpawner : BlueParticleSpawner
{
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 0 A_SpawnItemEx("TPSG7",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
		TNT1 A 0 A_SpawnItemEx("TPSG8",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
		TNT1 A 0 A_SpawnItemEx("TPSG9",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
		TNT1 A 0 A_SpawnItemEx("TPSG10",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
		TNT1 A 0 A_SpawnItemEx("TPSG11",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
		TNT1 A 0 A_SpawnItemEx("TPSG12",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
		TNT1 A 1
		Stop
	}
}
*/

ACTOR LightBlueSpray : BlueSpray
{
//+NOTIMEFREEZE
States
	{
	Spawn:
		TNT1 A 0
		BG3E A 6 Bright A_SpawnItemEx("BlueParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		BG3E BCD 6 Bright 
		Stop
	}
}

ACTOR T3DBFGTracer : FastProjectile
{
Height 4
Radius 16
Speed 60
Decal None
Damage 50
+THRUSPECIES
//+NOTIMEFREEZE
Species "Cybers"
States
	{
	Spawn:
		TNT1 A 15
		Stop
	Death:
		TNT1 A 1
		Stop
	XDeath:
		TNT1 A 0
		TNT1 A 1 A_SpawnItem("LightBlueSpray")
		Stop
	}
}

ACTOR T3DBFG10KBall : DTBFG10KBall
{
PROJECTILE
Speed 20
Alpha 0.85
Decal "DBFG9500Lightning"
Damage 150
+FORCERADIUSDMG
+THRUSPECIES
//+NOTIMEFREEZE
Species "Cybers"
DamageType "DBFG2"
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_Jump(128,"SFX")
		TNT1 A 0 Bright A_AlertMonsters
		TNT1 A 0 Bright A_PlaySoundEx("weapons/dtech10kball","Voice",1)
		TNT1 A 0 Bright A_SpawnItemEx("BFGTrailParticleBlue",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		B3S1 A 1 Bright A_SpawnItemEx("PlayerT3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		TNT1 A 0 Bright A_SpawnItemEx("BFGTrailParticleBlue",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		B3S1 B 1 Bright A_SpawnItemEx("PlayerT3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		TNT1 A 0 Bright A_SpawnItemEx("BFGTrailParticleBlue",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		B3S1 C 1 Bright A_SpawnItemEx("PlayerT3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		TNT1 A 0 Bright A_SpawnItemEx("BFGTrailParticleBlue",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		B3S1 D 1 Bright A_SpawnItemEx("PlayerT3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		Loop
	SFX:
		TNT1 A 0 Bright A_AlertMonsters
		TNT1 A 0 Bright A_PlaySoundEx("weapons/dtech10kball","Voice",1)
		TNT1 A 0 Bright A_SpawnItemEx("DTBFGLightningBlue",Random(6,-6),Random(6,-6),Random(16,8),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SpawnItemEx("BFGTrailParticleBlue",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		B3S1 A 1 Bright A_SpawnItemEx("PlayerT3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		TNT1 A 0 Bright A_SpawnItemEx("DTBFGLightningBlue2",Random(6,-6),Random(6,-6),Random(16,8),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SpawnItemEx("BFGTrailParticleBlue",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		B3S1 B 1 Bright A_SpawnItemEx("PlayerT3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		TNT1 A 0 Bright A_SpawnItemEx("DTBFGLightningBlue",Random(6,-6),Random(6,-6),Random(16,8),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SpawnItemEx("BFGTrailParticleBlue",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		B3S1 C 1 Bright A_SpawnItemEx("PlayerT3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		TNT1 A 0 Bright A_SpawnItemEx("DTBFGLightningBlue2",Random(6,-6),Random(6,-6),Random(16,8),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SpawnItemEx("BFGTrailParticleBlue",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		B3S1 D 1 Bright A_SpawnItemEx("PlayerT3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		Goto Spawn   
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_SetTranslucent(0.75,1)
		TNT1 A 0 Bright Radius_Quake(5,60,0,10,0)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,0,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,10,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,20,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,30,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,40,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,50,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,60,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,70,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,80,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,90,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,100,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,110,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,120,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,130,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,140,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,150,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,160,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,170,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,180,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,190,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,200,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,210,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,220,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,230,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,240,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,250,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,260,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,270,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,280,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,290,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,300,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,310,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,320,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,330,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,340,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,350,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_SpawnItemEx("DTBFGLightningBlueSpawner",0,0,15,0,0,0,0,SXF_CLIENTSIDE,0)
		B3S1 ABCD 6 Bright A_SpawnItemEx("DTech10KShockwaveBlue",0,0,15,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 A 0 Bright A_Explode(480,240,0)
		TNT1 A 0 Bright A_StopSoundEx("Voice")
		TNT1 A 0 Bright Radius_Quake(15,20,0,20,0)
		TNT1 A 0 Bright A_PlaySound("weapons/dtech10kexplode")
		TNT1 A 0 Bright A_SpawnItemEx("DTech10KShockwaveBlue1",0,0,15,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 20 Bright A_SpawnItemEx("T3DBFGBallExp")
		Stop    
	}
}

ACTOR T3DBFG10KBall2 : T3DBFG10KBall 
{
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_Jump(128,"SFX")
		TNT1 A 0 Bright A_AlertMonsters
		TNT1 A 0 Bright A_PlaySoundEx("weapons/dtech10kball","Voice",1)
		TNT1 A 0 Bright A_SpawnItemEx("BFGTrailParticleBlue",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
		B3S1 E 1 Bright A_SpawnItemEx("PlayerT3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		TNT1 A 0 Bright A_SpawnItemEx("BFGTrailParticleBlue",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
		B3S1 F 1 Bright A_SpawnItemEx("PlayerT3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		TNT1 A 0 Bright A_SpawnItemEx("BFGTrailParticleBlue",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
		B3S1 G 1 Bright A_SpawnItemEx("PlayerT3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		TNT1 A 0 Bright A_SpawnItemEx("BFGTrailParticleBlue",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
		B3S1 H 1 Bright A_SpawnItemEx("PlayerT3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		Loop
	SFX:
		TNT1 A 0 Bright A_AlertMonsters
		TNT1 A 0 Bright A_PlaySoundEx("weapons/dtech10kball","Voice",1)
		TNT1 A 0 Bright A_SpawnItemEx("DTBFGLightningBlue",Random(6,-6),Random(6,-6),Random(16,8),0,0,0,0,128)
		TNT1 A 0 Bright A_SpawnItemEx("BFGTrailParticleBlue",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
		B3S1 E 1 Bright A_SpawnItemEx("PlayerT3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		TNT1 A 0 Bright A_SpawnItemEx("DTBFGLightningBlue2",Random(6,-6),Random(6,-6),Random(16,8),0,0,0,0,128)
		TNT1 A 0 Bright A_SpawnItemEx("BFGTrailParticleBlue",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
		B3S1 F 1 Bright A_SpawnItemEx("PlayerT3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		TNT1 A 0 Bright A_SpawnItemEx("DTBFGLightningBlue",Random(6,-6),Random(6,-6),Random(16,8),0,0,0,0,128)
		TNT1 A 0 Bright A_SpawnItemEx("BFGTrailParticleBlue",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
		B3S1 G 1 Bright A_SpawnItemEx("PlayerT3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		TNT1 A 0 Bright A_SpawnItemEx("DTBFGLightningBlue2",Random(6,-6),Random(6,-6),Random(16,8),0,0,0,0,128)
		TNT1 A 0 Bright A_SpawnItemEx("BFGTrailParticleBlue",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
		B3S1 H 1 Bright A_SpawnItemEx("PlayerT3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		Goto Spawn
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_SetTranslucent(0.75,1)
		TNT1 A 0 Bright Radius_Quake(5,60,0,10,0)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,0,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,10,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,20,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,30,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,40,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,50,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,60,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,70,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,80,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,90,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,100,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,110,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,120,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,130,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,140,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,150,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,160,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,170,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,180,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,190,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,200,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,210,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,220,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,230,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,240,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,250,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,260,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,270,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,280,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,290,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,300,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,310,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,320,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,330,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,340,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_CustomMissile("T3DBFGTracer",0,0,350,CMF_TRACKOWNER|CMF_AIMDIRECTION)
		TNT1 A 0 Bright A_SpawnItemEx("DTBFGLightningBlueSpawner",0,0,15,0,0,0,0,SXF_CLIENTSIDE,0)  
		B3S1 EFGH 6 Bright A_SpawnItemEx("DTech10KShockwaveBlue",0,0,15,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 A 0 Bright A_Explode(480,240,0)
		TNT1 A 0 Bright A_StopSoundEx("Voice")
		TNT1 A 0 Bright Radius_Quake(15,20,0,20,0)
		TNT1 A 0 Bright A_PlaySound("weapons/dtech10kexplode")
		TNT1 A 0 Bright A_SpawnItemEx("DTech10KShockwaveBlue1",0,0,15,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 A 20 Bright A_SpawnItemEx("T3DBFGBallExp")
		Stop  
	}
}

ACTOR T3DBFGBallExploding : T3BaseEffect
{
PROJECTILE
Speed 6
Scale 1.15
Renderstyle Add
Alpha 0.75
Damage (0)
+DONTSPLASH
+FORCEXYBILLBOARD
States
	{
	Spawn:
		TNT1 A 0 Bright
		BXPO AABBCDEFGHIJKLM 2 Bright A_FadeOut(0.05,1)
		Stop
	}
}

ACTOR T3DBFGBallExp : T3BaseEffect
{
RenderStyle Add
Alpha 0.85
+NOGRAVITY
+CLIENTSIDEONLY
States
	{
	Spawn:
		TNT1 A 0 Bright
		B3E1 AAAAAABBBBBBCCCCCCDDDDDD 1 Bright A_CustomMissile("T3DBFGBallExploding",0,0,random(0,360),2,random(0,360))
		B3E1 EF 6 Bright
		Stop
	}
}

ACTOR T3DBFGBoltExpStruckGlowX : LightBlueGuruStruckGlowX { }
ACTOR T3DBFGBoltExpStruckGlowY : LightBlueGuruStruckGlowY { }
ACTOR T3DBFGBoltExpChunkSpark : LightBlueGuruChunkSpark { }
ACTOR T3DBFGBoltExpSphereSmoke : LightBlueGuruSphereSmoke { DamageType "DBFG2" }
ACTOR PlayerT3DBFGBoltExpSphereSmoke : T3DBFGBoltExpSphereSmoke {
  DamageType "PlayerDBFG2"
  +MTHRUSPECIES
  +NODAMAGETHRUST
}

ACTOR T3DBFGBoltExpImpact
{
+NOGRAVITY
+NOBLOCKMAP
+NOTELEPORT 
+BLOODLESSIMPACT
+DONTHARMSPECIES
+MTHRUSPECIES
+THRUSPECIES
DamageType "DBFG2"
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_PlaySound("Weapons/GuruBlast3",5)
		TNT1 A 0 Bright A_Explode(512,256,0,1)
		//COLLATERAL DAMAGE EFFECTS
		TNT1 A 0 A_SpawnItemEx("T3DBFGBoltExpStruckGlowX",0,0,10,0,0,0,0,128,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBoltExpStruckGlowY",0,0,10,0,0,0,0,128,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBoltExpImpactFlareSpawner",0,0,10,0,0,0,0,128,0)
		TNT1 AAAAAAAAAAA 0 A_SpawnItemEx("T3DBFGBoltExpSphereSmoke",random(126,-126),random(126,-126),random(66,-66),0.00001*random(100000,-100000),0.00001*random(100000,-100000),0.00001*random(100000,-100000),random(0,359),SXF_SETMASTER,0)
		TNT1 AAAAAAAAAAA 0 A_SpawnItemEx("T3DBFGBoltExpChunkSpark",random(126,-126),random(126,-126),random(66,-66),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 AAAAAAAAAAAAAAAAAAA 2 A_SpawnItemEx("T3DBFGBoltExpChunkSpark",random(126,-126),random(126,-126),random(66,-66),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		Stop
	}
}

ACTOR T3DBFGBoltExpImpactFlare : T3BaseEffect
{
RenderStyle Add
States
	{
	Spawn:
		TNT1 A 0 Bright
		BLFL A 1 Bright A_FadeOut(0.05,1)
		Goto Spawn+1
	}
}

ACTOR T3DBFGBoltExpImpactFlareSpawner : T3BaseEffect
{
States
	{
	Spawn:
		TNT1 A 0
		TNT1 AAAAA 0 A_SpawnItemEx("T3DBFGBoltExpImpactFlare", Random(-64, 64), Random(-64, 64), Random(-64, 64), Random(-1, 1), Random(-1, 1), Random(-1, 1))
		TNT1 AAAAA 1 A_SpawnItemEx("T3DBFGBoltExpImpactFlare", Random(-128, 128), Random(-128, 128), Random(-128, 128), Random(-1, 1), Random(-1, 1), Random(-1, 1))
		Stop
	}
}

ACTOR PlayerT3DBFGBoltExpImpact : T3DBFGBoltExpImpact
{
Species "Player"
DamageType "PlayerDBFG2"
+MTHRUSPECIES
+NODAMAGETHRUST
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_PlaySound("Weapons/GuruBlast3",5)
		TNT1 A 0 A_Explode(512,256,0,1)
		//COLLATERAL DAMAGE EFFECTS
		TNT1 A 0 A_SpawnItemEx("T3DBFGBoltExpStruckGlowX",0,0,10,0,0,0,0,128,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBoltExpStruckGlowY",0,0,10,0,0,0,0,128,0)
		TNT1 AAAAAAAAAAA 0 A_SpawnItemEx("PlayerT3DBFGBoltExpSphereSmoke",random(126,-126),random(126,-126),random(66,-66),0.00001*random(100000,-100000),0.00001*random(100000,-100000),0.00001*random(100000,-100000),random(0,359),SXF_SETMASTER,0)
		TNT1 AAAAAAAAAAA 0 A_SpawnItemEx("T3DBFGBoltExpChunkSpark",random(126,-126),random(126,-126),random(66,-66),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 AAAAAAAAAAAAAAAAAAA 2 A_SpawnItemEx("T3DBFGBoltExpChunkSpark",random(126,-126),random(126,-126),random(66,-66),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		Stop
	}
}

ACTOR T3DBFGBoltExp
{
Renderstyle Add
Alpha 0.95
+NOGRAVITY
+NOTELEPORT 
+NOBLOCKMAP
+NODAMAGETHRUST
+FORCERADIUSDMG
+BLOODLESSIMPACT
+THRUSPECIES
+MTHRUSPECIES
+DONTHARMSPECIES
DamageType "DBFG2"
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright Radius_Quake(5,60,0,10,0)
		TNT1 A 0 A_SpawnItemEx("T3DTBFGLightningSpawner",0,0,15,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 Bright A_SpawnItemEx("T3DBFGBallShockwave",0,0,15,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
        TNT1 A 0 Bright A_SpawnItemEx("T3DBFGBallShockwave",0,0,15,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		D3PP B 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP B 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP B 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP B 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP B 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP B 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
        TNT1 A 0 A_SpawnItemEx("T3DBFGBoltExpB",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
        TNT1 A 0 Bright A_SpawnItemEx("T3DBFGBallShockwave",0,0,15,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		D3PP C 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP C 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP C 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP C 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP C 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP C 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
        TNT1 A 0 Bright A_SpawnItemEx("T3DBFGBallShockwave",0,0,15,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
        TNT1 A 0 A_SpawnItemEx("T3DBFGBoltExpC",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
        TNT1 AAA 0 Bright A_StopSound(CHAN_VOICE)
        TNT1 A 0 Bright Radius_Quake(15,20,0,20,0)
		TNT1 A 0 Bright A_PlaySound("Weapons/dbfgexplode",CHAN_AUTO,1.0,False,ATTN_NONE)
        //TNT1 A 0 A_SpawnItemEx("T3DBFGBallShockwaveLrg",0,0,15,0,0,0,0,128)
        TNT1 A 20 A_SpawnItemEx("T3DBFGBallExp")
		TNT1 A 0 A_SpawnItemEx("T3DBFGBoltExpImpact")
        TNT1 A 0 A_SpawnItemEx("T3DBFGBallShockwaveLrg",0,0,15,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0
		//TNT1 A 0 A_PlaySound("Weapons/dbfgexplode",CHAN_BODY,1.0,False,ATTN_NONE)
        //TNT1 A 0 A_SpawnItemEx("T3DBFGBoltExpB",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
        //TNT1 A 0 A_SpawnItemEx("T3DBFGBoltExpC",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PX A 3 Bright A_FadeOut(0.05,1)
		D3PX B 3 Bright A_FadeOut(0.05,1)
        //TNT1 A 0 A_SpawnItemEx("T3DBFGBoltLrgExpB",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
        TNT1 A 0 A_SpawnItemEx("T3DBFGBoltLrgExpC",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PX C 3 Bright A_FadeOut(0.045,1)
		D3PX D 3 Bright A_FadeOut(0.035,1)
        TNT1 A 0 A_SpawnItemEx("T3DBFGBoltExtLrgExpB",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
        //TNT1 A 0 A_SpawnItemEx("T3DBFGBoltExpC",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PX A 3 Bright A_FadeOut(0.05,1)
		D3PX B 3 Bright A_FadeOut(0.05,1)
        //TNT1 AA 0 A_SpawnItemEx("T3DBFGBoltLrgExpB",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
        //TNT1 AAA 0 A_SpawnItemEx("T3DBFGBoltLrgExpC",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PX C 3 Bright A_FadeOut(0.045,1)
		D3PX D 3 Bright A_FadeOut(0.035,1)
        //TNT1 A 0 A_SpawnItemEx("T3DBFGBoltExpB",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
        //TNT1 A 0 A_SpawnItemEx("T3DBFGBoltExtLrgExpC",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PX E 3 Bright A_FadeOut(0.025,1)
		D3PX F 3 Bright A_FadeOut(0.015,1)
		D3PX G 4 Bright A_FadeOut(0.065,1)
	Continuous:
		D3PX G 1 Bright A_FadeOut(0.065,1)
		Loop
	}
}

ACTOR PlayerT3DBFGBoltExp : T3DBFGBoltExp
{
Species "Player"
DamageType ""
DamageType "PlayerDBFG2"
+MTHRUSPECIES
+NODAMAGETHRUST
States
	{
	Spawn:
		TNT1 A 0 Bright
        TNT1 A 0 Bright Radius_Quake(5,60,0,10,0)
        TNT1 A 0 A_SpawnItemEx("T3DTBFGLightningSpawner",0,0,15,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 Bright A_SpawnItemEx("T3DBFGBallShockwave",0,0,15,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
        TNT1 A 0 Bright A_SpawnItemEx("T3DBFGBallShockwave",0,0,15,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		D3PP B 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP B 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP B 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP B 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP B 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP B 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
        TNT1 A 0 A_SpawnItemEx("T3DBFGBoltExpB",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
        TNT1 A 0 Bright A_SpawnItemEx("T3DBFGBallShockwave",0,0,15,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		D3PP C 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP C 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP C 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP C 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP C 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP C 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
        TNT1 A 0 Bright A_SpawnItemEx("T3DBFGBallShockwave",0,0,15,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
        TNT1 A 0 A_SpawnItemEx("T3DBFGBoltExpC",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
        TNT1 AAA 0 Bright A_StopSound(CHAN_VOICE)
        TNT1 A 0 Bright Radius_Quake(15,20,0,20,0)
		TNT1 A 0 Bright A_PlaySound("Weapons/dbfgexplode",CHAN_AUTO,1.0,False,ATTN_NONE)
        //TNT1 A 0 A_SpawnItemEx("T3DBFGBallShockwaveLrg",0,0,15,0,0,0,0,128)
        TNT1 A 20 A_SpawnItemEx("T3DBFGBallExp")
		TNT1 A 0 A_SpawnItemEx("PlayerT3DBFGBoltExpImpact")
        TNT1 A 0 A_SpawnItemEx("T3DBFGBallShockwaveLrg",0,0,15,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0
		//TNT1 A 0 A_PlaySound("Weapons/dbfgexplode",CHAN_BODY,1.0,False,ATTN_NONE)
        //TNT1 A 0 A_SpawnItemEx("T3DBFGBoltExpB",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
        //TNT1 A 0 A_SpawnItemEx("T3DBFGBoltExpC",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PX A 3 Bright A_FadeOut(0.05,1)
		D3PX B 3 Bright A_FadeOut(0.05,1)
        //TNT1 A 0 A_SpawnItemEx("T3DBFGBoltLrgExpB",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
        TNT1 A 0 A_SpawnItemEx("T3DBFGBoltLrgExpC",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PX C 3 Bright A_FadeOut(0.045,1)
		D3PX D 3 Bright A_FadeOut(0.035,1)
        TNT1 A 0 A_SpawnItemEx("T3DBFGBoltExtLrgExpB",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
        //TNT1 A 0 A_SpawnItemEx("T3DBFGBoltExpC", random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PX A 3 Bright A_FadeOut(0.05,1)
		D3PX B 3 Bright A_FadeOut(0.05,1)
        //TNT1 AA 0 A_SpawnItemEx("T3DBFGBoltLrgExpB",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
        //TNT1 AAA 0 A_SpawnItemEx("T3DBFGBoltLrgExpC",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PX C 3 Bright A_FadeOut(0.045,1)
		D3PX D 3 Bright A_FadeOut(0.035,1)
        //TNT1 A 0 A_SpawnItemEx("T3DBFGBoltExpB",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
        //TNT1 A 0 A_SpawnItemEx("T3DBFGBoltExtLrgExpC",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		D3PX E 3 Bright A_FadeOut(0.025,1)
		D3PX F 3 Bright A_FadeOut(0.015,1)
		D3PX G 4 Bright A_FadeOut(0.065,1)
	Continuous:
		D3PX G 1 Bright A_FadeOut(0.065,1)
		Loop
    }
}

ACTOR T3DBFGBoltExpB : T3DBFGBoltExp
{
States
	{
	Spawn:
		TNT1 A 0 Bright
		D3P1 A 4 Bright A_FadeOut(0.05,1)
		D3P1 B 4 Bright A_FadeOut(0.05,1)
		D3P1 C 4 Bright A_FadeOut(0.045,1)
		D3P1 D 4 Bright A_FadeOut(0.035,1)
		D3P1 E 4 Bright A_FadeOut(0.025,1)
		D3P1 F 4 Bright A_FadeOut(0.015,1)
		D3P1 G 4 Bright A_FadeOut(0.065,1)
	Continuous:
		D3P1 G 1 Bright A_FadeOut(0.065,1)
		Loop
	}
}

ACTOR T3DBFGBoltSmlExpB : T3DBFGBoltExpB
{
Scale 0.5
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 0 Bright A_PlaySound("Weapons/dbfgwave", CHAN_AUTO)
		D3P1 A 3 Bright A_FadeOut(0.05,1)
		D3P1 B 3 Bright A_FadeOut(0.05,1)
		D3P1 C 3 Bright A_FadeOut(0.045,1)
		D3P1 D 3 Bright A_FadeOut(0.035,1)
		D3P1 E 3 Bright A_FadeOut(0.025,1)
		D3P1 F 3 Bright A_FadeOut(0.015,1)
		D3P1 G 3 Bright A_FadeOut(0.065,1)
	Continuous:
		D3P1 G 1 Bright A_FadeOut(0.065,1)
		Loop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR T3DBFGBoltLrgExpB : T3DBFGBoltExpB { Scale 2.0 }
ACTOR T3DBFGBoltExtLrgExpB : T3DBFGBoltExpB { Scale 4.0 }

ACTOR T3DBFGBoltExpC : T3DBFGBoltExp
{
States
	{
	Spawn:
		D3P2 A 4 Bright A_FadeOut(0.05,1)
		D3P2 B 4 Bright A_FadeOut(0.05,1)
		D3P2 C 4 Bright A_FadeOut(0.045,1)
		D3P2 D 4 Bright A_FadeOut(0.035,1)
		D3P2 E 4 Bright A_FadeOut(0.025,1)
		D3P2 F 4 Bright A_FadeOut(0.015,1)
		D3P2 G 4 Bright A_FadeOut(0.065,1)
	Continuous:
		D3P2 G 1 Bright A_FadeOut(0.065,1)
		Loop
	}
}

ACTOR T3DBFGBoltSmlExpC : T3DBFGBoltExpB
{
Scale 0.5
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")    D3P2 A 3 Bright A_FadeOut(0.05)
		D3P2 B 3 Bright A_FadeOut(0.05,1)
		D3P2 C 3 Bright A_FadeOut(0.045,1)
		D3P2 D 3 Bright A_FadeOut(0.035,1)
		D3P2 E 3 Bright A_FadeOut(0.025,1)
		D3P2 F 3 Bright A_FadeOut(0.015,1)
		D3P2 G 3 Bright A_FadeOut(0.065,1)
	Continuous:
		D3P2 G 1 Bright A_FadeOut(0.065,1)
		Loop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR T3DBFGBoltLrgExpC : T3DBFGBoltExpC { Scale 2.0 }
ACTOR T3DBFGBoltExtLrgExpC : T3DBFGBoltExpC { Scale 4.0 }

Actor T3DBFG10kDeathParticleSpawner
{
+Missile
+NoClip
+NoBlockMap
+NoGravity
+NOTELEPORT
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 AAAAA 1 A_SpawnItemEx("T3DBFG10kDeathParticle", 0, 0, 0, (0.1)*Random(20, 45), 0, (0.1)*Random(-40, 40), Random(0, 360), SXF_CLIENTSIDE)
		TNT1 AAAAA 0 A_SpawnItemEx("T3DBFG10kDeathParticle", 0, 0, 0, (0.1)*Random(20, 45), 0, (0.1)*Random(-40, 40), Random(0, 360), SXF_CLIENTSIDE)
		TNT1 AAAAA 1 A_SpawnItemEx("T3DBFG10kDeathParticle", 0, 0, 0, (0.1)*Random(20, 45), 0, (0.1)*Random(-40, 40), Random(0, 360), SXF_CLIENTSIDE)
		TNT1 AAAAA 0 A_SpawnItemEx("T3DBFG10kDeathParticle", 0, 0, 0, (0.1)*Random(20, 45), 0, (0.1)*Random(-40, 40), Random(0, 360), SXF_CLIENTSIDE)
		TNT1 A 1 Bright
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

Actor T3DBFG10kDeathParticle
{
Height 0
Radius 0
Mass 0
Scale 0.04
RenderStyle Add
+Missile
-NoGravity
+NoBlockMap
+NOTELEPORT
+LowGravity
+DontSplash
+DoomBounce
BounceFactor 0.7
States
	{
	Spawn:
		TNT1 A 0 Bright
	Death:
		SSKB A 2 Bright A_FadeOut(0.05,1)
		Loop
	}
}

ACTOR T3DBFGRailgunSlug : ProjectileBullet
{
Decal None
Damage 16
+RIPPER
+FOILINVUL
+NOBOSSRIP
+BLOODLESSIMPACT
+NODAMAGETHRUST
-NOEXTREMEDEATH
+THRUSPECIES
+MTHRUSPECIES
DamageType "DBFG2"
States
	{
	Death:
	XDeath:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR PlayerT3DBFGRailgunSlug : T3DBFGRailgunSlug
{
Species "Player"
DamageType ""
DamageType "PlayerDBFG2"
}

Actor T3DBFG10kShot : FastProjectile
{
Projectile
Height 1 // 8
Radius 1 // 11
Speed 200
Renderstyle Add
Alpha 0.75
Damage 75 // 100
+THRUSPECIES
//+MTHRUSPECIES
+NOEXTREMEDEATH
+ActivatePCross
+FORCEXYBILLBOARD
+ForceRadiusDmg
DamageType "DBFG10K2"
DeathSound "Weapons/dbfgexplode2"
States
	{
	Spawn:
		TRC5 A 1 Bright
		Loop
	Death:
	XDeath:
		TNT1 A 0 Bright
		TNT1 A 0 A_SpawnItemEx("T3DBFG10kDeathParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGShotShockwave",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 A 0 Bright A_Detonate
		BG3X A 3 Bright A_SpawnItemEx("T3DBFGShotShockwaveDmg",16,16,0,0,0,0,0,SXF_SETMASTER,0)
		BG3X B 3 Bright A_SpawnItemEx("T3DBFGShotShockwaveDmg",-16,16,0,0,0,0,0,SXF_SETMASTER,0)
		BG3X C 3 Bright A_SpawnItemEx("T3DBFGShotShockwaveDmg",16,-16,0,0,0,0,0,SXF_SETMASTER,0)
		BG3X D 3 Bright A_SpawnItemEx("T3DBFGShotShockwaveDmg",-16,-16,0,0,0,0,0,SXF_SETMASTER,0)
		BG3X E 3 Bright A_SpawnItemEx("T3DBFGShotShockwaveDmg",0,0,16,0,0,0,0,SXF_SETMASTER,0)
		BG3X F 3 Bright A_SpawnItemEx("T3DBFGShotShockwaveDmg",0,0,-16,0,0,0,0,SXF_SETMASTER,0)
		Stop
	}
}

ACTOR T3DBFGShotShockwaveDmg
{
+NOCLIP
+NOBLOCKMAP
+NOTELEPORT
+FORCERADIUSDMG
+NODAMAGETHRUST
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 1 Bright A_Explode(32,128,0,1)
		Stop
	}
}


ACTOR PlayerT3DBFG10kShot : T3DBFG10kShot
{
Species "Player"
DamageType "PlayerDBFG10K2"
+FOILINVUL
+MTHRUSPECIES
+NODAMAGETHRUST
}

ACTOR T3DBFGBall : BFGBall
{  
Height 40
Radius 20
Speed 26
Alpha 0.75
Scale 1.5
Decal "DBFGLightning"
Damage 100
+RIPPER
+FOILINVUL
+FORCERADIUSDMG
DamageType "DBFG2"
SeeSound ""
DeathSound "Weapons/bfg27ex"
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(128,"SpawnSFX")
		TNT1 A 0 A_AlertMonsters
		TNT1 A 0 A_PlaySound("Weapons/dbfgball",CHAN_VOICE,1.0,True)
		TNT1 A 0 A_Jump(128,3)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBoltSmlExpB",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBoltSmlExpC",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		TNT1 A 0 A_Explode(128,256,0,false,64)
		TNT1 A 0 A_SpawnItemEx("T3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(2,-2),random(2,-2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(2,-2),random(2,-2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_Explode(128,256,0,false,64)
		TNT1 A 0 A_SpawnItemEx("T3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		D3PP B 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		D3PP B 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(2,-2),random(2,-2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),Random(-2,2),Random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_Explode(128,256,0,false,64)
		TNT1 A 0 A_SpawnItemEx("T3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		D3PP C 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(2,-2),random(2,-2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		D3PP C 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(2,-2),random(2,-2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),Random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		Loop
	"SpawnSFX":
		TNT1 A 0 A_AlertMonsters
		TNT1 A 0 A_PlaySound("Weapons/dbfgball", CHAN_VOICE, 1.0, True)
		TNT1 A 0 A_Jump(128,3)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBoltSmlExpB",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBoltSmlExpC",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		TNT1 A 0 A_Explode(128,256,0,false,64)
		TNT1 A 0 A_SpawnItemEx("T3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallLightningBolt",random(-6,6),random(-6,6),Random(8,16),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallLightningBolt",random(-6,6),random(-6,6),random(8,16),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_Explode(128,256,0,false,64)
		TNT1 A 0 A_SpawnItemEx("T3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		D3PP B 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallLightningBolt",random(-6,6),random(-6,6),random(8,16),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		D3PP B 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallLightningBolt",random(-6,6),random(-6,6),random(8,16),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_Explode(128,256,0,false,64)
		TNT1 A 0 A_SpawnItemEx("T3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		D3PP C 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallLightningBolt",random(-6,6),random(-6,6),random(8,16),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		D3PP C 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallLightningBolt",random(-6,6),random(-6,6),random(8,16),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		Loop
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_SpawnItemEx("T3DBFGBoltExp")
		//TNT1 A 0 Bright A_SpawnItemEx("T3DBFGBoltExpImpact")
		//TNT1 A 0 Bright A_Explode(1024,1024,0,false,256)
		TNT1 A 0 Bright A_Explode(256,256,0,false,128)
		TNT1 A 0 Bright A_Quake(4,35*2,0,4096,"None")
		TNT1 A 8 Bright
		TNT1 A 0 Bright A_Explode(256,384,0,false,128)
		TNT1 A 8 Bright
		TNT1 A 0 Bright A_Explode(256,512,0,false,256)
		TNT1 A 8 Bright A_BFGSpray("T3DBFGExtra",40,30)
		TNT1 A 0 Bright A_Explode(256,512,0,false,256)
		TNT1 A 8 Bright
		TNT1 A 0 Bright A_Explode(256,512,0,false,256)
		TNT1 A 8 Bright
		TNT1 A 0 Bright A_Explode(256,512,0,false,256)
		TNT1 A 8 Bright
		TNT1 A 1 Bright A_Explode(256,512,0,false,256)
		TNT1 A 10 Bright
		Stop
	}
}

ACTOR PlayerT3DBFGBall : T3DBFGBall
{
Species "Player"
DamageType "PlayerDBFG2"
+MTHRUSPECIES
+NODAMAGETHRUST
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(128,"SpawnSFX")
		TNT1 A 0 A_AlertMonsters
		TNT1 A 0 A_PlaySound("Weapons/dbfgball", CHAN_VOICE, 1.0, True)
		TNT1 A 0 A_Jump(128,3)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBoltSmlExpB",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(1,-1),random(0,359))
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBoltSmlExpC",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(1,-1),random(0,359))
		TNT1 A 0 A_Explode(128,256,0,false,64)
		TNT1 A 0 A_SpawnItemEx("PlayerT3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("PlayerT3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_Explode(128,256,0,false,64)
		TNT1 A 0 A_SpawnItemEx("PlayerT3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		D3PP B 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("PlayerT3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		D3PP B 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),Random(-2,2),Random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_Explode(128,256,0,false,64)
		TNT1 A 0 A_SpawnItemEx("PlayerT3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		D3PP C 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),Random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("PlayerT3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		D3PP C 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		Loop
	"SpawnSFX":
		TNT1 A 0 A_AlertMonsters
		TNT1 A 0 A_PlaySound("Weapons/dbfgball",CHAN_VOICE,1.0,True)
		TNT1 A 0 A_Jump(128,3)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBoltSmlExpB",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBoltSmlExpC",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		TNT1 A 0 A_Explode(128,256,0,false,64)
		TNT1 A 0 A_SpawnItemEx("PlayerT3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),Random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallLightningBolt",random(-6,6),random(-6,6),random(8,16),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("PlayerT3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallLightningBolt",Random(6,-6),Random(6,-6),Random(16,8),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_Explode(128,256,0,false,64)
		TNT1 A 0 A_SpawnItemEx("PlayerT3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		D3PP B 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, SXF_NOCHECKPOSITION|SXF_CLIENTSIDE, 0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle", random(1,-1), frandom(1,-1), frandom(1,-1), frandom(1,1), frandom(1,1), frandom(1,-1), random(0,359))
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallLightningBolt",random(-6,6),random(-6,6),random(8,16),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("PlayerT3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		D3PP B 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallLightningBolt",random(-6,6),random(-6,6),random(8,16),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_Explode(128,256,0,false,64)
		TNT1 A 0 A_SpawnItemEx("PlayerT3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		D3PP C 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallLightningBolt",random(-6,6),random(-6,6),random(8,16),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("PlayerT3DBFGShockAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		D3PP C 1 Bright A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticle",random(-1,1),random(-1,1),random(-1,1),frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(-1.0,1.0),random(0,359))
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("T3DBFGBallLightningBolt",random(-6,6),random(-6,6),random(8,16),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		Loop
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_SpawnItemEx("PlayerT3DBFGBoltExp")
		//TNT1 A 0 Bright A_SpawnItemEx("T3DBFGBoltExpImpact")
		//TNT1 A 0 Bright A_Explode(1024,1024,0,false,256)
		TNT1 A 0 Bright A_Explode(256,256,0,false,128)
		TNT1 A 0 Bright A_Quake(4,35*2,0,4096, none)
		TNT1 A 8 Bright
		TNT1 A 0 Bright A_Explode(256,384,0,false,128)
		TNT1 A 8 Bright
		TNT1 A 0 Bright A_Explode(256,512,0,false,256)
		TNT1 A 8 Bright A_BFGSpray("PlayerT3DBFGExtra",40,30)
		TNT1 A 0 Bright A_Explode(256,512,0,false,256)
		TNT1 A 8 Bright
		TNT1 A 0 Bright A_Explode(256,512,0,false,256)
		TNT1 A 8 Bright
		TNT1 A 0 Bright A_Explode(256,512,0,false,256)
		TNT1 A 8 Bright
		TNT1 A 1 Bright A_Explode(256,512,0,false,256)
		TNT1 A 10 Bright
		Stop
	}
}

ACTOR T3DBFGExtra
{
+NOGRAVITY
+NOBLOCKMAP
+NONSHOOTABLE
RenderStyle Add
Alpha 0.75
DamageType "DBFGSplash2"
States
	{
	Spawn:
		TNT1 A 0 Bright
		BG3E ABCD 8 Bright
		Stop
	}
}

ACTOR PlayerT3DBFGExtra : T3DBFGExtra
{
Species "Player"
DamageType "PlayerDBFGSplash2"
+MTHRUSPECIES
+NODAMAGETHRUST
}