ACTOR ClockworkCardinal : ClockworkCyberdemon
{ 
  Health 8000
  Speed 24
  Scale 1
  Mass 2500
  DropItem "BossLifeEssence" 200 25
  DropItem "BossArmorBonusMax" 200 1
  DropItem "NewCellPack" 186 300
  DropItem "BFG10K " 178 1
  DropItem "Railgun " 184 1
  //SeeSound "Clockwork/Sight"
  +MISSILEEVENMORE
  +QUICKTORETALIATE
  +FLOAT
  +NOGRAVITY	
  -FLOORCLIP
  +BRIGHT
  Obituary "%o was foolish enough to awaken the lost Clockwork Cardinal from its slumber."
  Tag "\c[i7]Clockwork Cardinal\c-"
  var int user_script;
  States 
  { 
  Spawn:
	TNT1 A 0 A_JumpIf(user_script == 1,3)
	TNT1 A 0 ACS_NamedExecuteAlways("ClockworkCardinalFire",0)
	TNT1 A 0 A_SetUserVar("user_script",1)
	C4RD AB 2 A_Look
	Loop
  See:
	TNT1 A 0 A_SpawnItemEx("insanecardghost")
	C4RD A 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("insanecardghost")
	C4RD B 2 A_Chase
	Loop
  Missile:
	TNT1 A 0 A_jump(128,"RailgunCharge","Crockets")
	TNT1 A 0 A_Jump(100,"HCrockets")
	TNT1 A 0 A_jump(90,"9k","10k")
	TNT1 A 0 A_jump(50,"DTBFG")
	TNT1 A 0 A_Jump(40,"DEVA")
  ERotaryshotgun:	
	C4RD 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))
	C4RD 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 ERotaryshotgun+7
  Crockets:
	C4RD CC 5 A_FaceTarget
	C4RD D 4 A_CustomMissile("CyberInfernalRocket",50,-25,random(6,-6))
	C4RD C 6 A_FaceTarget
	C4RD D 4 A_CustomMissile("CyberInfernalRocket",50,-25,random(6,-6))
	C4RD C 6 A_FaceTarget
	C4RD D 4 A_CustomMissile("CyberInfernalRocket",50,-25,random(6,-6))
	C4RD C 6 A_FaceTarget
	TNT1 A 0 A_jump(50,"See")
	C4RD D 4 A_CustomMissile("CyberInfernalRocket",50,-25,random(6,-6))
	C4RD C 6 A_FaceTarget
	C4RD D 4 A_CustomMissile("CyberInfernalRocket",50,-25,random(6,-6))
	C4RD C 6 A_FaceTarget
	C4RD D 4 A_CustomMissile("CyberInfernalRocket",50,-25,random(6,-6))
	C4RD C 12
	TNT1 A 0 A_jump(100,"HCrockets","railguncharge")
	TNT1 A 0 A_jump(50,"10k","9k")
	TNT1 A 0 A_jump(20,"DTBFG")
	Goto see
  HCrockets:
	C4RD CC 5 A_FaceTarget
	C4RD D 4 A_CustomMissile("ClockworkCardinalFuelRocket",50,-25,random(6,-6))
	C4RD C 6 A_FaceTarget
	C4RD D 4 A_CustomMissile("ClockworkCardinalFuelRocket",50,-25,random(6,-6))
	C4RD C 6 A_FaceTarget
	C4RD D 4 A_CustomMissile("ClockworkCardinalFuelRocket",50,-25,random(6,-6))
	C4RD C 6 A_FaceTarget
	TNT1 A 0 A_jump(50,"See")
	C4RD D 4 A_CustomMissile("ClockworkCardinalFuelRocket",50,-25,random(6,-6))
	C4RD C 6 A_FaceTarget
	C4RD D 4 A_CustomMissile("ClockworkCardinalFuelRocket",50,-25,random(6,-6))
	C4RD C 6 A_FaceTarget
	C4RD D 4 A_CustomMissile("ClockworkCardinalFuelRocket",50,-25,random(6,-6))
	C4RD C 12
	TNT1 A 0 A_jump(100,"railguncharge")
	TNT1 A 0 A_jump(50,"10k","9k")
	TNT1 A 0 A_jump(20,"DTBFG")
	Goto see
  DTBFG:
	TNT1 A 0 A_PlaySound("Cardinal/9k") 
	C4RD CCCCCCCCDDD 4 A_FaceTarget
	C4RD D 4 A_CustomMissile("CardinalDTBFG10KBall",50,-25)
	C4RD DCC 4
	TNT1 A 0 A_jump(50,"DEVA")
	Goto see
  DEVA:
	TNT1 A 0 A_PlaySound("devastator/charge") 
	C4RD CCCCCCCCCCCCCCCCCC 4 A_FaceTarget
	TNT1 A 0 A_PlaySound("devastator/fire")
	C4RD D 4 A_CustomMissile("FusionDevastatorBall",50,-25,0)
	C4RD DDCC 4
	Goto see
  9k:
	TNT1 A 0 A_PlaySound("weapons/bfgf")
	C4RD CCCCCCC 4 A_FaceTarget
	C4RD D 3 A_CustomMissile("SentientBFG9500Ball", 50, -25, Random(1, -1)) 
	C4RD CCCC 4 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfgf")
	C4RD CCCCCCC 4 A_FaceTarget
	C4RD D 3 A_CustomMissile("SentientBFG9500Ball", 50, -25, Random(1, -1))
	C4RD CCC 12
	TNT1 A 0 A_jump(80,"DTBFG")
	TNT1 A 0 A_jump(30,"DEVA")
	Goto see
   10k:
	TNT1 A 0 A_PlaySound("weapons/charge15k")
	C4RD CCCCC 4 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
	C4RD D 3 A_CustomMissile("Cardinal10K", 50, -25, Random(4, -4))
	C4RD C 4 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
	C4RD D 3 A_CustomMissile("Cardinal10K", 50, -25, Random(4, -4))
	C4RD C 4 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
	C4RD D 3 A_CustomMissile("Cardinal10K", 50, -25, Random(4, -4))
	C4RD C 4 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
	C4RD D 3 A_CustomMissile("Cardinal10K", 50, -25, Random(4, -4))
	C4RD C 4 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
	C4RD D 3 A_CustomMissile("Cardinal10K", 50, -25, Random(4, -4))
	C4RD C 4 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
	C4RD D 3 A_CustomMissile("Cardinal10K", 50, -25, Random(4, -4))
	C4RD C 4 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
	C4RD D 3 A_CustomMissile("Cardinal10K", 50, -25, Random(4, -4))
	C4RD C 4 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kcooldown",0)
	TNT1 A 0 A_jump(80,"9k")
	TNT1 A 0 A_jump(15,"DTBFG","DEVA")
	Goto see
  Railguncharge:
	TNT1 A 0 A_PlaySound("weapons/rgcharge")
	C4RD CCCCC 5 A_FaceTarget
	TNT1 A 0 A_Jump(120,"Lasers")
	TNT1 A 0 A_jump(80,"Morerailguns","Erailgun")
	TNT1 A 0 A_jump(50,"MoreErailguns")
	TNT1 A 0 A_jump(30,"Railgunbarrage")
  Railgun:
	C4RD C 10
	C4RD D 8 A_CustomMissile("CardinalRail",50,-25)
	C4RD C 10
	Goto See
  Morerailguns:
	C4RD C 10
	C4RD D 8 A_CustomMissile("CardinalRail",50,-25)
	C4RD C 8 A_FaceTarget
	C4RD D 8 A_CustomMissile("CardinalRail",50,-25)
	C4RD C 8 A_FaceTarget
	C4RD D 8 A_CustomMissile("CardinalRail",50,-25)
	C4RD C 12
	Goto See
  Lasers:
	C4RD C 10
	C4RD D 8 A_CustomMissile("CWClaser",50,-25,random(2,-2))
	C4RD CC 4 A_FaceTarget
	C4RD D 8 A_CustomMissile("CWClaser",50,-25,random(2,-2))
	C4RD CC 4 A_FaceTarget
	C4RD D 8 A_CustomMissile("CWClaser",50,-25,random(2,-2))
	C4RD CC 4 A_FaceTarget
	C4RD D 8 A_CustomMissile("CWClaser",50,-25,random(2,-2))
	C4RD CC 4 A_FaceTarget
	C4RD D 8 A_CustomMissile("CWClaser",50,-25,random(2,-2))
	C4RD C 12
	Goto See
  ERailgun:
	C4RD C 10
	TNT1 A 0 A_PlaySound("ExplosiveRailgun/Fire")
	TNT1 A 0 A_CustomMissile("CyberExplosiveRailgunImpact",50,-25)
	C4RD D 8 A_CustomMissile("CardinalRail",50,-25)
	C4RD C 12
	Goto See
	MoreERailguns:
	C4RD C 10
	TNT1 A 0 A_PlaySound("ExplosiveRailgun/Fire")
	TNT1 A 0 A_CustomMissile("CyberExplosiveRailgunImpact",50,-25)
	C4RD D 8 A_CustomMissile("CardinalRail",50,-25)
	C4RD C 8 A_FaceTarget
	TNT1 A 0 A_PlaySound("ExplosiveRailgun/Fire")
	TNT1 A 0 A_CustomMissile("CyberExplosiveRailgunImpact",50,-25)
	C4RD D 8 A_CustomMissile("CardinalRail",50,-25)
	C4RD C 12
	Goto See
	Railgunbarrage:
	C4RD C 10
	TNT1 A 0 A_PlaySound("ExplosiveRailgun/Fire")
	TNT1 A 0 A_CustomMissile("CyberExplosiveRailgunImpact",50,-25)
	C4RD D 8 A_CustomMissile("CardinalRail",50,-25)
	C4RD C 8 A_FaceTarget
	C4RD D 8 A_CustomMissile("CardinalRail",50,-25)
	C4RD C 8 A_FaceTarget
	C4RD D 8 A_CustomMissile("CardinalRail",50,-25)
	C4RD C 4 A_FaceTarget
	C4RD D 8 A_CustomMissile("CardinalRail",50,-25)
	C4RD C 2 A_FaceTarget
	TNT1 A 0 A_PlaySound("ExplosiveRailgun/Fire")
	TNT1 A 0 A_CustomMissile("CyberExplosiveRailgunImpact",50,-25)
	C4RD D 8 A_CustomMissile("CardinalRail",50,-25)
	C4RD C 12
	Goto See
  Death.ice:
  Death:
	C4RD E 10 A_Scream
	C4RD F 10 A_NoBlocking
	TNT1 AAA 0 A_CustomMissile("BigRedBloodCloud", random(10,80), 0, random(0,360), 2, random(0,360))
	C4RD GGGGG 2 Bright A_CustomMissile("Kaboom", random(20,80), random(20,-20), random(0,360), 2, random(0,360))
	C4RD HHHHH 2 Bright A_CustomMissile("Kaboom", random(20,80), random(20,-20), random(0,360), 2, random(0,360))
	C4RD IIIII 2 Bright A_CustomMissile("Kaboom", random(20,80), random(20,-20), random(0,360), 2, random(0,360))
	C4RD JJJJJ 1 Bright A_CustomMissile("Kaboom", random(20,80), random(20,-20), random(0,360), 2, random(0,360))
	C4RD KKKKK 1 Bright A_CustomMissile("Kaboom", random(20,80), random(20,-20), random(0,360), 2, random(0,360))
	TNT1 AAAAAAAA 0 A_CustomMissile("SmokeFX3", Random(20,80), 0, random(0,360), 2, random(0,360))	
	C4RD L 5
	TNT1 A 1 A_KillMaster
	Stop
	} 
}

ACTOR CyberExplosiveRailgunImpact : ExplosiveRailgunImpact
{
MissileType "CyberExplosiveRailgunTrailExplodeSpawner"
}

ACTOR CyberExplosiveRailgunTrailExplodeSpawner
{
  States
  {
  Spawn:
	TNT1 A 1 Nodelay A_SpawnItemEx("CyberExplosiveRailgunTrailExplode",random(0,4),0,0,random(0,4),0,random(-4,4),random(0,360))
	Stop
  }
}

Actor ClockworkCardinalFuelRocket : FuelRocket {} // no it doesn't have Pierce armor - Overlord

ACTOR ClockworkCardinalFireSpawner : RedParticleSpawner
{
  States
  {
  Spawn:
   TNT1 A 0
	TNT1 A 0 A_PlaySound("monster/ambientfire3")
	TNT1 A 0 A_JumpIf(CallAcs("LCAEffectCheck"),"Toaster")
	TNT1 A 0 A_SpawnItemEx("ClockworkCardinalFireEx",random(8,-8),random(4,-4),random(70,80),0,0,random(-4,-6),0,128,0)	
   TNT1 AAAA 0 A_SpawnItemEx("ClockworkCardinalFire",random(18,-18),random(14,-14),random(70,80),0,0,random(-6,-8),0,128,0)
   TNT1 A 1
   Stop
  }
}

ACTOR ClockworkCardinalFireEx : Kaboom6
{
Speed 0
Scale 0.85
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_JumpIf(CallAcs("LCAEffectCheck"),"Toaster")
FXPR AABBCDEFGHIJKLM 1 Bright A_FadeOut(0.05)
Stop
}
}

ACTOR ClockworkCardinalFire : CardinalFire
{
States
{
Spawn:
2HD2 ABCDEFGHIJKL 2 Bright A_FadeOut
Stop
}
}

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