ACTOR BFGCacodemon 16563
{
//$Category Monsters/LCA
//$Sprite BFCDA1
//$Title "BFG Cacodemon"
Monster
Health 700
Height 44
Radius 24
Mass 400
Speed 10
BloodColor "Purple"
PainChance 128
Meleedamage 8
+FLOAT
+NOGRAVITY
+MISSILEEVENMORE
+MISSILEMORE
+QUICKTORETALIATE
Species "CacoDemon"
DamageFactor "CacoComet" , 0.0
DropItem "BFG9500", 90, 1
DropItem "BossLifeEssence", 150
DropItem "BossArmorBonusMax", 150
DropItem "NewCellPack", 255 
SeeSound "caco/sight"
PainSound "caco/pain"
DeathSound "caco/death"
ActiveSound "caco/active"
MeleeSound "caco/melee"
Obituary "%o was eradicated by a BFG Cacodemon."
States
	{
	Spawn:
		BFCD A 10 A_Look
		Loop
	See:
		TNT1 A 0 A_Jump(20,"FastChase")
		BFCD A 3 A_Chase
		TNT1 A 0 A_Jump(62,"Rush")
		Loop
	Rush:
		TNT1 A 0 A_SpawnItemEx("BFGCacodemonGhostA")	
		BFCD A 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("BFGCacodemonGhostA")	
		BFCD A 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("BFGCacodemonGhostA")	
		BFCD A 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("BFGCacodemonGhostA")	
		BFCD A 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("BFGCacodemonGhostA")	
		BFCD A 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("BFGCacodemonGhostA")	
		BFCD A 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("BFGCacodemonGhostA")	
		BFCD A 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("BFGCacodemonGhostA")	
		BFCD A 1 A_Chase
		TNT1 A 0 A_Jump(87,"See")
		Loop
	FastChase:
		BFCD A 3 A_FastChase
		BFCD A 3 A_FastChase
		Goto See
	Missile:
		TNT1 A 0 A_Jump(128,"Missile2")
		TNT1 A 0 A_Jump(64,"Missile3")
		Goto See
	Missile2:
        TNT1 A 0 A_SetShootable
        TNT1 A 0 A_UnsetInvulnerable
        TNT1 A 0 A_SetTranslucent(1)
		TNT1 A 0 A_PlaySound("weapons/bfgf")
		BFCD B 15 A_FaceTarget
		BFCD C 10 Bright A_FaceTarget
		BFCD D 10 Bright A_CustomMissile("CacoBFG9500Ball",15,0,0,CMF_TRACKOWNER)
		BFCD CB 15 A_FaceTarget
		Goto See
	Missile3:
		TNT1 A 0 A_SetShootable
		TNT1 A 0 A_UnsetInvulnerable
		TNT1 A 0 A_SetTranslucent(1)
		TNT1 A 0 A_PlaySound("weapons/charge15k")
		BFCD B 18 A_FaceTarget
		BFCD C 10 Bright A_FaceTarget
		BFCD D 6 Bright A_CustomMissile("Caco15K",15,0,0,CMF_TRACKOWNER)
		BFCD C 6 Bright A_FaceTarget
		BFCD D 6 Bright A_CustomMissile("Caco15K",15,0,0,CMF_TRACKOWNER)
		BFCD C 6 Bright A_FaceTarget
		BFCD D 6 Bright A_CustomMissile("Caco15K",15,0,0,CMF_TRACKOWNER)
		BFCD CB 20 A_PlaySound("weapons/bfg15kcooldown",CHAN_AUTO)
		Goto See
	Melee:
		BFCD BC 5 A_FaceTarget
		BFCD D 5 A_MeleeAttack
		BFCD CB 5 A_FaceTarget
		Goto See
	Pain:
		BFCD E 3
		BFCD E 3 A_Pain
		BFCD F 6
		Goto See
	Death:
		BFCD G 8
		TNT1 A 0 A_SpawnItemEx("MutantGibbedGenerator",0,0,0,0,0,0,0,128,0)
		BFCD H 8 A_Scream
		BFCD I 8
		BFCD J 8
		BFCD K 8 A_NoBlocking
		BFCD L 63000 CanRaise A_SetFloorClip
		Stop
	}
}

ACTOR BFGCacodemonGhostA
{
PROJECTILE
Radius 2
Height 2
Speed 0
Scale 1.0
RENDERSTYLE Translucent
Alpha 0.85
+NOINTERACTION
+CLIENTSIDEONLY
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 1 Bright
		Goto Fade
	Fade:
		BFCD A 2 A_FadeOut(0.15,1)
		Loop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR CacoBFG9500Ball : BFG9500Ball
{
Decal "BFG9500Lightning"
-THRUSPECIES
DamageType "CacoComet"
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),SXF_CLIENTSIDE,0)
		Loop
	Death:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("BFGShockwave2",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 AAAAAA 0 A_CustomMissile("Kaboom11",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		BFE3 AB 8 Bright A_SpawnItemEx("GreenParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		BFE3 C 8 Bright A_BFGSpray("CacoSpray")
		BFE3 DEF 8 Bright
		Stop    
	}
}

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

ACTOR Caco15K : BFG15KBall
{
FastSpeed 50
-THRUSPECIES
DamageType "CacoComet"
}