ACTOR KingCaco
{
//Creator: NaturalxCF
//Origin: Nexus Infinity
//Sprite: GRED
//Title: "King Cacodemon" 
Health 4000
Radius 31
Height 56
Mass 400
BloodColor "DarkGreen"
Speed 10
PainChance 128
Species "CacoDemon"
DamageFactor "SatanGuard", 0.0
DamageFactor "CacoLich", 0.0
DamageFactor "PhazoDemon", 0.0
DamageFactor "CacoComet", 0.0
DamageFactor "CurseComet", 0.0
DamageFactor "HelementalComet", 0.0
Damagefactor "BloodSkull", 0.0
DamageFactor "SoulToxic", 0.0
DamageFactor "BombBreath", 0.0
Damagefactor "EleSouls", 0.0
Monster
SeeSound "GREEDSEE"
PainSound "greed/pain"
DeathSound "greed/death"
ActiveSound "GREEACT"
DropItem "BossLifeEssence" 255 25
DropItem "BossArmorBonusMax" 255 1
DropItem "BigDustMana" 128 100
DropItem "BigDustMana" 128 100
DropItem "DemonicChalice" 128
DropItem "SkullOfPower" 128
DropItem "OccultSpellbook" 200
Obituary "%o was executed by The King of Cacodemons"
Tag "\c[d0]King Cacodemon\c-"
+BOSS
+FLOAT
+NOGRAVITY
var int user_missile;
States
{
  Spawn:
    GRED A 10 A_Look
    Loop
  See:
    GRED A 3 A_Chase
    Loop
  Melee:
	TNT1 A 0 A_Jump(156,"Melee2")
	TNT1 A 0 A_Jump(256,"Melee3")
  Melee2:
    GRED BC 5 A_FaceTarget
    GRED D 5 Bright A_SkullAttack
	GRED BCB 5 A_FaceTarget
	GRED D 5 Bright A_SkullAttack
	GRED BCB 5 A_FaceTarget
	GRED D 5 Bright A_SkullAttack
	GRED CB 5 A_FaceTarget
    Goto See
  Melee3:
    GRED BC 5 A_FaceTarget
    GRED D 5 Bright A_CustomMeleeAttack (50,"PROJSOUN")
	Goto See
  Melee1:
    TNT1 A 0 A_ChangeFlag(NOPAIN,1)
	TNT1 A 0 A_ChangeFlag(REFLECTIVE,1)
	//GRED F 0 A_ChangeFlag("MIRRORREFLECT", TRUE)
	TNT1 A 0 A_ChangeFlag(INVULNERABLE,1)
	TNT1 A 0 A_SetFloorClip
	TNT1 A 0 A_ChangeFlag(FLOAT,0)
	IRON F 5 A_ChangeFlag(NOGRAVITY,0)
	TNT1 A 0 A_SetUserVar("user_missile",0)
  Melee1Loop:
    TNT1 A 0 A_JumpIf(user_missile >= 30,"Melee1End")	 
    TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	IRON F 1 A_CustomMeleeAttack (5)
	IRON F 1 A_CustomMeleeAttack (15)
	Loop
  Melee1End:
	GRED F 0 A_ChangeFlag(REFLECTIVE,0)
	//GRED F 0 A_ChangeFlag("MIRRORREFLECT", FALSE)
	TNT1 A 0 A_ChangeFlag(INVULNERABLE,0)
	TNT1 A 0 A_ChangeFlag(FLOAT,1)
	TNT1 A 0 A_ChangeFlag(NOGRAVITY,1)
	TNT1 A 0 A_ChangeFlag(NOPAIN,0)
	GRED F 5 A_UnSetFloorClip
	Goto see
  Missile:
	TNT1 A 0 A_Jump(26,"Missile4")
	TNT1 A 0 A_Jump(26,"Melee2")
	TNT1 A 0 A_Jump(76,"Missile1")
	TNT1 A 0 A_Jump(156,"Missile2")
	TNT1 A 0 A_Jump(256,"Missile3")
	GRED A 1 A_MonsterRefire(130, "See")
  Missile1:
    GRED BC 5 A_FaceTarget
    GRED D 5 Bright A_CustomComboAttack("GreedBall", 32, 20 * random(1, 6))
	GRED BC 1 A_FaceTarget
	GRED D 5 Bright A_CustomComboAttack("GreedBall", 32, 20 * random(1, 6))
	GRED BC 1 A_FaceTarget
	GRED D 5 Bright A_CustomComboAttack("GreedBall", 32, 20 * random(1, 6))
	GRED BC 1 A_FaceTarget
	GRED D 5 Bright A_CustomComboAttack("GreedBall", 32, 20 * random(1, 6))
	GRED BC 1 A_FaceTarget
	GRED D 5 Bright A_CustomComboAttack("GreedBall", 32, 20 * random(1, 6))
	GRED BC 1 A_FaceTarget
	GRED D 5 Bright A_CustomComboAttack("GreedBall", 32, 20 * random(1, 6))
	GRED BCB 1 A_FaceTarget
    Goto See
	Missile2:
    GRED BC 5 A_FaceTarget
    GRED D 5 Bright A_CustomComboAttack("GSpirt", 32, 40 * random(1, 6))
    Goto See
	Missile3:
    GREG BC 5 A_FaceTarget
	TNT1 A 0 A_PlaySound ("PROJDEAT")
    GREG D 5 Bright A_CustomComboAttack("GWhirlwind", 32, 40 * random(1, 6))
    Goto See
	Missile4:
	GREG BC 5 A_FaceTarget
	TNT1 A 0 A_PlaySound ("FIREBURN")
    GREG D 5 Bright A_CustomComboAttack("KINGFIRE", 32, 40 * random(1, 6))
    Goto See
  Pain:
    TNT1 A 0 A_Jump(15,"Melee1")
    GRED E 3
    GRED E 3 A_Pain
    GRED F 6
    Goto See
  Death:
    GRED G 8
    GRED H 8 A_Scream
    GRED IJ 8 A_SpawnItemEx("GreenGibbedGenerator",0,0,0,0,0,0,0,128,0)
    GRED K 8 A_NoBlocking
    GRED L -1 A_SetFloorClip
    Stop
  }
}
ACTOR GreedBall
{
  Radius 6
  Height 8
  Speed 15
  FastSpeed 25
  Damage 10
  Projectile
  +RANDOMIZE
  RenderStyle Add
  Damagetype "CacoComet"
  Alpha 1
  SeeSound "GREEACT"
  DeathSound "PROJSOUN"
  States
  {
  Spawn:
    GRBL AB 4 Bright
    Loop
  Death:
    GRBL CDE 6 Bright
    Stop
  }
}
ACTOR GSpirt
{
  Health 100
  Radius 10
  Height 6
  Speed 12
  Damage 10
  Projectile
  +SEEKERMISSILE
  +RANDOMIZE
  +RIPPER
  Damagetype "CacoComet"
  SeeSound "SPIRT7"
  DeathSound "SPIRT5"
  States
  {
  Spawn:
    GSPR AAB 2 A_Tracer2
    GSPR B 2 A_Tracer2
    Loop
  Death:
    GSPR D 4
    GSPR E 4 A_Scream
    GSPR FGHI 4
    Stop
  }
}
ACTOR GWhirlwind : Whirlwind
{
  Radius 16
  Height 74
  Speed 10
  Damage 1
  Projectile
  -ACTIVATEIMPACT
  -ACTIVATEMCROSS
  +SEEKERMISSILE
  +EXPLOCOUNT
  +STEPMISSILE
  Damagetype "CacoComet"
  RenderStyle Translucent
  Alpha 0.7

  States
  {
  Spawn:
    FX0G DEFG 3
    FX0G A 2 A_WhirlwindSeek
	FX0G A 1 A_Tracer2
	FX0G B 2 A_WhirlwindSeek
	FX0G B 1 A_Tracer2
	FX0G C 2 A_WhirlwindSeek
	FX0G C 1 A_Tracer2
    Goto Spawn+4
  Death:
    FX0G GFED 4
    Stop
  }
}
ACTOR KINGFIRE : FastProjectile
{
  Radius 12
  Height 36
  Speed 20
  FastSpeed 40
  Damage 8
+RIPPER
  RenderStyle Add
  Alpha 1
  Damagetype "CacoComet"
  SeeSound "FIREBURN"
  Decal "Scorch"
  States
  {
Spawn:
    KFRE A 2 bright
    KFRE BAB 2 bright
    KFRE C 2 bright
    KFRE BCBCDCDCDEDED 2 bright
    KFRE E 2 bright
    KFRE FEFEFGHGHGH 2 bright
    Stop
  }
}