ACTOR LesserClockworkCardinal : BaronOfHell
{
//Creator: Vast Unliking
//Origin: Nexus Infinity
//Sprite: LCCD
//Title: "Lesser Clockwork Cardinal" 
  Health 1600
  Speed 19
  PainChance 45
  Scale 1.1
  DamageFactor "NobleComet", 0.0
  Species "Nobles"
  DropItem "BossLifeEssence" 200 25
  DropItem "BossArmorBonusMax" 200 1
  DropItem "GreaterDemonicEnergy" 128 200
  DropItem "GreaterPlasmaEnergy" 186 300
  DropItem "BFG10K " 178 1
  DropItem "Railgun " 184 1
  +DONTHARMSPECIES
  +DONTHARMCLASS
  +MISSILEMORE
  +FLOAT
  +NOGRAVITY
  +NOICEDEATH
  +NOBLOOD
  +NOEXTREMEDEATH
  +NOPAIN
  Obituary "%o was a lit aflame by the Lesser Clockwork Cardinal."
  SeeSound "Clockwork/Sight"
  DeathSound "Clockwork/Death"
  ActiveSound ""
  MeleeSound "baron/melee"
  Tag "\c[i7]Lesser Clockwork Cardinal\c-"
  var int user_firespawn;
  var int user_rageloop;
  States 
  { 
  Spawn: 
	TNT1 A 0
	TNT1 A 0 A_JumpIf(user_firespawn == 1,4)
	TNT1 A 0 ACS_NamedExecuteAlways("LesserClockworkCardinalFireEffect",0)
	TNT1 A 0 A_PlaySound("monster/ambientfire",7,1.0,1)
	TNT1 A 0 A_SetUserVar("user_firespawn",1)
  Idle:
    LCCD AB 2 A_Look
    Loop 
  See:
	TNT1 A 0 A_SpawnItemEx("InsaneLesserCardGhost")
	LCCD A 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("InsaneLesserCardGhost")
	LCCD B 2 A_Chase 
    Loop
  Missile:
    TNT1 A 0 A_Jump(100,"Rocket")
    TNT1 A 0 A_Jump(80,"BFG10K","Railgun","Lazers","LesserInfernal","MiniDTBFG")
	TNT1 A 0 A_JumpIfHealthLower(100,"Rage")
  Comets:
	LCCD EF 7 A_FaceTarget 
	LCCD G 3 A_CustomMissile("RIComet",46,0,0)		
	TNT1 A 0 A_CustomMissile("RIComet",46,0,6)
	LCCD G 3 A_CustomMissile("RIComet",46,0,-6)
	TNT1 A 0 A_Jump(64,"Rocket")
	Goto See
  Rocket:
    LCCD C 12 A_FaceTarget
    LCCD D 6 A_CustomMissile("LesserCardinalRocket",46,20,0,0)
    LCCD C 6 A_FaceTarget
    LCCD D 6 A_CustomMissile("LesserCardinalRocket",46,20,0,0)
    LCCD C 6 A_FaceTarget
    LCCD D 6 A_CustomMissile("LesserCardinalRocket",46,20,0,0)
    LCCD C 6 A_FaceTarget
    LCCD D 6 A_CustomMissile("LesserCardinalRocket",46,20,0,0)
    LCCD C 6 A_FaceTarget
    LCCD D 6 A_CustomMissile("LesserCardinalRocket",46,20,0,0)
    LCCD C 10
	TNT1 A 0 A_Jump(70,"Lazers")
	TNT1 A 0 A_Jump(40,"LesserInfernal")
    Goto See
  Lazers:
    LCCD D 6 A_CustomMissile("CWLClaser",46,20,random(2,-2))
    LCCD C 6 A_FaceTarget
    LCCD D 6 A_CustomMissile("CWLClaser",46,20,random(2,-2))
    LCCD C 6 A_FaceTarget
    LCCD D 6 A_CustomMissile("CWLClaser",46,20,random(2,-2))
    LCCD C 6 A_FaceTarget
    LCCD D 6 A_CustomMissile("CWLClaser",46,20,random(2,-2))
    LCCD C 6 A_FaceTarget
    LCCD D 6 A_CustomMissile("CWLClaser",46,20,random(2,-2))
	TNT1 A 0 A_Jump(70,"Rocket")
	TNT1 A 0 A_Jump(40,"LesserInfernal")
  LesserInfernal:
    LCCD CC 12 Bright A_FaceTarget
    LCCD D 6 Bright A_CustomMissile("CyberInfernalRocket",46,20,0,0)
    LCCD CC 12 Bright A_FaceTarget
    LCCD D 6 Bright A_CustomMissile("CyberInfernalRocket",46,20,0,0)
    LCCD C 10
    Goto See
  BFG10K:
	TNT1 A 0 A_PlayWeaponSound("weapons/charge15k")
    LCCD CCCCC 5 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
    LCCD D 1 A_CustomMissile("Cy10K",46,20,0,0)
    LCCD C 4 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
    LCCD D 1 A_CustomMissile("Cy10K",46,20,0,0)
    LCCD C 4 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
    LCCD D 1 A_CustomMissile("Cy10K",46,20,0,0)
    LCCD C 4 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
    LCCD D 1 A_CustomMissile("Cy10K",46,20,0,0)
    LCCD C 4 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
    LCCD D 1 A_CustomMissile("Cy10K",46,20,0,0)
    LCCD C 16 A_PlaySound("weapons/bfg15kcooldown",CHAN_AUTO)
	TNT1 A 0 A_Jump(64,"Rocket")
	TNT1 A 0 A_Jump(32,"Railgun")
    Goto See
  Railgun:
	TNT1 A 0 A_PlaySound("weapons/rgcharge")
	LCCD CCCCC 5 A_FaceTarget
	TNT1 A 0 A_CustomMissile("CyberExplosiveRailgunImpact",46,20)
	LCCD D 5 A_CustomMissile("CardinalRail",46,20)
	LCCD C 20
	Goto See
  MiniDTBFG:
	TNT1 A 0 A_PlaySound("LesserCardinal/BFGCharge")
	LCCD CCCCCCC 5 A_FaceTarget
	TNT1 A 0 A_PlaySound("LesserCardinal/BFGFire")
	LCCD D 5 //A_CustomMissile("LesserClockworkMiniDTBFG",46,20) Does not exist
	LCCD C 30
	TNT1 A 0 A_Jump(64,"Railgun")
	Goto See
  Melee:
	LCCD CC 5 A_FaceTarget
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_PlaySound("sentient/fire")
	TNT1 AAAA 0 A_CustomMissile("TerminatorExplosiveTracer",50,-25,frandom(-3.5,3.5),CMF_OFFSETPITCH,frandom(-1.5,1.5))
	LCCD D 2 A_SpawnItemEx("OrangeShellCasing",0,12,36,Random(2,6),0,Random(1,3),Random(-80,-90),128)
	TNT1 A 0 
	TNT1 A 0 A_Jump(18,"See")
	TNT1 A 0 A_SpidRefire	
	Goto Melee+2
  Rage:
	TNT1 A 0 A_JumpIfCloser(800,1)
	LCCD D 25 Bright
	TNT1 A 0 A_SetInvulnerable
	TNT1 A 0 Radius_Quake(6,60,0,18,0)
	TNT1 A 0 A_PlaySound("LesserCardinal/Laugh")
	TNT1 A 0 A_SetUserVar("user_rageloop",0)
  RageLoop:
	TNT1 A 0 A_JumpIf(user_rageloop >= 2,"RageEnd")	 
	TNT1 A 0 A_SetUserVar("user_rageloop",user_rageloop+1)
	TNT1 A 0 A_SpawnItem("LesserClockworkCardinalRageFlameSpawner",0,0,0,0)
	TNT1 A 0 A_CustomMissile("CyberExplosiveRailgunImpact",46,20)
	LCCD D 8 A_CustomMissile("CardinalRail",46,20)
	LCCD C 8 A_FaceTarget
	LCCD D 8 A_CustomMissile("CardinalRail",46,20)
	LCCD C 8 A_FaceTarget
	LCCD D 8 A_CustomMissile("CardinalRail",46,20)
	LCCD C 4 A_FaceTarget
	LCCD D 8 A_CustomMissile("CardinalRail",46,20)
	LCCD C 2 A_FaceTarget
	TNT1 A 0 A_PlaySound("ExplosiveRailgun/Fire")
	TNT1 A 0 A_CustomMissile("CyberExplosiveRailgunImpact",46,20)
	LCCD D 8 A_CustomMissile("CardinalRail",46,20)
	Loop
  RageEnd:
	TNT1 A 0 A_UnSetInvulnerable
	LCCD D 6
	Goto See
  Death:
	TNT1 A 0
	TNT1 A 0 A_RemoveChildren(1)
	TNT1 A 0 A_StopSound(7)
    LCCD I 20 A_Scream
	TNT1 AA 0 A_SpawnItemEx("GibbedGenerator",0,0,0,0,0,0,0,128,0)
	TNT1 AA 0 A_CustomMissile("SmokeFX2", 0, 0, random(0,360), 2, random(0,360))	
	LCCD JJJJ 2 A_CustomMissile("Kaboom17", Random(10,50), 0, random(0,360), 2, random(0,360))
	LCCD KKKK 2 A_CustomMissile("Kaboom17", Random(10,50), 0, random(0,360), 2, random(0,360))
	TNT1 AA 0 A_SpawnItemEx("GibbedGenerator",0,0,0,0,0,0,0,128,0)
	TNT1 AA 0 A_CustomMissile("SmokeFX2", 0, 0, random(0,360), 2, random(0,360))	
	LCCD LLLL 2 A_CustomMissile("Kaboom17", Random(10,50), 0, random(0,360), 2, random(0,360))
	TNT1 AA 0 A_SpawnItemEx("GibbedGenerator",0,0,0,0,0,0,0,128,0)
	TNT1 AA 0 A_CustomMissile("SmokeFX2", 0, 0, random(0,360), 2, random(0,360))	
	LCCD MMMM 2 A_CustomMissile("Kaboom17", Random(10,50), 0, random(0,360), 2, random(0,360))
	TNT1 AA 0 A_SpawnItemEx("GibbedGenerator",0,0,0,0,0,0,0,128,0)
	TNT1 AAAA 0 A_CustomMissile("SmokeFX2", 0, 0, random(0,360), 2, random(0,360))
    LCCD N 4 A_NoBlocking
    LCCD O 3 A_BossDeath
	TNT1 A 1 A_KillMaster
	Stop
    } 
}

//ah shit here we go again
ACTOR CWLClaser : CWClaser { Damagetype "Nobles" }

ACTOR LesserClockworkCardinalFireSpawner : RedParticleSpawner
{
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1,"NULL")
	TNT1 A 0 A_SpawnItemEx("LesserClockworkCardinalFireEx",random(-12,12),random(-12,12),random(30,60),0,0,random(-4,-6),0,128,0)	
    TNT1 AAAA 0 A_SpawnItemEx("LesserClockworkCardinalFire",random(-18,18),random(-18,18),random(25,60),0,0,random(-6,-8),0,128,0)
    TNT1 A 1
    Stop
  }
}

ACTOR LesserClockworkCardinalRageFlameSpawner : RedParticleSpawner
{
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_SpawnItemEx("RHellionSmoke",random(-12,12),random(-12,12),random(20,40),0,0,random(3,6),0,128,0)
	TNT1 A 1
    Stop
  }
}

ACTOR LesserClockworkCardinalFireEx : ClockworkCardinalFireEx
{
Scale 0.5
}

ACTOR LesserClockworkCardinalFire : ClockworkCardinalFire
{
RenderStyle Add
Scale 0.3
}

ACTOR InsaneLesserCardGhost
{
Scale 1
RENDERSTYLE Translucent
Alpha 0.75
+NOGRAVITY
+CLIENTSIDEONLY
+DONTSPLASH
+NOINTERACTION
+NOCLIP
States
{
Spawn:
   LCCD A 2 A_FadeOut(0.18)
   Loop
   }
}