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

ACTOR T3DBFGShockAttack
{
  Projectile
  +LOOKALLAROUND
  +ISMONSTER
  +QUICKTORETALIATE
  +NOTARGET
  +FRIENDLY
  +NOCLIP
  Obituary "%o got shocked by %k's D-BFG."
  DamageType "DBFG2"
  MissileType "T3DBFGRailgunSlug"
  States
  {
  Spawn:
    TNT1 A 0
	TNT1 AAAAA 1 A_Look
	Stop
  See:
    TNT1 A 0
	TNT1 A 1 A_JumpIfCloser(1250,"Attack")
	Stop
  Attack:
    TNT1 A 0
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_MissileAttack
	TNT1 A 1 A_CustomRailgun(-1,0,NONE,"White",1,1,2)
	Goto Death	
  Death:
	TNT1 A 1
	Stop
  }
}

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

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

ACTOR T3DBFGBallParticle : T3BaseEffect
{
    Scale 0.5
	Alpha 0.75
	Renderstyle Add
	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))
			TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleTrail", 0, 0, 0, 0)

			SSKB B 1 Bright A_FadeOut(0.08+random(0.0075,-0.0075))
			TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleTrail", 0, 0, 0, 0)

			SSKB C 1 Bright A_FadeOut(0.08+random(0.0075,-0.0075))
			TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleTrail", 0, 0, 0, 0)

			SSKB B 1 Bright A_FadeOut(0.08+random(0.0075,-0.0075))
			TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleTrail", 0, 0, 0, 0)

			SSKB A 1 Bright A_FadeOut(0.08+random(0.0075,-0.0075))
			TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleTrail", 0, 0, 0, 0)

			SSKB B 1 Bright A_FadeOut(0.08+random(0.0075,-0.0075))
			TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleTrail", 0, 0, 0, 0)

			SSKB C 1 Bright A_FadeOut(0.08+random(0.0075,-0.0075))
			TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleTrail", 0, 0, 0, 0)
			Loop
	}
}

ACTOR T3DBFGBallParticleTrail : T3BaseEffect
{
    Scale 0.5
	Alpha 0.75
	Renderstyle Add
	States
	{
		Spawn:
			TNT1 A 0
   			TNT1 A 0 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.10)
   			TNT1 A 0 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.10)
   			TNT1 A 0 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.10)
			Stop
	}
}


ACTOR T3DBFGBallLightningBolt : T3LightningBolt
{
Scale 0.35
}

ACTOR T3DTBFGLightningSpawner : T3BaseEffect
{
+NOGRAVITY
States
{
Spawn:
    TNT1 A 0
	TNT1 A 0 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
{
  Alpha 0.9
  Renderstyle Add
  +DONTSPLASH
  +FORCEXYBILLBOARD

  States
  {
    Spawn:
      BG3W ABCDEFGHIJKLMNOPQR 1 Bright A_FadeOut(0.04)
      Stop
  }
}

ACTOR T3DBFGBallShockwaveLrg : T3DBFGBallShockwave
{
  Scale 2.5
  Alpha 0.85
  States
  {
    Spawn:
      BG3W ABCDEFGHIJKLMNOPQR 2 Bright A_FadeOut(0.04)
      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
	Stop
See:
    TNT1 A 0
	TNT1 A 1 A_JumpIfCloser(1250,"Attack")
	Stop
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, 128)
   BG3E BCD 6 Bright 
   Stop
   }
}

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

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

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

ACTOR T3DBFGBallExp : T3BaseEffect
{
  RenderStyle Add
  Alpha 0.85
  +CLIENTSIDEONLY
  +NOGRAVITY
  States
  {
    Spawn:
	  TNT1 A 0
      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" }

ACTOR T3DBFGBoltExpImpact
{
+DONTHARMSPECIES
+MTHRUSPECIES
+THRUSPECIES
+NOBLOCKMAP
+NOTELEPORT 
+BLOODLESSIMPACT
+NOGRAVITY
DamageType "DBFG2"

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 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),0,0)
	TNT1 AAAAAAAAAAA 0 A_SpawnItemEx("T3DBFGBoltExpChunkSpark",random(126,-126),random(126,-126),random(66,-66),0,0,0,0,0,0)
	TNT1 AAAAAAAAAAAAAAAAAAA 2 A_SpawnItemEx("T3DBFGBoltExpChunkSpark",random(126,-126),random(126,-126),random(66,-66),0,0,0,0,0,0)
	Stop
}
}

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

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"
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),0,0)
	TNT1 AAAAAAAAAAA 0 A_SpawnItemEx("T3DBFGBoltExpChunkSpark",random(126,-126),random(126,-126),random(66,-66),0,0,0,0,0,0)
	TNT1 AAAAAAAAAAAAAAAAAAA 2 A_SpawnItemEx("T3DBFGBoltExpChunkSpark",random(126,-126),random(126,-126),random(66,-66),0,0,0,0,0,0)
	Stop
}
}

ACTOR T3DBFGBoltExp
{
    +NODAMAGETHRUST
    +MTHRUSPECIES
    +THRUSPECIES
    +NOBLOCKMAP
    +NOTELEPORT 
    +FORCERADIUSDMG
    +BLOODLESSIMPACT
	+NOBLOCKMAP
	+DONTHARMSPECIES
	+NOGRAVITY
	Renderstyle Add

    Alpha 0.95
    DamageType "DBFG2"
	RenderStyle Add

	States {
	Spawn:
        TNT1 A 0 Radius_Quake(5,60,0,10,0)
        TNT1 A 0 A_SpawnItemEx("T3DTBFGLightningSpawner", 0, 0, 15, 0, 0, 0, 0, 128)	

        TNT1 A 0 Bright A_SpawnItemEx("T3DBFGBallShockwave", 0, 0, 15, 0, 0, 0, 0, 128)
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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 Bright A_SpawnItemEx("T3DBFGBallShockwave", 0, 0, 15, 0, 0, 0, 0, 128)
		D3PP B 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP B 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP B 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP B 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP B 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP B 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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("T3DBFGBoltExpB", random(1,-1), frandom(1,-1), frandom(1,-1), frandom(1,1), frandom(1,1), frandom(1,-1), random(0,359))

        TNT1 A 0 Bright A_SpawnItemEx("T3DBFGBallShockwave", 0, 0, 15, 0, 0, 0, 0, 128)
		D3PP C 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP C 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP C 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP C 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP C 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP C 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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 Bright A_SpawnItemEx("T3DBFGBallShockwave", 0, 0, 15, 0, 0, 0, 0, 128)
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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("T3DBFGBoltExpC", 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_StopSound(CHAN_VOICE)
        TNT1 A 0 Radius_Quake(15,20,0,20,0)
		TNT1 A 0 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, 128)


		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), frandom(1,-1), frandom(1,-1), frandom(1,1), frandom(1,1), frandom(1,-1), random(0,359))
        //TNT1 A 0 A_SpawnItemEx("T3DBFGBoltExpC", random(1,-1), frandom(1,-1), frandom(1,-1), frandom(1,1), frandom(1,1), frandom(1,-1), random(0,359))

		D3PX A 3 Bright A_FadeOut(0.05)
		D3PX B 3 Bright A_FadeOut(0.05)

        //TNT1 A 0 A_SpawnItemEx("T3DBFGBoltLrgExpB", 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("T3DBFGBoltLrgExpC", random(1,-1), frandom(1,-1), frandom(1,-1), frandom(1,1), frandom(1,1), frandom(1,-1), random(0,359))

		D3PX C 3 Bright A_FadeOut(0.045)
		D3PX D 3 Bright A_FadeOut(0.035)

        TNT1 A 0 A_SpawnItemEx("T3DBFGBoltExtLrgExpB", 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("T3DBFGBoltExpC", random(1,-1), frandom(1,-1), frandom(1,-1), frandom(1,1), frandom(1,1), frandom(1,-1), random(0,359))

		D3PX A 3 Bright A_FadeOut(0.05)
		D3PX B 3 Bright A_FadeOut(0.05)

        //TNT1 AA 0 A_SpawnItemEx("T3DBFGBoltLrgExpB", random(1,-1), frandom(1,-1), frandom(1,-1), frandom(1,1), frandom(1,1), frandom(1,-1), random(0,359))
        //TNT1 AAA 0 A_SpawnItemEx("T3DBFGBoltLrgExpC", random(1,-1), frandom(1,-1), frandom(1,-1), frandom(1,1), frandom(1,1), frandom(1,-1), random(0,359))

		D3PX C 3 Bright A_FadeOut(0.045)
		D3PX D 3 Bright A_FadeOut(0.035)

        //TNT1 A 0 A_SpawnItemEx("T3DBFGBoltExpB", 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("T3DBFGBoltExtLrgExpC", random(1,-1), frandom(1,-1), frandom(1,-1), frandom(1,1), frandom(1,1), frandom(1,-1), random(0,359))

		D3PX E 3 Bright A_FadeOut(0.025)
		D3PX F 3 Bright A_FadeOut(0.015)

		D3PX G 4 Bright A_FadeOut(0.065)

	Continuous:
		D3PX G 1 Bright A_FadeOut(0.065)
		Loop
    }
}

ACTOR PlayerT3DBFGBoltExp : T3DBFGBoltExp
{
Species "Player"
DamageType "PlayerDBFG2"

States {
	Spawn:
        TNT1 A 0 Radius_Quake(5,60,0,10,0)
        TNT1 A 0 A_SpawnItemEx("T3DTBFGLightningSpawner", 0, 0, 15, 0, 0, 0, 0, 128)	

        TNT1 A 0 Bright A_SpawnItemEx("T3DBFGBallShockwave", 0, 0, 15, 0, 0, 0, 0, 128)
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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 Bright A_SpawnItemEx("T3DBFGBallShockwave", 0, 0, 15, 0, 0, 0, 0, 128)
		D3PP B 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP B 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP B 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP B 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP B 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP B 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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("T3DBFGBoltExpB", random(1,-1), frandom(1,-1), frandom(1,-1), frandom(1,1), frandom(1,1), frandom(1,-1), random(0,359))

        TNT1 A 0 Bright A_SpawnItemEx("T3DBFGBallShockwave", 0, 0, 15, 0, 0, 0, 0, 128)
		D3PP C 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP C 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP C 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP C 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP C 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP C 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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 Bright A_SpawnItemEx("T3DBFGBallShockwave", 0, 0, 15, 0, 0, 0, 0, 128)
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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))
		D3PP A 1 Bright A_SpawnItemEx("T3DBFGBallTrail", 0, random(2,-2), random(2,-2), 0, 0, 0, 0, 128, 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("T3DBFGBoltExpC", 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_StopSound(CHAN_VOICE)
        TNT1 A 0 Radius_Quake(15,20,0,20,0)
		TNT1 A 0 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, 128)


		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), frandom(1,-1), frandom(1,-1), frandom(1,1), frandom(1,1), frandom(1,-1), random(0,359))
        //TNT1 A 0 A_SpawnItemEx("T3DBFGBoltExpC", random(1,-1), frandom(1,-1), frandom(1,-1), frandom(1,1), frandom(1,1), frandom(1,-1), random(0,359))

		D3PX A 3 Bright A_FadeOut(0.05)
		D3PX B 3 Bright A_FadeOut(0.05)

        //TNT1 A 0 A_SpawnItemEx("T3DBFGBoltLrgExpB", 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("T3DBFGBoltLrgExpC", random(1,-1), frandom(1,-1), frandom(1,-1), frandom(1,1), frandom(1,1), frandom(1,-1), random(0,359))

		D3PX C 3 Bright A_FadeOut(0.045)
		D3PX D 3 Bright A_FadeOut(0.035)

        TNT1 A 0 A_SpawnItemEx("T3DBFGBoltExtLrgExpB", 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("T3DBFGBoltExpC", random(1,-1), frandom(1,-1), frandom(1,-1), frandom(1,1), frandom(1,1), frandom(1,-1), random(0,359))

		D3PX A 3 Bright A_FadeOut(0.05)
		D3PX B 3 Bright A_FadeOut(0.05)

        //TNT1 AA 0 A_SpawnItemEx("T3DBFGBoltLrgExpB", random(1,-1), frandom(1,-1), frandom(1,-1), frandom(1,1), frandom(1,1), frandom(1,-1), random(0,359))
        //TNT1 AAA 0 A_SpawnItemEx("T3DBFGBoltLrgExpC", random(1,-1), frandom(1,-1), frandom(1,-1), frandom(1,1), frandom(1,1), frandom(1,-1), random(0,359))

		D3PX C 3 Bright A_FadeOut(0.045)
		D3PX D 3 Bright A_FadeOut(0.035)

        //TNT1 A 0 A_SpawnItemEx("T3DBFGBoltExpB", 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("T3DBFGBoltExtLrgExpC", random(1,-1), frandom(1,-1), frandom(1,-1), frandom(1,1), frandom(1,1), frandom(1,-1), random(0,359))

		D3PX E 3 Bright A_FadeOut(0.025)
		D3PX F 3 Bright A_FadeOut(0.015)

		D3PX G 4 Bright A_FadeOut(0.065)

	Continuous:
		D3PX G 1 Bright A_FadeOut(0.065)
		Loop
    }
}

ACTOR T3DBFGBoltExpB : T3DBFGBoltExp
{

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

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

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

ACTOR T3DBFGBoltLrgExpC : T3DBFGBoltExpC
{
  Scale 2.0
}

ACTOR T3DBFGBoltExtLrgExpC : T3DBFGBoltExpC
{
  Scale 4.0
}


Actor T3DBFG10kDeathParticleSpawner
{
  +NoClip
  +NoBlockMap
  +NoGravity
  +Missile
  States
  {
  Spawn:
    TNT1 A 0
	TNT1 A 0 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), 128)
    TNT1 AAAAA 0 A_SpawnItemEx("T3DBFG10kDeathParticle", 0, 0, 0, (0.1)*Random(20, 45), 0, (0.1)*Random(-40, 40), Random(0, 360), 128)
    TNT1 AAAAA 1 A_SpawnItemEx("T3DBFG10kDeathParticle", 0, 0, 0, (0.1)*Random(20, 45), 0, (0.1)*Random(-40, 40), Random(0, 360), 128)
    TNT1 AAAAA 0 A_SpawnItemEx("T3DBFG10kDeathParticle", 0, 0, 0, (0.1)*Random(20, 45), 0, (0.1)*Random(-40, 40), Random(0, 360), 128)
    TNT1 A 1
    Stop
  Toaster:
    TNT1 A 0
	Stop
  }
}

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

ACTOR T3DBFGRailgunSlug : ProjectileBullet
{
   Damage 8
   Decal None
   +RIPPER
   +NOBOSSRIP   
   +BLOODLESSIMPACT
   +NODAMAGETHRUST
   +THRUSPECIES
   -NOEXTREMEDEATH
   States
   {
   Death:
      TNT1 A 1
      Stop
	  }
}

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

//

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

ACTOR T3DBFGShotShockwaveDmg
{
+ForceRadiusDmg
+NoDamageThrust
+NoClip
+NoBlockMap
States
{
  Spawn:
    TNT1 A 0
	TNT1 A 1 A_Explode(32, 128, 0, 0, True)
	Stop
}
}


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


ACTOR T3DBFGBall : BFGBall
{  
   Alpha 0.75
   Scale 1.5
   Speed 26
   Radius 20
   Height 40
   Damage 100
   Decal "DBFGLightning"
   DeathSound "Weapons/bfg27ex"
   DamageType "DBFG2"
   SeeSound ""
   +MTHRUSPECIES
   +FORCERADIUSDMG
   +NODAMAGETHRUST
   +FOILINVUL
   +RIPPER
   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, 2)
      TNT1 A 0 A_SpawnItemEx("T3DBFGBoltSmlExpB", 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_Jump(256, 1)
      TNT1 A 0 A_SpawnItemEx("T3DBFGBoltSmlExpC", 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_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, 128, 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),128)
      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, 128, 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),128)

	  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, 128, 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),128)
      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, 128, 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),128)

	  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, 128, 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),128)
      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, 128, 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),128)

	  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, 2)
      TNT1 A 0 A_SpawnItemEx("T3DBFGBoltSmlExpB", 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_Jump(256, 1)
      TNT1 A 0 A_SpawnItemEx("T3DBFGBoltSmlExpC", 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_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, 128, 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),128)
      TNT1 A 0 A_SpawnItemEx("T3DBFGBallLightningBolt",Random(6,-6),Random(6,-6),Random(16,8),0,0,0,0,128)
      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, 128, 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),128)
      TNT1 A 0 A_SpawnItemEx("T3DBFGBallLightningBolt",Random(6,-6),Random(6,-6),Random(16,8),0,0,0,0,128)

	  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, 128, 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),128)
      TNT1 A 0 A_SpawnItemEx("T3DBFGBallLightningBolt",Random(6,-6),Random(6,-6),Random(16,8),0,0,0,0,128)
      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, 128, 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),128)
      TNT1 A 0 A_SpawnItemEx("T3DBFGBallLightningBolt",Random(6,-6),Random(6,-6),Random(16,8),0,0,0,0,128)

	  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, 128, 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),128)
      TNT1 A 0 A_SpawnItemEx("T3DBFGBallLightningBolt",Random(6,-6),Random(6,-6),Random(16,8),0,0,0,0,128)
      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, 128, 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),128)
      TNT1 A 0 A_SpawnItemEx("T3DBFGBallLightningBolt",Random(6,-6),Random(6,-6),Random(16,8),0,0,0,0,128)
	  Loop
   Death:
      TNT1 A 0
	  TNT1 A 0 A_SpawnItemEx("T3DBFGBoltExp")
	  //TNT1 A 0 A_SpawnItemEx("T3DBFGBoltExpImpact")
	  //TNT1 A 0 A_Explode(1024, 1024, 0, false, 256)
      TNT1 A 0 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 A_Explode(256, 384, 0, false, 128)

	  TNT1 A 8 Bright
      TNT1 A 0 A_Explode(256, 512, 0, false, 256)

	  TNT1 A 8 Bright A_BFGSpray("T3DBFGExtra", 40, 30)
      TNT1 A 0 A_Explode(256, 512, 0, false, 256)

	  TNT1 A 8 Bright
      TNT1 A 0 A_Explode(256, 512, 0, false, 256)

      TNT1 A 8 Bright
      TNT1 A 0 A_Explode(256, 512, 0, false, 256)

      TNT1 A 8 Bright
      TNT1 A 0 A_Explode(256, 512, 0, false, 256)
      Stop
   }
}

ACTOR PlayerT3DBFGBall : T3DBFGBall
{
Species "Player"
DamageType "PlayerDBFG2"

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, 2)
      TNT1 A 0 A_SpawnItemEx("T3DBFGBoltSmlExpB", 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_Jump(256, 1)
      TNT1 A 0 A_SpawnItemEx("T3DBFGBoltSmlExpC", 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_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, 128, 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),128)
      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, 128, 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),128)

	  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, 128, 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),128)
      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, 128, 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),128)

	  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, 128, 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),128)
      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, 128, 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),128)

	  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, 2)
      TNT1 A 0 A_SpawnItemEx("T3DBFGBoltSmlExpB", 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_Jump(256, 1)
      TNT1 A 0 A_SpawnItemEx("T3DBFGBoltSmlExpC", 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_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, 128, 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),128)
      TNT1 A 0 A_SpawnItemEx("T3DBFGBallLightningBolt",Random(6,-6),Random(6,-6),Random(16,8),0,0,0,0,128)
      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, 128, 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),128)
      TNT1 A 0 A_SpawnItemEx("T3DBFGBallLightningBolt",Random(6,-6),Random(6,-6),Random(16,8),0,0,0,0,128)

	  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, 128, 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),128)
      TNT1 A 0 A_SpawnItemEx("T3DBFGBallLightningBolt",Random(6,-6),Random(6,-6),Random(16,8),0,0,0,0,128)
      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, 128, 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),128)
      TNT1 A 0 A_SpawnItemEx("T3DBFGBallLightningBolt",Random(6,-6),Random(6,-6),Random(16,8),0,0,0,0,128)

	  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, 128, 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),128)
      TNT1 A 0 A_SpawnItemEx("T3DBFGBallLightningBolt",Random(6,-6),Random(6,-6),Random(16,8),0,0,0,0,128)
      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, 128, 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),128)
      TNT1 A 0 A_SpawnItemEx("T3DBFGBallLightningBolt",Random(6,-6),Random(6,-6),Random(16,8),0,0,0,0,128)
	  Loop
   Death:
      TNT1 A 0
	  TNT1 A 0 A_SpawnItemEx("PlayerT3DBFGBoltExp")
	  //TNT1 A 0 A_SpawnItemEx("T3DBFGBoltExpImpact")
	  //TNT1 A 0 A_Explode(1024, 1024, 0, false, 256)
      TNT1 A 0 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 A_Explode(256, 384, 0, false, 128)

	  TNT1 A 8 Bright
      TNT1 A 0 A_Explode(256, 512, 0, false, 256)

	  TNT1 A 8 Bright A_BFGSpray("PlayerT3DBFGExtra", 40, 30)
      TNT1 A 0 A_Explode(256, 512, 0, false, 256)

	  TNT1 A 8 Bright
      TNT1 A 0 A_Explode(256, 512, 0, false, 256)

      TNT1 A 8 Bright
      TNT1 A 0 A_Explode(256, 512, 0, false, 256)

      TNT1 A 8 Bright
      TNT1 A 0 A_Explode(256, 512, 0, false, 256)
      Stop
   }
}

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

ACTOR PlayerT3DBFGExtra : T3DBFGExtra
{
  Species "Player"
  DamageType "PlayerDBFGSplash2"
}
