ACTOR LegendaryGeneral 21371
{ 
Health 1200
Radius 20
Height 56
Speed 12
Mass 100
PainChance 20
+NOTIMEFREEZE
+BOSS
+BOSSDEATH
+FLOORCLIP
+MISSILEMORE
+MISSILEEVENMORE
+QUICKTORETALIATE
+NOICEDEATH
+NODROPOFF
+DONTGIB
+NOTARGET
+NORADIUSDMG
+FORCERADIUSDMG
+NOFEAR
BloodColor "Blue"
DropItem "LegendaryArmor" 110 1
DropItem "LegendaryAmmoSphere" 117 1
DropItem "HandGrenadeAmmo" 237 2
DropItem "MineAmmo" 237 2
DropItem "Backpack" 200 1
DropItem "Armorplate" 207 1
DropItem "Portablemedkit" 212 1
DropItem "LegendaryRune" 50 1
DropItem "LegendaryBFG10K" 180 1
DropItem "LegendaryPowerShard" 100 1
DropItem "Beacon" 128 1
DropItem "Beacon" 128 1
PainChance "GeneralTracer", 0
DamageFactor "GeneralTracer", 0.0
DamageFactor "LegendaryZombie", 0.0
DamageFactor "PDTBFG", 0.20
DamageFactor "PDTBFGTracer", 0.20
DamageFactor "PlayerDevBall", 0.120
DamageFactor "PlayerDevBall2", 0.120
DamageFactor "PlayerDTBFGRailgunSlug", 0.120
DamageFactor "PlayerDevTracer", 0.120
DamageFactor "Legendary", 0.0
DamageFactor "LegendaryPlayer", 0.3
DamageFactor "LegendaryGuru", 0.0
DamageFactor "LegendaryGuruPlayer", 0.3
DamageFactor "DBFG10K2", 0.65
DamageFactor "PlayerDBFG10K2", 0.65
DamageFactor "DBFG2", 0.65
DamageFactor "PlayerDBFG2", 0.65
DamageFactor "PlayerDTRG", 0.5
DamageFactor 0.6
MONSTER 
SeeSound "lgeneral/sight"
PainSound "lgeneral/pain"
DeathSound "lgeneral/death"
ActiveSound "lgeneral/active"
Obituary "%o was blasted apart by a Legendary General."
Tag "$NELegGeneral"
var int user_music;
var int user_protection;
var int user_protected;
var int user_lowlag;
States
{
Spawn:
	LEGE A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	LEGE A 10 Bright A_Look
	TNT1 A 0 A_PlayWeaponSound("weapons/bfg15kidle")
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	LEGE Z 10 Bright A_Look
    Loop
  See:
	TNT1 A 0 A_JumpIf(user_lowlag == 1,"MoreSee")
	TNT1 A 0 A_JumpIfTargetInLOS("MoreSee",0,0,0,0)
	LEGE ABCD 3 A_Chase
	Loop
  MoreSee:
	TNT1 A 0 A_SetUserVar("user_lowlag",1)
	TNT1 A 0 A_JumpIf(user_music == 1,3)
    TNT1 A 0 ACS_NamedExecuteAlways("CFMusic",0,3007)
	TNT1 A 0 A_SetUserVar("user_music",1)
    TNT1 A 0 A_PlayWeaponSound("weapons/bfg15kidle")
	LEGE A 0 A_JumpIfTargetInLOS("Strafing")
	LEGE AABB 3 Bright A_Chase
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItem("LegendaryFootStep",0,0,0,0)
    TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	LEGE A 0 A_JumpIfTargetInLOS("Strafing")
    LEGE CCDD 3 Bright A_Chase
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	LEGE A 0 A_Jump(80,"Rush")
    TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItem("LegendaryFootStep",0,0,0,0)
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
    Loop
Rush:
    LEGE A 0 A_JumpIfTargetInLOS("Strafing")
	TNT1 A 0 A_SpawnItem("LegendaryFootStep",0,0,0,0)
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("LegGeneralGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	LEGE A 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("LegGeneralGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	LEGE A 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("LegGeneralGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	LEGE B 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("LegGeneralGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	LEGE B 1 Bright A_Chase
	TNT1 A 0 A_SpawnItem("LegendaryFootStep",0,0,0,0)
    TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("LegGeneralGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	LEGE C 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("LegGeneralGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	LEGE C 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("LegGeneralGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	LEGE D 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("LegGeneralGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	LEGE D 1 Bright A_Chase
	TNT1 A 0 A_SpawnItem("LegendaryFootStep",0,0,0,0)
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_Jump(84,"See")
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	Loop
Strafing:
	TNT1 A 0 A_SpawnItem("LegendaryFootStep",0,0,0,0)
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	LEGE AA 3 Bright A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	LEGE BB 3 Bright A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_SpawnItem("LegendaryFootStep",0,0,0,0)
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
    LEGE CC 3 Bright A_GiveInventory("LegZombieStrafing",1)	
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	LEGE DD 3 Bright A_GiveInventory("LegZombieStrafing",1)
	Goto See
Pause:
	TNT1 A 0 A_PlayWeaponSound("weapons/bfg15kcooldown")
	LEGE EEEEE 3 Bright A_GiveInventory("LegZombieStrafing2",1)
	TNT1 A 0 A_Jump(81,"BFG10K")
	Goto See
Missile:
    TNT1 A 0 A_SetShootable
    TNT1 A 0 A_UnsetInvulnerable
    TNT1 A 0 A_SetTranslucent(1)
    TNT1 A 0 A_Jump(100,"BFG10K")
	TNT1 A 0 A_JumpIfCloser(200,"LegNade")
Normal:
	TNT1 A 0 A_SetShootable
    TNT1 A 0 A_UnsetInvulnerable
    TNT1 A 0 A_SetTranslucent(1)
	TNT1 A 0 A_PlayWeaponSound("EnragedDTech/Charge")
	LEGE E 5 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	LEGE E 5 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	LEGE E 5 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	LEGE E 5 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	LEGE E 5 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	LEGE E 5 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	LEGE E 5 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	LEGE E 5 Bright A_FaceTarget
	LEGE E 6 Bright A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_PlayWeaponSound("LesserCardinal/BFGFire")
	TNT1 A 0 A_CustomMissile("LGeneral15KProjectile",30,0,random(-4,4),0)
	LEGE F 5 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	LEGE E 5 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	LEGE E 5 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	LEGE E 5 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	LEGE E 5 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_PlayWeaponSound("LesserCardinal/BFGFire")
	TNT1 A 0 A_CustomMissile("LGeneral15KProjectile",30,0,random(-4,4),0)
	LEGE F 5 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	LEGE E 5 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	LEGE E 5 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	LEGE E 5 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	LEGE E 5 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_PlayWeaponSound("LesserCardinal/BFGFire")
	TNT1 A 0 A_CustomMissile("LGeneral15KProjectile",30,0,random(-4,4),0)
	LEGE F 5 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	LEGE E 5 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	LEGE E 5 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	LEGE E 5 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	LEGE E 5 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	//TNT1 A 0 A_Jump(40,"Pause")
	TNT1 A 0 A_SpidRefire
	Goto Pause
BFG10K:
	TNT1 A 0 A_SetShootable
    TNT1 A 0 A_UnsetInvulnerable
    TNT1 A 0 A_SetTranslucent(1)
	LEGE EEE 3 Bright A_GiveInventory("LegZombieStrafing2",1)
	TNT1 A 0 A_GiveInventory("LegZombieStrafing2",1)
	TNT1 A 0 A_PlayWeaponSound("weapons/charge15k")
	LEGE E 25 Bright A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
	LEGE F 3 Bright A_CustomMissile("LGeneral10KProjectile", 30, 0, Random(-3, 3))
	TNT1 A 0 A_GiveInventory("LegZombieStrafing2",1)
    LEGE E 3 Bright A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
	LEGE F 3 Bright A_CustomMissile("LGeneral10KProjectile", 30, 0, Random(-3, 3))
	TNT1 A 0 A_GiveInventory("LegZombieStrafing2",1)
    LEGE E 3 Bright A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
	LEGE F 3 Bright A_CustomMissile("LGeneral10KProjectile", 30, 0, Random(-3, 3))
	TNT1 A 0 A_GiveInventory("LegZombieStrafing2",1)
    LEGE E 3 Bright A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
	LEGE F 3 Bright A_CustomMissile("LGeneral10KProjectile", 30, 0, Random(-3, 3))
	TNT1 A 0 A_GiveInventory("LegZombieStrafing2",1)
    LEGE E 3 Bright A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
	LEGE F 3 Bright A_CustomMissile("LGeneral10KProjectile", 30, 0, Random(-3, 3))
	TNT1 A 0 A_GiveInventory("LegZombieStrafing2",1)
    LEGE E 3 Bright A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
	LEGE F 3 Bright A_CustomMissile("LGeneral10KProjectile", 30, 0, Random(-3, 3))
	TNT1 A 0 A_GiveInventory("LegZombieStrafing2",1)
	TNT1 A 0 A_Jump(24,"Pause")
	LEGE E 3 Bright A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
	LEGE F 3 Bright A_CustomMissile("LGeneral10KProjectile", 30, 0, Random(-3, 3))
	TNT1 A 0 A_GiveInventory("LegZombieStrafing2",1)
	LEGE E 3 Bright A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
	LEGE F 3 Bright A_CustomMissile("LGeneral10KProjectile", 30, 0, Random(-3, 3))
	TNT1 A 0 A_GiveInventory("LegZombieStrafing2",1)
	LEGE E 3 Bright A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
	LEGE F 3 Bright A_CustomMissile("LGeneral10KProjectile", 30, 0, Random(-3, 3))
	TNT1 A 0 A_GiveInventory("LegZombieStrafing2",1)
	LEGE E 3 Bright A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
	LEGE F 3 Bright A_CustomMissile("LGeneral10KProjectile", 30, 0, Random(-3, 3))
	TNT1 A 0 A_GiveInventory("LegZombieStrafing2",1)
	LEGE E 3 Bright A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
	LEGE F 3 Bright A_CustomMissile("LGeneral10KProjectile", 30, 0, Random(-3, 3))
	TNT1 A 0 A_GiveInventory("LegZombieStrafing2",1)
	LEGE E 3 Bright A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
	LEGE F 3 Bright A_CustomMissile("LGeneral10KProjectile", 30, 0, Random(-3, 3))
	TNT1 A 0 A_GiveInventory("LegZombieStrafing2",1)
	LEGE E 20 A_PlaySound("weapons/bfg15kcooldown")     
	Goto See
LegNade:
    LEGE E 1 Bright A_JumpIfCloser(1000,1)
	Goto Missile
	LEGE E 0 A_JumpIfCloser(400,"Missile")
    LEGE E 12 Bright A_GiveInventory("LegZombieStrafing",1)
    LEGE EEE 6 Bright A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_GiveInventory("LegZombieStrafing",1)
    LEGE E 6 Bright A_CustomMissile("LegThrownGrenade",32,0,0,2,10)
	LEGE EE 15 Bright
	Goto See
Pain:
	TNT1 A 0 A_Jump(25,"Protection")
	TNT1 A 0 A_Jump(192,"PainMissile")
	LEGE G 3 Bright
	LEGE G 3 Bright A_Pain
	Goto See
PainMissile:
	LEGE G 3 Bright
	LEGE G 3 Bright A_Pain
	Goto Missile	
Protection:
	TNT1 A 0 A_JumpIf(user_protection >= 3,"Pain")
	TNT1 A 0 A_JumpIf(user_protected == 1,"Pain")
	TNT1 A 0 A_PlaySound("legendary/defense")
	TNT1 A 0 A_FaceTarget
	LEGE E 2 Bright ACS_NamedExecuteAlways("LegendaryProtection",0,0,0,0)
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	Goto See
Death:
	TNT1 A 0 A_Jump(36,"LegendarySoul")
    TNT1 A 0 A_StopSound(6)
    LEGE H 5 A_Scream
    LEGE I 5 A_Fall
    LEGE J 5 A_SpawnItem("BodyCrash",0,0,0,0)
    LEGE K 5
    LEGE L -1
    Stop
LegendarySoul:
    TNT1 A 0 A_StopSound(6)
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	LEGE H 5 A_Scream
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
    LEGE I 5 A_Fall
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
    LEGE J 5 A_SpawnItem("BodyCrash",0,0,0,0)
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
    LEGE K 5 
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
    LEGE L 140
	LEGE L 0 A_PlaySoundEx("brain/spit","Voice",0,2)
	LEGE LLLLLLLLLLLLLLLLL 2 Bright A_GiveInventory("LegSoulEvent",1)
	LEGE LLLLLLLLLLLLLLLLL 2 Bright A_GiveInventory("LegSoulEvent",1)
	LEGE LLLLLLLLLLLLLLLLL 2 Bright A_GiveInventory("LegSoulEvent",1)
	TNT1 A 0 A_SpawnItemEx("LegendarySoul",0,0,16,0,0,0,0,32)
	TNT1 A 0 A_SpawnItemEx("TeleportFog",0,0,16,0,0,0,0,32)
	LEGE L -1
	Stop
XDeath:
    TNT1 A 0 A_StopSound(6)
    LEGE O 3
    LEGE O 3 A_XScream
    LEGE O 3 A_SpawnItemEx("BlueGibbedGenerator",0,0,0,0,0,0,0,128,0)
    LEGE P 3 A_Fall
    LEGE QRSTUV 3
    LEGE W -1 
    Stop
    }
}

ACTOR LGeneral10KProjectile : 10KProjectile
{
  +NOTIMEFREEZE
  -THRUSPECIES
  +NOEXTREMEDEATH
  -MTHRUSPECIES
  +NOTIMEFREEZE
  DECAL LGeneralTracer
  Species "Legendary"
  DamageType "Legendary"
  speed 80
  States
  {
  Spawn:
	LRAC A 1 Bright
	Loop
  Death:
  XDeath:  
	TNT1 A 0
	TNT1 A 1 A_SpawnItem("LGeneral10KEx")
	Stop
	}
}

ACTOR LGeneral10KEx : Player10KEx
{
  //Damage 150
  +NOTIMEFREEZE
  +NOBLOCKMAP
  +NOGRAVITY
  +NOTELEPORT 
  +FORCERADIUSDMG
  -MTHRUSPECIES
  -THRUSPECIES
  Species "Legendary"
  DamageType "Legendary"
  States
  {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("BFGShockwaveGold", 0, 0, 0, 0, 0, 0, 0, 128)
	TNT1 AA 0 A_SpawnItemEx("LegendaryGoldParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
	TNT1 AAAA 0 A_CustomMissile("KaboomGold2", 0, 0, random(0,360), 2, random(0,360))
	LFE3 A 4 Bright A_Explode(200,150,0)
	LFE3 BCDEF 4 Bright
    Stop
	}
}

Actor LGeneral15KProjectile : LegendaryImpBlueBall
{
  Speed 40
  FastSpeed 25
  Scale 0.4
  DamageType "Legendary"
  Species "Legendary"
  Obituary "%o was blasted apart by a Legendary General."
  +FORCERADIUSDMG
  +THRUSPECIES
  +FORCERADIUSDMG
  +NOTIMEFREEZE
  -FRIENDLY
  DeathSound ""
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_PlaySoundEx("LesserCardinal/BFGIdle","Voice",1)
    LG1B A 1 Bright A_SpawnItemEx("BFGTrailParticleBlue",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
    TNT1 A 0 A_CustomMissile("LGeneralBallAttack",random(-1,1),random(-2,2),0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
    LG1B B 1 Bright A_SpawnItemEx("BFGTrailParticleBlue",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
    TNT1 A 0 A_CustomMissile("LGeneralBallAttack",random(-1,1),random(-2,2),0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
    LG1B C 1 Bright A_SpawnItemEx("BFGTrailParticleBlue",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
    TNT1 A 0 A_CustomMissile("LGeneralBallAttack",random(-1,1),random(-2,2),0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
    LG1B D 1 Bright A_SpawnItemEx("BFGTrailParticleBlue",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
    TNT1 A 0 A_CustomMissile("LGeneralBallAttack",random(-1,1),random(-2,2),0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
    Loop  
  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_Explode(60,250)
	LG1B A 6 Bright A_SpawnItemEx("BFGShockwaveBlue", 0, 0, 15, 0, 0, 0, 0, 128)
	TNT1 A 0 A_Explode(60,250)
	LG1B B 6 Bright A_SpawnItemEx("BFGShockwaveBlue", 0, 0, 15, 0, 0, 0, 0, 128)
	TNT1 A 0 A_Explode(60,250)
	LG1B C 6 Bright A_SpawnItemEx("BFGShockwaveBlue", 0, 0, 15, 0, 0, 0, 0, 128)
	TNT1 A 0 A_Explode(60,250)
	LG1B D 6 Bright A_SpawnItemEx("BFGShockwaveBlue", 0, 0, 15, 0, 0, 0, 0, 128)
	TNT1 A 0 A_Explode(300,300)
	TNT1 A 0 A_StopSoundEx("Voice")
	TNT1 A 0 Radius_Quake(20,12,0,12,0)
	TNT1 A 0 A_PlaySound("weapons/bfg95explode")
	TNT1 A 0 A_SpawnItemEx("BFGShockwaveBlue", 0, 0, 0, 0, 0, 0, 0, 128)
	TNT1 A 0 A_SpawnItemEx("LegendaryBlueParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
	TNT1 AAA 0 A_CustomMissile("KaboomBlue2", 0, 0, random(0,360), 2, random(0,360))
	TNT1 A 0 A_SetScale(1.0)
    QRE3 ABCDEF 4 Bright
    Stop
	}
}

Actor LGeneralBallAttack : LegBallAttack
{
-FRIENDLY
+THRUSPECIES
DamageType "Legendary"
Species "Legendary"
Obituary "%o was blasted apart by a Legendary General."
States
	{
	Spawn:
		TNT1 A 0
		//TNT1 A 0 A_RearrangePointers(AAPTR_NULL, AAPTR_TARGET, AAPTR_NULL)
		TNT1 AAAAA 1 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,1250,0,360,"Attack")
		Goto Death
	Attack:
		TNT1 A 0
		TNT1 A 0 A_FaceTarget
		//TNT1 A 0 A_RearrangePointers(AAPTR_MASTER, AAPTR_MASTER, AAPTR_NULL)
		TNT1 A 1 A_CustomRailgun(random(5,8)*4,0,NONE,NONE,RGF_SILENT|RGF_NOPIERCING,1,12,"LGeneralPuff",0,0,1500,0,10,0,"Leg10kRailParticle")
		Goto Death
	}
}

Actor LGeneralPuff : BulletPuff
{
+THRUSPECIES
+MTHRUSPECIES
+PUFFGETSOWNER
+DONTHARMSPECIES
Species "Legendary"
DamageType "Legendary"
}

ACTOR LegGeneralGhost
{
Scale 1.1
Radius 20
Height 56
Speed 0
Alpha 0.7
PROJECTILE
RENDERSTYLE Translucent
+CLIENTSIDEONLY
+NOTIMEFREEZE
States
{
Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("CheckVanilla") == 1, "Vanilla")
Fade:
    TNT1 A 1
    LEGE A 2 A_FadeOut(0.10)
    Goto Fade+1
Vanilla:
    TNT1 A 0
    Stop
    }
}

ACTOR KaboomBlue6 : KaboomGold
{
Speed 1
Scale 0.9
+NOTIMEFREEZE
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("CheckVanilla") == 1, "Vanilla")
BXPG AABBCDEFGHIJKLM 1 Bright A_FadeOut(0.05)
Stop
}
}