Actor BFGServant 28201
{
Health 1950
PainChance 10
MeleeDamage 18
Radius 24 
Height 64 
Mass 2000 
Monster
Speed 10 
Scale 1.2
BloodColor "DarkGreen"
Species "Nobles"
DamageFactor "Hell", 0.0
DamageFactor "NobleComet", 0.0
+NOTARGET
+NOINFIGHTING
+QUICKTORETALIATE
+FLOORCLIP 
+FastMelee
+MISSILEMORE
+MISSILEEVENMORE
+DONTHarmSPECIES
DropItem "NemesisHealthBonusMax", 200, 16
DropItem "NemesisArmorBonus16", 200
DropItem "NemesisHealthBonusMax", 200, 16
DropItem "NemesisArmorBonus16", 200
DropItem "DemonAmmoBox", 180, 200
DropItem "NewCellPack", 180, 200
DropItem "HellstormBFG", 60
Obituary "%o was purificated by a BFG Servant." 
HitObituary "%o was melted by The BFG Servant's hugs."
SeeSound "BFGServant/sight" 
ActiveSound "CServant/active"
PainSound "BFGServant/pain"
DeathSound "CServant/death"
MeleeSound "baron/melee"
Tag "$NEBFGServ"
var int user_lowlag;
States 
{ 
   Spawn: 
	TNT1 A 0 NoDelay ACS_NamedExecuteAlways("ModifyMonster",0,1)
	Goto Idle
  Idle:
    MBFG A 7 Bright A_Look
    Loop 
  See:
	TNT1 A 0 A_JumpIf(user_lowlag == 1,"MoreSee")
	TNT1 A 0 A_JumpIfTargetInLOS("MoreSee",0,0,0,0)
	MBFG ABCD 6 A_Chase
	Loop
  MoreSee:
	TNT1 A 0 A_SetUserVar("user_lowlag",1)
    TNT1 A 0 A_Jump(100,"rush")
    MBFG AABB 3 Bright A_Chase
    TNT1 A 0 A_SpawnItem("HoofStep",0,0,0,0)
    MBFG CCDD 3 Bright A_Chase
    TNT1 A 0 A_SpawnItem("HoofStep",0,0,0,0)
	Loop
   Rush:
    TNT1 A 0 A_SpawnItemEx("BFGServantFWSpawner")
    MBFG A 2 A_SpawnItemEx("BFGServantGhost",0,0,0,0,0,0,0,128)
	TNT1 A 0 A_SpawnItemEx("BFGServantFWSpawner")
	MBFG AAAA 0 A_Chase
	TNT1 A 0 A_SpawnItemEx("BFGServantFWSpawner")
	TNT1 A 0 A_SpawnItem("HoofStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("BFGServantFWSpawner")
    MBFG A 2 A_SpawnItemEx("BFGServantGhost",0,0,0,0,0,0,0,128)
	TNT1 A 0 A_SpawnItemEx("BFGServantFWSpawner")
	MBFG AAAA 0 A_Chase  
	TNT1 A 0 A_SpawnItemEx("BFGServantFWSpawner")
	TNT1 A 0 A_SpawnItem("HoofStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("BFGServantFWSpawner")
    MBFG B 2 A_SpawnItemEx("BFGServantGhost",0,0,0,0,0,0,0,128)
	TNT1 A 0 A_SpawnItemEx("BFGServantFWSpawner")
	MBFG AAAA 0 A_Chase
	TNT1 A 0 A_SpawnItemEx("BFGServantFWSpawner")
	TNT1 A 0 A_SpawnItem("HoofStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("BFGServantFWSpawner")
    MBFG B 2 A_SpawnItemEx("BFGServantGhost",0,0,0,0,0,0,0,128)
	TNT1 A 0 A_SpawnItemEx("BFGServantFWSpawner")
	MBFG AAAA 0 A_Chase
	TNT1 A 0 A_SpawnItemEx("BFGServantFWSpawner")
	TNT1 A 0 A_SpawnItem("HoofStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("BFGServantFWSpawner")
    TNT1 A 0 A_SpawnItem("HoofStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("BFGServantFWSpawner")
    MBFG C 2 A_SpawnItemEx("BFGServantGhost",0,0,0,0,0,0,0,128)
	TNT1 A 0 A_SpawnItemEx("BFGServantFWSpawner")
	MBFG AAAA 0 A_Chase
	TNT1 A 0 A_SpawnItemEx("BFGServantFWSpawner")
	TNT1 A 0 A_SpawnItem("HoofStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("BFGServantFWSpawner")
    MBFG C 2 A_SpawnItemEx("BFGServantGhost",0,0,0,0,0,0,0,128)
	TNT1 A 0 A_SpawnItemEx("BFGServantFWSpawner")
	MBFG AAAA 0 A_Chase  
	TNT1 A 0 A_SpawnItemEx("BFGServantFWSpawner")
	TNT1 A 0 A_SpawnItem("HoofStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("BFGServantFWSpawner")
    MBFG D 2 A_SpawnItemEx("BFGServantGhost",0,0,0,0,0,0,0,128)
	TNT1 A 0 A_SpawnItemEx("BFGServantFWSpawner")
	MBFG AAAA 0 A_Chase
	TNT1 A 0 A_SpawnItemEx("BFGServantFWSpawner")
	TNT1 A 0 A_SpawnItem("HoofStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("BFGServantFWSpawner")
    MBFG D 2 A_SpawnItemEx("BFGServantGhost",0,0,0,0,0,0,0,128)
	TNT1 A 0 A_SpawnItemEx("BFGServantFWSpawner")
	MBFG AAAA 0 A_Chase
	TNT1 A 0 A_SpawnItemEx("BFGServantFWSpawner")
	TNT1 A 0 A_SpawnItem("HoofStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("BFGServantFWSpawner")
    TNT1 A 0 A_SpawnItem("HoofStep",0,0,0,0)
	TNT1 A 0 A_Jump(75,"See")
	Loop
  Missile:  
	TNT1 A 0 A_Jump(100,"RapidBFG15K","BFG10K","HellStorm","HellStormBarrage","BFG9000","MiniDTBFG","DBFG","RapidBFG9K","BFG15K")
	TNT1 A 0 A_Jump(50,"DTBFG10K","RapidBFG15K","BFG10K","HellStormBarrage")
	TNT1 A 0 A_Jump(25,"CommanderDTBFG10K","DTBFG10K")
  Normal:
    MBFG EF 6 Bright A_FaceTarget 
	MBFG G 0 A_CustomMissile("ServantBFG15KBall", 32, 0, 0)		
	TNT1 A 0 A_CustomMissile("ServantBFG15KBall", 32, 0, -8)
	MBFG G 8 Bright A_CustomMissile("ServantBFG15KBall", 32, 0, 8)
    MBFG IJ 6 Bright A_FaceTarget 
	MBFG K 0 A_CustomMissile("ServantBFG15KBall", 32, 0, 0)		
	TNT1 A 0 A_CustomMissile("ServantBFG15KBall", 32, 0, -8)
	MBFG K 8 Bright A_CustomMissile("ServantBFG15KBall", 32, 0, 8)
	TNT1 A 0 A_Jump(100,"RapidBFG15K","BFG10K","HellStorm","HellStormBarrage","BFG9000","DTBFG10K","MiniDTBFG","DBFG","RapidBFG9K","BFG15K")
    Goto See
  RapidBFG15K:
	MBFG EF 2 A_FaceTarget
    MBFG G 2 A_CustomMissile("ServantBFG15KBall",32,0,0)	
	MBFG IJ 2 A_FaceTarget
    MBFG K 2 A_CustomMissile("ServantBFG15KBall",32,0,0)
	MBFG EF 2 A_FaceTarget
    MBFG G 2 A_CustomMissile("ServantBFG15KBall",32,0,0)	
	MBFG IJ 2 A_FaceTarget
    MBFG K 2 A_CustomMissile("ServantBFG15KBall",32,0,0)
	MBFG EF 2 A_FaceTarget
    MBFG G 2 A_CustomMissile("ServantBFG15KBall",32,0,0)	
	MBFG IJ 2 A_FaceTarget
    MBFG K 2 A_CustomMissile("ServantBFG15KBall",32,0,0)
	MBFG EF 2 A_FaceTarget
    MBFG G 2 A_CustomMissile("ServantBFG15KBall",32,0,0)	
	MBFG IJ 2 A_FaceTarget
    MBFG K 2 A_CustomMissile("ServantBFG15KBall",32,0,0)
	TNT1 A 0 A_Jump(100,"BFG9000","HellStormBarrage")
	Goto Missile
  BFG10K:
	TNT1 A 0 A_PlayWeaponSound("weapons/charge15k")
	MBFG EF 10 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
    MBFG G 3 A_CustomMissile("ServantBFG10K",32,0,0)	
	MBFG IJ 3 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
    MBFG K 3 A_CustomMissile("ServantBFG10K",32,0,0)
	MBFG EF 3 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
    MBFG G 3 A_CustomMissile("ServantBFG10K",32,0,0)	
	MBFG IJ 3 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
    MBFG K 3 A_CustomMissile("ServantBFG10K",32,0,0)
	MBFG EF 3 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
    MBFG G 3 A_CustomMissile("ServantBFG10K",32,0,0)	
	MBFG IJ 3 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
    MBFG K 3 A_CustomMissile("ServantBFG10K",32,0,0)
	MBFG EF 3 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
    MBFG G 3 A_CustomMissile("ServantBFG10K",32,0,0)	
	MBFG IJ 3 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
    MBFG K 3 A_CustomMissile("ServantBFG10K",32,0,0)
	MBFG K 35 A_PlaySound("weapons/bfg15kcooldown")
    Goto See
  HellStorm:
    MBG1 EF 4 Bright A_FaceTarget 	
	TNT1 A 0 A_PlaySound("weapons/Hbfg10kfire",6)
    MBG1 G 3 Bright A_Custommissile("HSBFG10kShotWrath", 32, 0, 0)
    MBG1 IJ 4 Bright A_FaceTarget 	
	TNT1 A 0 A_PlaySound("weapons/Hbfg10kfire",6)
    MBG1 K 3 Bright A_Custommissile("HSBFG10kShotWrath", 32, 0, 0)	
	TNT1 A 0 A_Jump(64,"HellStorm","HellstormBarrage")
	Goto See
  HellStormBarrage:
    MBG1 MN 8 Bright A_FaceTarget 	
	TNT1 A 0 A_PlaySound("weapons/Hbfg10kfire",6)
    MBG1 O 3 Bright A_Custommissile("HSBFG10kShotWrath", 32, 0, 0)
    MBG1 O 0 A_Custommissile("HSBFG10kShotWrath", 32, 0, -8)
    MBG1 O 8 Bright A_Custommissile("HSBFG10kShotWrath", 32, 0, 8)	
	Goto See
  BFG9000:
    TNT1 A 0 A_PlaySound("weapons/bfgf")
	MBFG MN 15 A_FaceTarget 	
    MBFG O 3 Bright A_Custommissile("ServantBFG9500Ball", 32, 0, 0)
    MBFG O 0 A_Custommissile("ServantBFG9500Ball", 32, 0, -8)
    MBFG O 8 Bright A_Custommissile("ServantBFG9500Ball", 32, 0, 8)
	TNT1 A 0 A_Jump(128,"See")	
	Goto See
  DTBFG10K:
	TNT1 A 0 A_Jump(98,"BFG9000","RapidBFG9K","RapidBFG15K","BFG10K","HellStorm","HellStormBarrage","BFG15K")
	TNT1 A 0 A_StopSound(6)
    MBFG F 0 Bright A_PlaySound ("Cardinal/9k")
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
	MBFG M 2 Bright A_FaceTarget
	MBFG M 2 Bright A_FaceTarget
	MBFG M 2 Bright A_FaceTarget
	MBFG M 2 Bright A_FaceTarget
	MBFG M 2 Bright A_FaceTarget
	MBFG M 2 Bright A_FaceTarget
	MBFG M 2 Bright A_FaceTarget
	MBFG M 2 Bright A_FaceTarget
	MBFG M 2 Bright A_FaceTarget
	MBFG M 2 Bright A_FaceTarget
    MBFG N 2 Bright A_FaceTarget
	MBFG N 2 Bright A_FaceTarget
	MBFG N 2 Bright A_FaceTarget
	MBFG N 2 Bright A_FaceTarget
	MBFG N 2 Bright A_FaceTarget
	MBFG N 2 Bright A_FaceTarget
	MBFG N 2 Bright A_FaceTarget
	MBFG N 2 Bright A_FaceTarget
	MBFG N 2 Bright A_FaceTarget
	MBFG O 2 Bright A_CustomMissile("ServantDTBFG10KBall")
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
	MBFG PP 35
  CommanderDTBFG10K:
	TNT1 A 0 A_Jump(121,"BFG9000","RapidBFG9K","RapidBFG15K","BFG10K","HellStorm","HellStormBarrage","BFG15K")
	TNT1 A 0 A_StopSound(6)
    MBG2 F 0 Bright A_PlaySound ("Cardinal/9k")
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
	MBG2 M 2 Bright A_FaceTarget
	MBG2 M 2 Bright A_FaceTarget
	MBG2 M 2 Bright A_FaceTarget
	MBG2 M 2 Bright A_FaceTarget
	MBG2 M 2 Bright A_FaceTarget
	MBG2 M 2 Bright A_FaceTarget
	MBG2 M 2 Bright A_FaceTarget
	MBG2 M 2 Bright A_FaceTarget
	MBG2 M 2 Bright A_FaceTarget
	MBG2 M 2 Bright A_FaceTarget
    MBG2 N 2 Bright A_FaceTarget
	MBG2 N 2 Bright A_FaceTarget
	MBG2 N 2 Bright A_FaceTarget
	MBG2 N 2 Bright A_FaceTarget
	MBG2 N 2 Bright A_FaceTarget
	MBG2 N 2 Bright A_FaceTarget
	MBG2 N 2 Bright A_FaceTarget
	MBG2 N 2 Bright A_FaceTarget
	MBG2 N 2 Bright A_FaceTarget
	MBG2 O 2 Bright A_CustomMissile("ServantPurpleDTBFG10KBall")
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
	MBG2 PP 35
  MiniDTBFG:
    MBG1 EF 6 Bright A_FaceTarget 
	MBG1 G 0 A_CustomMissile("LesserCardinalMiniDTBFG", 32, 0, 0)		
	TNT1 A 0 A_CustomMissile("LesserCardinalMiniDTBFG", 32, 0, 15)
	MBG1 G 8 Bright A_CustomMissile("LesserCardinalMiniDTBFG", 32, 0, -15)
    MBG1 IJ 6 Bright A_FaceTarget 
	MBG1 K 0 A_CustomMissile("LesserCardinalMiniDTBFG", 32, 0, 0)		
	TNT1 A 0 A_CustomMissile("LesserCardinalMiniDTBFG", 32, 0, 15)
	MBG1 K 8 Bright A_CustomMissile("LesserCardinalMiniDTBFG", 32, 0, -15)
	TNT1 A 0 A_Jump(100,"BFG15K","HellStormBarrage")
	Goto See
  DBFG:
	TNT1 A 0 A_PlayWeaponSound("weapons/charge15k")
	MBG3 E 10 A_FaceTarget
	TNT1 A 0 A_PlaySound("Weapons/dbfgfire2")
    MBG3 G 3 A_CustomMissile("ServantDBFG",32,0,0)	
	MBG3 IJ 3 A_FaceTarget
	TNT1 A 0 A_PlaySound("Weapons/dbfgfire2")
    MBG3 K 3 A_CustomMissile("ServantDBFG",32,0,0)
	MBG3 EF 3 A_FaceTarget
	TNT1 A 0 A_PlaySound("Weapons/dbfgfire2")
    MBG3 G 3 A_CustomMissile("ServantDBFG",32,0,0)	
	MBG3 IJ 3 A_FaceTarget
	TNT1 A 0 A_PlaySound("Weapons/dbfgfire2")
    MBG3 K 3 A_CustomMissile("ServantDBFG",32,0,0)
	MBG3 EF 3 A_FaceTarget
	TNT1 A 0 A_PlaySound("Weapons/dbfgfire2")
    MBG3 G 3 A_CustomMissile("ServantDBFG",32,0,0)	
	MBG3 IJ 3 A_FaceTarget
	TNT1 A 0 A_PlaySound("Weapons/dbfgfire2")
    MBG3 K 3 A_CustomMissile("ServantDBFG",32,0,0)
	MBG3 EF 3 A_FaceTarget
	TNT1 A 0 A_PlaySound("Weapons/dbfgfire2")
    MBG3 G 3 A_CustomMissile("ServantDBFG",32,0,0)	
	MBG3 IJ 3 A_FaceTarget
	TNT1 A 0 A_PlaySound("Weapons/dbfgfire2")
    MBG3 K 3 A_CustomMissile("ServantDBFG",32,0,0)
	MBG3 E 35 A_PlaySound("weapons/bfg15kcooldown")
    Goto See
  RapidBFG9K:
	MBFG MN 8 Bright A_FaceTarget 
	MBFG O 6 Bright A_CustomMissile("ServantBFG9500Ball", 32, 0, 0)
	Goto Missile
  BFG15K:
    MBG1 EF 4 Bright A_FaceTarget 
	MBG1 G 0 A_CustomMissile("Cybruiser15K", 32, 0, 0)		
	TNT1 A 0 A_CustomMissile("Cybruiser15K", 32, 0, -5)
	MBG1 G 6 Bright A_CustomMissile("Cybruiser15K", 32, 0, 5)
    MBG1 IJ 4 Bright A_FaceTarget 
	MBG1 K 0 A_CustomMissile("Cybruiser15K", 32, 0, 0)		
	TNT1 A 0 A_CustomMissile("Cybruiser15K", 32, 0, -5)
	MBG1 K 6 Bright A_CustomMissile("Cybruiser15K", 32, 0, 5)
	MBG1 EF 4 Bright A_FaceTarget 
	MBG1 G 0 A_CustomMissile("Cybruiser15K", 32, 0, 0)		
	TNT1 A 0 A_CustomMissile("Cybruiser15K", 32, 0, -5)
	MBG1 G 6 Bright A_CustomMissile("Cybruiser15K", 32, 0, 5)
    MBG1 IJ 4 Bright A_FaceTarget 
	MBG1 K 0 A_CustomMissile("Cybruiser15K", 32, 0, 0)		
	TNT1 A 0 A_CustomMissile("Cybruiser15K", 32, 0, -5)
	MBG1 K 6 Bright A_CustomMissile("Cybruiser15K", 32, 0, 5)
	TNT1 A 0 A_Jump(100,"Missile")
	Goto See	   
  Melee:
     TNT1 A 0 A_Jump(80,"BFGHands")
     MBFG EF 8 Bright A_FaceTarget 
     MBFG G 5 Bright A_MeleeAttack	
	 MBFG IJ 8 Bright A_FaceTarget 
     MBFG K 5 Bright A_MeleeAttack	
	 MBFG MN 8 Bright A_FaceTarget
	 MBFG O 0 A_MeleeAttack
     MBFG O 5 Bright A_MeleeAttack	
     Goto See
  BFGHands:
     MBFG EF 8 Bright A_FaceTarget 
	 MBFG G 0 A_CustomMissile("BFGMelee", 32, 0, 0)
     MBFG G 2 Bright A_CustomMeleeAttack(30,"Pyro/FlamePoof","pyro/blastexplosion",1)
	 MBFG IJ 8 Bright A_FaceTarget 
	 MBFG K 0 A_CustomMissile("BFGMelee", 32, 0, 0)
     MBFG K 5 Bright A_CustomMeleeAttack(30,"Pyro/FlamePoof","pyro/blastexplosion",1)
	 MBFG MN 8 Bright A_FaceTarget 
     MBFG O 0 A_CustomMissile("BFGMelee", 32, 0, 0)
	 MBFG O 0 A_CustomMissile("BFGMelee", 32, 0, 0)
	 MBFG O 0 A_CustomMissile("BFGMelee", 32, 0, 0)
     MBFG O 5 Bright A_CustomMeleeAttack(50,"Pyro/FlamePoof","pyro/blastexplosion",1)
	 Goto See
   Pain: 
     MBFG Q 8 Bright A_Pain 
	 TNT1 A 0 A_Jump(80,"Evade")
     Goto See
   Evade:
     MBFG E 1 A_FaceTarget
	 MBFG E 0 A_SetAngle(angle+random(0,359))
	 MBFG E 0 A_Recoil(-50)
	 MBFG E 0 A_FaceTarget
	 MBFG EEEEEEEEEEEEE 1 A_SpawnItemEx("BFGServantGhost",0,0,0,0,0,0,0,128)	 
	 Goto See
   Death: 
     MBFG R 8 Bright
     MBFG S 7 Bright A_Scream 
	 TNT1 AAA 0 A_SpawnItemEx("GreenParticleSpawner", 0, 0, 40, 0, 0, 0, 0, 128)
     MBFG U 5 Bright A_Fall 
     MBFG VW 5 Bright
	 TNT1 AAAA 0 A_CustomMissile("SmokeFX", Random(30,60), 0, random(0,360), 2, random(0,360))
     MBFG X 4 Bright A_CustomMissile("PyroSoul",86,0,0,2,90)
     MBFG Z 4 Bright
     TNT1 A -1
	 Stop
     } 
}

ACTOR BFGServantGhost
{
Scale 1.2
RENDERSTYLE Translucent
Alpha 0.75
+NOGRAVITY
+CLIENTSIDEONLY
+DONTSPLASH
+NOINTERACTION
+NOCLIP
States
{
Spawn:
    MBFG A 0 A_SpawnItem("BFGServantWalkFire")
    MBFG A 2 A_FadeOut(0.09)
    Loop
    }
}

ACTOR BFGServantWalkFire : CtWalkFire
{
  Scale 1.2
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("CheckVanilla") == 1, "Vanilla")
    FRTF ABC 3 Bright
    TNT1 A 0 A_Jump(191,3)
    TNT1 A 0 A_CustomMissile("BFGServantWalkFire", 0, 24, 0)
    TNT1 A 0 A_CustomMissile("BFGServantWalkFire", 0, -24, 0)
    FRTF DEFGHIJKLMNO 3 Bright
    Stop
    }
}

ACTOR BFGServantFWSpawner : RedParticleSpawner
{
  States
  {
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("CheckVanilla") == 1, "Vanilla")
	TNT1 AAA 0 A_SpawnItemEx("DukeHealFlameSpawner",random(20,-20),random(30,-30),random(20,64),0,0,random(1,3),0,128,0)
    TNT1 A 1
    Stop
  }
}

ACTOR ServantBFG15KBall : NewBFG15KBall
{
Species "Nobles"
DamageType "NobleComet"
}

ACTOR ServantBFG10K : General10KProjectile
{
Decal BFG15KLightning
Species "Nobles"
DamageType "NobleComet"
States
{
Death:
XDeath:  
   TNT1 A 0
   TNT1 A 1 A_SpawnItem("Servant10KEx")
   Stop
   }
}

ACTOR Servant10KEx : General10KEx
{
Decal BFG15KLightning
Species "Nobles"
DamageType "NobleComet"
}

ACTOR ServantBFG9500Ball : BFG9500Ball
{
-THRUSPECIES
Species "Nobles"
DamageType "NobleComet"
Decal BFG9500Lightning
States
{
Spawn:
    BFS3 AAABBB 1 Bright A_SpawnItemEx("BFGTrailParticleGreen",Random(-12,12),Random(-12,12),Random(-12,12),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
    Loop
Death:
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("BFGShockwave2", 0, 0, 0, 0, 0, 0, 0, 128)
    TNT1 AAAAAA 0 A_CustomMissile("Kaboom11", 0, 0, random(0,360), 2, random(0,360))
    BFE3 AB 8 Bright A_SpawnItemEx("GreenParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
    BFE3 C 8 Bright A_BFGSpray("ServantBFGSpray")
    BFE3 DEF 8 Bright
    Stop    
    }
}

ACTOR ServantBFGSpray : CustomSpray
{
Species "Nobles"
DamageType "NobleComet"
+MTHRUSPECIES
+DONTHARMSPECIES
States
{
Spawn:
   TNT1 A 0
   BFE2 A 6 Bright A_SpawnItemEx("GreenParticleSpawnerDT", 0, 0, 0, 0, 0, 0, 0, SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
   BFE2 BCD 6 Bright 
   Stop
}
}

ACTOR ServantDTBFG10KBall : SentientDTBFG10KBall
{
Decal BFG9500Lightning
Species "Nobles"
DamageType "NobleComet"
+MTHRUSPECIES
+DONTHARMSPECIES
States
{
Spawn:
    TNT1 A 0
	TNT1 A 0 A_Jump(128,"DTBFGSFX")
    TNT1 A 0 A_PlaySoundEx("weapons/dtech10kball","Voice",1)
    TNT1 A 0 A_SpawnItemEx("BFGTrailParticleGreen",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
    CGS1 A 1 Bright A_CustomMissile("ServantDTBFGProjectileAttack",Random(-10,10),0,0,CMF_TRACKOWNER)
    CGS1 B 1 Bright A_SpawnItemEx("BFGTrailParticleGreen",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("BFGTrailParticleGreen",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
    CGS1 C 1 Bright A_CustomMissile("ServantDTBFGProjectileAttack",Random(-10,10),0,0,CMF_TRACKOWNER)
    CGS1 D 1 Bright A_SpawnItemEx("BFGTrailParticleGreen",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
    Loop  
DTBFGSFX:
	TNT1 A 0 A_PlaySoundEx("weapons/dtech10kball","Voice",1)
	TNT1 A 0 A_SpawnItemEx("DTBFGLightningGreen",Random(6,-6),Random(6,-6),Random(16,8),0,0,0,0,128)
    TNT1 A 0 A_SpawnItemEx("BFGTrailParticleGreen",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
    CGS1 A 1 Bright A_CustomMissile("ServantDTBFGProjectileAttack",Random(-10,10),0,0,CMF_TRACKOWNER)
	TNT1 A 0 A_SpawnItemEx("DTBFGLightningGreen2",Random(6,-6),Random(6,-6),Random(16,8),0,0,0,0,128)
    CGS1 B 1 Bright A_SpawnItemEx("BFGTrailParticleGreen",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("DTBFGLightningGreen",Random(6,-6),Random(6,-6),Random(16,8),0,0,0,0,128)
    TNT1 A 0 A_SpawnItemEx("BFGTrailParticleGreen",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
    CGS1 C 1 Bright A_CustomMissile("ServantDTBFGProjectileAttack",Random(-10,10),0,0,CMF_TRACKOWNER)
	TNT1 A 0 A_SpawnItemEx("DTBFGLightningGreen2",Random(6,-6),Random(6,-6),Random(16,8),0,0,0,0,128)
    CGS1 D 1 Bright A_SpawnItemEx("BFGTrailParticleGreen",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
    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 A_CustomMissile("DTBFG10KTracerServant",0,0,0,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracerServant",0,0,10,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracerServant",0,0,20,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracerServant",0,0,30,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracerServant",0,0,40,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracerServant",0,0,50,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracerServant",0,0,60,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracerServant",0,0,70,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracerServant",0,0,80,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracerServant",0,0,90,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracerServant",0,0,100,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracerServant",0,0,110,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracerServant",0,0,120,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracerServant",0,0,130,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracerServant",0,0,140,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracerServant",0,0,150,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracerServant",0,0,160,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracerServant",0,0,170,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracerServant",0,0,180,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracerServant",0,0,190,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracerServant",0,0,200,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracerServant",0,0,210,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracerServant",0,0,220,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracerServant",0,0,230,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracerServant",0,0,240,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracerServant",0,0,250,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracerServant",0,0,260,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracerServant",0,0,270,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracerServant",0,0,280,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracerServant",0,0,290,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracerServant",0,0,300,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracerServant",0,0,310,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracerServant",0,0,320,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracerServant",0,0,330,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracerServant",0,0,340,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracerServant",0,0,350,CMF_TRACKOWNER)	
	TNT1 A 0 A_SpawnItemEx("DTBFGLightningGreenSpawner", 0, 0, 15, 0, 0, 0, 0, 128)	
	CGS1 ABCD 6 Bright A_SpawnItemEx("DTech10KShockwave3", 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("DTech10KShockwave4", 0, 0, 15, 0, 0, 0, 0, 128)
    TNT1 A 20 A_SpawnItem("PlayerDTBFGEx",0,-10)
    Stop    
    }
}

ACTOR DTBFG10KTracerServant : DTBFG10KTracerMind
{
   States
   {
   XDeath:
      TNT1 A 0
      TNT1 A 1 A_SpawnItem("ServantBFGSpray")
      Stop
	  }
}

ACTOR ServantDTBFGProjectileAttack : SentientDTBFGTracerAttack
{
Obituary "%o was purificated by a BFG Servant." 
MissileType "SentientDTBFGRailgunSlug"
States
{
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	
	}
}

Actor ServantPurpleDTBFG10KBall : CommanderPurpleDTBFG10KBall
{
Obituary "%o was purificated by a BFG Servant." 
Species "Nobles"
DamageType "NobleComet"
+MTHRUSPECIES
+DONTHARMSPECIES
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_Jump(128,"DTBFGSFX")
		TNT1 A 0 Bright A_PlaySoundEx("weapons/dtech10kball","Voice",1)
		TNT1 A 0 Bright A_SpawnItemEx("ProjectileTrailParticlePurple2",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 Bright A_SeekerMissile(3,5,SMF_LOOK|SMF_PRECISE)
		CPS1 A 1 Bright A_CustomMissile("PCerComDTBFGProjectileAttack",random(-8,8),random(-8,8),0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		CPS1 B 1 Bright A_SpawnItemEx("ProjectileTrailParticlePurple2",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 Bright A_SpawnItemEx("ProjectileTrailParticlePurple2",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 Bright A_SeekerMissile(3,5,SMF_LOOK|SMF_PRECISE)
		CPS1 C 1 Bright A_CustomMissile("PCerComDTBFGProjectileAttack",random(-8,8),random(-8,8),0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		CPS1 D 1 Bright A_SpawnItemEx("ProjectileTrailParticlePurple2",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
	DTBFGSFX:
		TNT1 A 0 Bright A_PlaySoundEx("weapons/dtech10kball","Voice",1)
		TNT1 A 0 Bright A_SpawnItemEx("DTBFGLightningPurple",random(6,-6),random(6,-6),random(16,8),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 Bright A_SpawnItemEx("ProjectileTrailParticlePurple2",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 Bright A_SeekerMissile(3,5,SMF_LOOK|SMF_PRECISE)
		CPS1 A 1 Bright A_CustomMissile("ServantCerComDTBFGProjectileAttack",random(-8,8),random(-8,8),0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_SpawnItemEx("DTBFGLightningPurple2",random(6,-6),random(6,-6),random(16,8),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		CPS1 B 1 Bright A_SpawnItemEx("ProjectileTrailParticlePurple2",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 Bright A_SpawnItemEx("DTBFGLightningPurple",random(6,-6),random(6,-6),random(16,8),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 Bright A_SpawnItemEx("ProjectileTrailParticlePurple2",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 Bright A_SeekerMissile(3,5,SMF_LOOK|SMF_PRECISE)
		CPS1 C 1 Bright A_CustomMissile("ServantCerComDTBFGProjectileAttack",random(-8,8),random(-8,8),0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_SpawnItemEx("DTBFGLightningPurple2",random(6,-6),random(6,-6),random(16,8),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		CPS1 D 1 Bright A_SpawnItemEx("ProjectileTrailParticlePurple2",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)
		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 AAA 0 Bright A_CustomMissile("ServantDTBFG10KTracerPurple",0,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 AAA 0 Bright A_CustomMissile("ServantDTBFG10KTracerPurple",0,0,10,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 AAA 0 Bright A_CustomMissile("ServantDTBFG10KTracerPurple",0,0,20,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 AAA 0 Bright A_CustomMissile("ServantDTBFG10KTracerPurple",0,0,30,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 AAA 0 Bright A_CustomMissile("ServantDTBFG10KTracerPurple",0,0,40,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 AAA 0 Bright A_CustomMissile("ServantDTBFG10KTracerPurple",0,0,50,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 AAA 0 Bright A_CustomMissile("ServantDTBFG10KTracerPurple",0,0,60,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 AAA 0 Bright A_CustomMissile("ServantDTBFG10KTracerPurple",0,0,70,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 AAA 0 Bright A_CustomMissile("ServantDTBFG10KTracerPurple",0,0,80,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 AAA 0 Bright A_CustomMissile("ServantDTBFG10KTracerPurple",0,0,90,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 AAA 0 Bright A_CustomMissile("ServantDTBFG10KTracerPurple",0,0,100,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 AAA 0 Bright A_CustomMissile("ServantDTBFG10KTracerPurple",0,0,110,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 AAA 0 Bright A_CustomMissile("ServantDTBFG10KTracerPurple",0,0,120,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 AAA 0 Bright A_CustomMissile("ServantDTBFG10KTracerPurple",0,0,130,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 AAA 0 Bright A_CustomMissile("ServantDTBFG10KTracerPurple",0,0,140,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 AAA 0 Bright A_CustomMissile("ServantDTBFG10KTracerPurple",0,0,150,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 AAA 0 Bright A_CustomMissile("ServantDTBFG10KTracerPurple",0,0,160,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 AAA 0 Bright A_CustomMissile("ServantDTBFG10KTracerPurple",0,0,170,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 AAA 0 Bright A_CustomMissile("ServantDTBFG10KTracerPurple",0,0,180,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 AAA 0 Bright A_CustomMissile("ServantDTBFG10KTracerPurple",0,0,190,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 AAA 0 Bright A_CustomMissile("ServantDTBFG10KTracerPurple",0,0,200,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 AAA 0 Bright A_CustomMissile("ServantDTBFG10KTracerPurple",0,0,210,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 AAA 0 Bright A_CustomMissile("ServantDTBFG10KTracerPurple",0,0,220,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 AAA 0 Bright A_CustomMissile("ServantDTBFG10KTracerPurple",0,0,230,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 AAA 0 Bright A_CustomMissile("ServantDTBFG10KTracerPurple",0,0,240,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 AAA 0 Bright A_CustomMissile("ServantDTBFG10KTracerPurple",0,0,250,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 AAA 0 Bright A_CustomMissile("ServantDTBFG10KTracerPurple",0,0,260,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 AAA 0 Bright A_CustomMissile("ServantDTBFG10KTracerPurple",0,0,270,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 AAA 0 Bright A_CustomMissile("ServantDTBFG10KTracerPurple",0,0,280,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 AAA 0 Bright A_CustomMissile("ServantDTBFG10KTracerPurple",0,0,290,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 AAA 0 Bright A_CustomMissile("ServantDTBFG10KTracerPurple",0,0,300,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 AAA 0 Bright A_CustomMissile("ServantDTBFG10KTracerPurple",0,0,310,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 AAA 0 Bright A_CustomMissile("ServantDTBFG10KTracerPurple",0,0,320,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 AAA 0 Bright A_CustomMissile("ServantDTBFG10KTracerPurple",0,0,330,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 AAA 0 Bright A_CustomMissile("ServantDTBFG10KTracerPurple",0,0,340,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 AAA 0 Bright A_CustomMissile("ServantDTBFG10KTracerPurple",0,0,350,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 A 0 Bright A_SpawnItemEx("DTBFGLightningPurpleSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		CPS1 ABCD 6 Bright A_SpawnItemEx("PurpleDTech10KShockwave",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 Bright A_Explode(480,240,0,0)
		TNT1 AAA 0 Bright A_StopSoundEx("Voice")
		TNT1 A 0 Bright Radius_Quake(15,20,0,20,0)
		TNT1 A 0 Bright A_PlaySound("weapons/dtech10kexplode",6)
		TNT1 A 0 Bright A_SpawnItemEx("PurpleDTech10KShockwave2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 20 Bright A_SpawnItem("PurpleDTBFGEx",0,-10)
		Stop   
	}
}

ACTOR ServantCerComDTBFGProjectileAttack : CebComDTBFGTracerAttack
{
Obituary "%o was purificated by a BFG Servant." 
Species "Nobles"
DamageType "NobleComet"
+MTHRUSPECIES
+DONTHARMSPECIES
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_RearrangePointers(AAPTR_NULL, AAPTR_TARGET, AAPTR_NULL)
		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_RearrangePointers(AAPTR_MASTER, AAPTR_DEFAULT, AAPTR_DEFAULT)
		TNT1 A 1 Bright A_CustomRailgun(random(2,8),0,"None","80 00 FF",RGF_SILENT|RGF_FULLBRIGHT,0,2,"ServantPurpleDTBFGRailgunSlugPuff")
		Goto Death
	}
}

Actor ServantPurpleDTBFGRailgunSlugPuff : BulletPuff
{
+THRUSPECIES
+MTHRUSPECIES
+PUFFGETSOWNER
+DONTHARMSPECIES
Species "Nobles"
DamageType "NobleComet"
}

ACTOR ServantDTBFG10KTracerPurple : DTBFG10KTracerZombie
{
+NOTIMEFREEZE
States
	{
	XDeath:
		TNT1 A 0 Bright
		TNT1 A 1 Bright A_SpawnItem("PurpleSpray")
		Stop
	}
}

Actor ServantDBFG : FastProjectile
{
Projectile
Height 1 // 8
Radius 1 // 11
Speed 200
Renderstyle Add
Alpha 0.75
Damage 75 // 100
+ActivatePCross
+FORCEXYBILLBOARD
+ForceRadiusDmg
Species "Nobles"
DamageType "DBFG10K2"
DamageType "NobleComet"
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 BFGMelee : FastProjectile
{
Height 1
Radius 1
Speed 250
Scale 0.8
Damage 0
RenderStyle Add
Alpha 0.85
DeathSound "weapons/bfg95explode"
DamageType "NobleComet"
Decal BFG15KLightning
+FORCERADIUSDMG
+RANDOMIZE
+FORCEXYBILLBOARD
+NOTIMEFREEZE
States
{
Spawn:
    TRA2 A 1 Bright
	Loop
Death:
XDeath:  
      TNT1 A 0
      TNT1 A 1 A_SpawnItem("Servant10KEx")
      Stop
    }
}

ACTOR BFGServantSoul : FamineSoul
{   
States
{
Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("CheckVanilla") == 1, "Vanilla")
    BSVS ABCD 4 Bright
    Stop 
    }
}