ACTOR LightCardinal : Cyberdemon
{
//Creator: Trusar
//Origin: Nexus Infinity
//Sprite: C7RD
//Title: "Light Cardinal"
Health 5000 //3500
Mass 2500
Speed 10
FloatSpeed 8
PainChance 10
PainChance "PDTBFG", 10
PainChance "SoulToxic", 10
PainChance "FatFlamer", 10
PainChance "FiendFire", 10
PainChance "Explosion", 60
Species "Cybers"
DamageFactor "Legendary", 0.7
DamageFactor "Legendary1", 0.7
DamageFactor "Hell", 0.0 
DamageFactor "Legendary", 0.75
DamageFactor "BFGSplash", 0.5
DamageFactor "PDTBFG", 0.5
DamageFactor "PDTBFGTracer", 0.5
DamageFactor "Cyber10k", 0.0
DamageFactor 0.75
DropItem "BossLifeEssence", 128
DropItem "BossArmorBonusMax", 128
DropItem "GreaterPlasmaEnergy", 128
DropItem "MissileBox", 128
DropItem "NexusProxMines", 128
DropItem "NexusDustMana", 128
DropItem "ShuffleSpawner", 35, 1
MaxStepHeight 32
MaxDropOffHeight 32
+DONTHARMSPECIES
+MISSILEEVENMORE
+QUICKTORETALIATE
+FLOAT
+NOGRAVITY	
-FLOORCLIP
Obituary "%o was defeated by an light cardinal."
PainChance 5
Tag "\c[w8]Light Cardinal\c-"
var int user_script;
var int user_wait;
States 
{ 
  Spawn:
	TNT1 A 0
  Idle:
	TNT1 A 0 A_JumpIf(user_script == 1,3)
	TNT1 A 0 ACS_NamedExecuteAlways("CardinalFireRemaked",0)
	TNT1 A 0 A_SetUserVar("user_script",1)
	TNT1 A 0 A_PlaySound("monster/ambientfire3",7,1,1)
	C7RD AB 2 A_Look
	Loop
  See:
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
	C7RD AB 2 A_Chase
	Loop
  Missile:
	TNT1 A 0 A_Jump(128,"HeavyRocket","Seekers","BFG4700","Railgun","BFG15K")
  Normal:
	C7RD CCC 2 A_FaceTarget
	C7RD D 6 A_CustomMissile("CyberLordRocket",48,-27,random(-4,4))
	C7RD CCC 2 A_FaceTarget
	C7RD D 6 A_CustomMissile("CyberLordRocket",48,-27,random(-4,4))
	C7RD CCC 2 A_FaceTarget
	C7RD D 6 A_CustomMissile("CyberLordRocket",48,-27,random(-4,4))
	C7RD CCC 2 A_FaceTarget
	C7RD D 6 A_CustomMissile("CyberLordRocket",48,-27,random(-4,4))
	C7RD CCC 2 A_FaceTarget
	C7RD D 6 A_CustomMissile("CyberLordRocket",48,-27,random(-4,4))
	C7RD CCC 2 A_FaceTarget
	C7RD D 6 A_CustomMissile("CyberLordRocket",48,-27,random(-4,4))
	C7RD CCC 2 A_FaceTarget
	C7RD D 6 A_CustomMissile("CyberLordRocket",48,-27,random(-4,4))
	C7RD CCC 2 A_FaceTarget
	TNT1 A 0 A_Jump(128,"Seekers","HeavyRocket","BFG4700","Railgun","BFG15K")
	Goto See
  Seekers:
	C7RD CCC 2 A_FaceTarget
	C7RD D 6 A_CustomMissile("CyberLordHomer",48,-27,random(-4,4))
	C7RD CCC 2 A_FaceTarget
	C7RD D 6 A_CustomMissile("CyberLordHomer",48,-27,random(-4,4))
	C7RD CCC 2 A_FaceTarget
	C7RD D 6 A_CustomMissile("CyberLordHomer",48,-27,random(-4,4))
	C7RD CCC 2 A_FaceTarget
	C7RD D 6 A_CustomMissile("CyberLordHomer",48,-27,random(-4,4))
	C7RD CCC 2 A_FaceTarget
	C7RD D 6 A_CustomMissile("CyberLordHomer",48,-27,random(-4,4))
	C7RD CCC 2 A_FaceTarget
	C7RD D 6 A_CustomMissile("CyberLordHomer",48,-27,random(-4,4))
	C7RD CCC 2 A_FaceTarget
	C7RD D 6 A_CustomMissile("CyberLordHomer",48,-27,random(-4,4))
	C7RD CCC 2 A_FaceTarget
	TNT1 A 0 A_Jump(128,"HeavyRocket","BFG4700","Railgun","BFG15K")
	Goto See
  HeavyRocket:
    C7RD CCC 5 A_FaceTarget
	C7RD D 10 A_CustomMissile("BersekerHeavyRocket",48,-27,random(-4,4))
    C7RD CCC 2 A_FaceTarget
	C7RD D 10 A_CustomMissile("BersekerHeavyRocket",48,-27,random(-4,4))
    C7RD CCC 2 A_FaceTarget
	C7RD D 10 A_CustomMissile("BersekerHeavyRocket",48,-27,random(-4,4))
    C7RD CCC 2 A_FaceTarget
	TNT1 A 0 A_Jump(128,"Railgun","BFG4700","BFG15K")
    Goto See
  BFG4700:
    C7RD CCC 5 A_FaceTarget
	C7RD D 8 A_CustomMissile("CyberBFG4700FastShot",48,-27,random(-4,4))
    C7RD CCC 2 A_FaceTarget
	C7RD D 8 A_CustomMissile("CyberBFG4700FastShot",48,-27,random(-4,4))
    C7RD CCC 2 A_FaceTarget
	C7RD D 8 A_CustomMissile("CyberBFG4700FastShot",48,-27,random(-4,4))
    C7RD CCC 2 A_FaceTarget
	C7RD D 8 A_CustomMissile("CyberBFG4700FastShot",48,-27,random(-4,4))
    C7RD CCC 2 A_FaceTarget
	C7RD D 8 A_CustomMissile("CyberBFG4700FastShot",48,-27,random(-4,4))
    C7RD CCC 2 A_FaceTarget
	TNT1 A 0 A_Jump(128,"Railgun","BFG15K")
    Goto See
  Railgun:
	TNT1 A 0 A_PlaySound("weapons/rgcharge")
	TNT1 A 0 A_SpawnItem("ApprenticeFireSpawner",0,0,0,0)
	C7RD CCCCCCCCCCCCCCC 2 A_FaceTarget
	C7RD D 2 A_CustomMissile("CardinalRail",48,-27,0)
	C7RD DDDD 2 A_FaceTarget
	C7RD CCCCCCC 2 A_FaceTarget
	C7RD D 2 A_CustomMissile("CardinalRail",48,-27,0)
	C7RD DDDD 2 A_FaceTarget
	C7RD CCCCCCC 2 A_FaceTarget
	TNT1 A 0 A_Jump(128,"BFG15K")
	Goto See
  BFG15K:
	TNT1 A 0 A_PlaySound("weapons/charge15k")
	C7RD CCCCCCC 4 A_FaceTarget
	C7RD D 3 A_CustomMissile("Cybruiser15K",48,-27,random(4,-4))
	C7RD C 4 A_FaceTarget
	C7RD D 3 A_CustomMissile("Cybruiser15K",48,-27,random(4,-4))
	C7RD C 4 A_FaceTarget
	C7RD D 3 A_CustomMissile("Cybruiser15K",48,-27,random(4,-4))
	C7RD C 4 A_FaceTarget
	C7RD D 3 A_CustomMissile("Cybruiser15K",48,-27,random(4,-4))
	C7RD C 4 A_FaceTarget
	C7RD D 3 A_CustomMissile("Cybruiser15K",48,-27,random(4,-4))
	C7RD C 4 A_FaceTarget
	C7RD D 3 A_CustomMissile("Cybruiser15K",48,-27,random(4,-4))
	C7RD C 4 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kcooldown",CHAN_AUTO)
	C7RD CCCCC 4 A_FaceTarget
	//TNT1 A 0 A_Jump(128,"EradicationBFG")
	Goto See
   BFG10K:
	TNT1 A 0 A_PlaySound("weapons/charge15k")
	TNT1 A 0 A_SpawnItem("ApprenticeFireSpawner",0,0,0,0)
	C7RD C 4 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItem("ApprenticeFireSpawner",0,0,0,0)
	C7RD C 4 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItem("ApprenticeFireSpawner",0,0,0,0)
	C7RD C 4 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItem("ApprenticeFireSpawner",0,0,0,0)
	C7RD C 4 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItem("ApprenticeFireSpawner",0,0,0,0)
	C7RD C 4 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItem("ApprenticeFireSpawner",0,0,0,0)
	C7RD C 4 Bright A_FaceTarget	
	TNT1 A 0 A_SpawnItem("ApprenticeFireSpawner",0,0,0,0)
	C7RD C 4 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItem("ApprenticeFireSpawner",0,0,0,0)
	C7RD D 3 Bright A_CustomMissile("Desolator15k", 40, -26, Random(4, -4))
	TNT1 A 0 A_SpawnItem("ApprenticeFireSpawner",0,0,0,0)
	C7RD C 4 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItem("ApprenticeFireSpawner",0,0,0,0)
	C7RD D 3 Bright A_CustomMissile("Desolator15k", 40, -26, Random(4, -4))
	TNT1 A 0 A_SpawnItem("ApprenticeFireSpawner",0,0,0,0)
	C7RD C 4 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItem("ApprenticeFireSpawner",0,0,0,0)
	C7RD D 3 Bright A_CustomMissile("Desolator15k", 40, -26, Random(4, -4))
	TNT1 A 0 A_SpawnItem("ApprenticeFireSpawner",0,0,0,0)
	C7RD C 4 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItem("ApprenticeFireSpawner",0,0,0,0)
	C7RD D 3 Bright A_CustomMissile("Desolator15k", 40, -26, Random(4, -4))
	TNT1 A 0 A_SpawnItem("ApprenticeFireSpawner",0,0,0,0)
	C7RD C 4 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItem("ApprenticeFireSpawner",0,0,0,0)
	C7RD D 3 Bright A_CustomMissile("Desolator15k", 40, -26, Random(4, -4))
	TNT1 A 0 A_SpawnItem("ApprenticeFireSpawner",0,0,0,0)
	C7RD C 4 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItem("ApprenticeFireSpawner",0,0,0,0)
	C7RD D 3 Bright A_CustomMissile("Desolator15k", 40, -26, Random(4, -4))  
	TNT1 A 0 A_SpawnItem("ApprenticeFireSpawner",0,0,0,0)
	TNT1 A 0 A_PlaySound("weapons/bfg15kcooldown",CHAN_AUTO)
	C7RD CCCCC 4 Bright A_SpawnItem("ApprenticeFireSpawner",0,0,0,0)
	Goto See
  Pain:
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
	C7RD E 3 A_Pain
	C7RD E 6
	TNT1 A 0 A_Jump(64,"PainRage")
	TNT1 A 0 A_Jump(128,"Missile")
	Goto See
  PainRage:
	TNT1 A 0
	C7RD E 3 A_Pain
	TNT1 A 0 A_JumpIfInventory("CardinalToken",3,"See")	
	C7RD E 12
	TNT1 A 0 A_GiveInventory("CardinalToken",1)
	TNT1 A 0 A_SetInvulnerable
	TNT1 A 0 Radius_Quake(10,80,0,24,0)
	TNT1 A 0 A_GiveInventory("Health",1000)
	TNT1 A 0 A_PlaySound("Cardinal/Laugh")	
	TNT1 A 0 A_SetUserVar("user_wait",0) 
  PainRageGo:
    TNT1 A 0 A_JumpIf(user_wait >= 32,"PainRageEnd")	 
    TNT1 A 0 A_SetUserVar("user_wait",user_wait+1)
	TNT1 A 0 A_SpawnItem("CardinalRageFlameSpawner",0,0,0,0)
	C7RD E 2 A_SpawnItemEx("RainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	Loop
  PainRageEnd:
	TNT1 A 0 
	TNT1 A 0 A_UnSetInvulnerable
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
	C7RD EE 3
	Goto See
  Death:
	C7RD E 10 A_Scream
	C7RD F 10 A_NoBlocking
	TNT1 AA 0 A_SpawnItemEx("GibbedGenerator",Random(10,-10),Random(10,-10),Random(20,60),0,0,0,0,128,0)
	TNT1 AAA 0 A_CustomMissile("BigRedBloodCloud", random(10,80), 0, random(0,360), 2, random(0,360))
	C7RD GGGGG 2 A_SpawnItemEx("RedKaboom",random(-32,32),random(-40,40),random(32,96),random(-4,4),random(-4,4),random(0,4))
	TNT1 AA 0 A_SpawnItemEx("GibbedGenerator",Random(10,-10),Random(10,-10),Random(20,60),0,0,0,0,128,0)
	TNT1 AAA 0 A_CustomMissile("BigRedBloodCloud", random(10,80), 0, random(0,360), 2, random(0,360))
	C7RD HHHHH 2 A_SpawnItemEx("RedKaboom",random(-32,32),random(-40,40),random(32,96),random(-4,4),random(-4,4),random(0,4))
	TNT1 AA 0 A_SpawnItemEx("GibbedGenerator",Random(10,-10),Random(10,-10),Random(20,60),0,0,0,0,128,0)
	TNT1 AAA 0 A_CustomMissile("BigRedBloodCloud", random(10,80), 0, random(0,360), 2, random(0,360))
	C7RD IIIII 2 A_SpawnItemEx("RedKaboom",random(-32,32),random(-40,40),random(32,96),random(-4,4),random(-4,4),random(0,4))
	TNT1 A 0 A_SpawnItemEx("RedBossExplosionEffect")
	TNT1 AA 0 A_SpawnItemEx("GibbedGenerator",Random(10,-10),Random(10,-10),Random(20,60),0,0,0,0,128,0)
	TNT1 AAA 0 A_CustomMissile("BigRedBloodCloud", random(10,80), 0, random(0,360), 2, random(0,360))
	C7RD JJJJJ 1 A_SpawnItemEx("RedKaboom",random(-32,32),random(-40,40),random(32,96),random(-4,4),random(-4,4),random(0,4))
	TNT1 AA 0 A_SpawnItemEx("GibbedGenerator",Random(10,-10),Random(10,-10),Random(20,60),0,0,0,0,128,0)
	TNT1 AAA 0 A_CustomMissile("BigRedBloodCloud", random(10,80), 0, random(0,360), 2, random(0,360))
	C7RD KKKKK 1 A_SpawnItemEx("RedKaboom",random(-32,32),random(-40,40),random(32,96),random(-4,4),random(-4,4),random(0,4))
	TNT1 AAAA 0 A_SpawnItemEx("GibbedGenerator",Random(10,-10),Random(10,-10),Random(20,60),0,0,0,0,128,0)
	TNT1 AAAAAA 0 A_CustomMissile("BigRedBloodCloud", random(10,80), 0, random(0,360), 2, random(0,360))
	TNT1 AAAAAAAA 0 A_CustomMissile("SmokeFX3", Random(20,80), 0, random(0,360), 2, random(0,360))
	C7RD L 5 A_BossDeath
	Stop
	} 
}

Actor RedBossExplosionEffect : RocketExplosionShockWave
{ 
States 
{ 
  Spawn: 
    TNT1 A 0 
    TNT1 A 0 A_SpawnItemEx("RedHugeRocketEx",0,0,48)
    TNT1 A 9 A_SpawnItemEx("RedHugeExplosion",0,0,48)
	Stop
} 
}

ACTOR ApprenticeFireSpawner : RedParticleSpawner
{
  States
  {
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_PlaySound("monster/ambientfire3")
	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
	TNT1 A 0 A_SpawnItemEx("ApprenticeFireEx",random(8,-8),random(4,-4),random(55,65),0,0,random(-4,-6),0,128,0)	
    TNT1 AAAA 0 A_SpawnItemEx("CardinalFire",random(18,-18),random(14,-14),random(55,65),0,0,random(-6,-8),0,128,0)
    TNT1 A 1
    Stop
  }
}

ACTOR ApprenticeFireEx : RedKaboom
{
Speed 0
Scale 0.85
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
FXPR ABBCDEFGHIJKLM 1 Bright A_FadeOut(0.05)
Stop
}
}