//Smol Cardinal
ACTOR MiniLegendaryCardinal : Cyberdemon //Had to somehow fit him in a package
{ 
   Health 399
   Radius 56
   Height 25
   Scale 0.30
   Speed 12
   Mass 0x7FFFFFFF
   FloatSpeed 12
   PainChance 1
   DamageFactor 0.4
   Species "Legendary"
   DamageFactor "PDTBFG", 0.05
   DamageFactor "PDTBFGTracer", 0.05
   DamageFactor "Cyber10K", 0.0
   DamageFactor "Legendary", 0.0
   DamageFactor "LegendaryPlayer", 0.3
   DamageFactor "BFGSplash", 0.25
   DamageFactor "BFGSpray", 0.25
   DamageFactor "PlayerDevBall", 0.025
   DamageFactor "PlayerDevBall2", 0.025
   DamageFactor "PlayerDTBFGRailgunSlug", 0.025
   DamageFactor "PlayerDevTracer", 0.025
   DamageFactor "DemolisherEx", 0.0
   DamageFactor "DarkDemoEx", 0.0
   DamageFactor "CerChainguns", 0.0
   DamageFactor "CerEnergyBall", 0.0
   DamageFactor "LegMind", 0.0
   DamageFactor "SuperWeapon", 0.0
   DamageFactor "CDTBFG", 0.0
   DamageFactor "BeheComet", 0.0
   DamageFactor "LegendaryPlayer", 0.1
   DamageFactor "Extreme", 0.0
   DamageFactor "CacoComet", 0.0
   DamageFactor "CadaverRocket", 0.0
   DamageFactor "NobleCOmet", 0.0
   DamageFactor "HFCyber", 0.0
   BloodColor "Blue"
   SeeSound "minilegcardi/hi"
   PainSound "RAGE"
   DeathSound ""
   ActiveSound "minilegcardi/act"
   +QUICKTORETALIATE
   +FLOAT
   +NOGRAVITY	
   +NOTIMEFREEZE
   +NORADIUSDMG
   +PIERCEARMOR
   +MISSILEEVENMORE
   +NOTARGET
   +BOSS
   +MISSILEMORE
   -FLOORCLIP
   +DONTMORPH
   +BOSSDEATH
   +NOICEDEATH
   +DONTGIB
   +NOTIMEFREEZE
   +LOOKALLAROUND
   MinMissileChance 160
   Tag "$NEMiniLegCard"
   Obituary "The Mini Legendary Cardinal showed no mercy when it erased %o from sexistacne." 
   var int user_LegendaryPortal;
   var int user_LegendaryPortal2;
   var int user_music;
   var int user_lowlag;
   States 
   { 
   Spawn:
	TNT1 A 0 NoDelay ACS_NamedExecuteAlways("ModifyMonster",0,2)
	Goto Idle
  Idle:
      TNT1 A 0 A_SetTranslucent(1)
      LARD A 2 Bright A_Look
      LARD B 2 Bright A_Look	  
      Loop
  See:
	TNT1 A 0 A_JumpIf(user_lowlag == 1,"MoreSee")
	TNT1 A 0 A_JumpIfTargetInLOS("MoreSee",0,0,0,0)
	LARD AB 2 A_Chase
	Loop
  MoreSee:
	TNT1 A 0 A_SetUserVar("user_lowlag",1)
      TNT1 A 0 A_SetTranslucent(1)
      TNT1 A 0 A_Jump(87,"Rush")
      LARD A 2 Bright A_Chase
      LARD B 2 Bright A_Chase  
      Loop	 
   Rush:
      TNT1 A 0 A_SetTranslucent(1)
      TNT1 A 0 Bright A_SpawnItem("MiniLegCardinalFireSpawner",0,0,0,0)
	  TNT1 A 0 A_SpawnItemEx("MiniLegendaryCardinalGhost")
      LARD A 1 Bright A_Chase
	  TNT1 A 0 A_SpawnItemEx("MiniLegendaryCardinalGhost")
      LARD B 1 Bright A_Chase
	  TNT1 A 0 A_SpawnItemEx("MiniLegendaryCardinalGhost")
      LARD A 1 Bright A_Chase
	  TNT1 A 0 A_SpawnItemEx("MiniLegendaryCardinalGhost")
      LARD B 1 Bright A_Chase  
      TNT1 A 0 A_SpawnItemEx("MiniLegendaryCardinalGhost")
      LARD A 1 Bright A_Chase
	  TNT1 A 0 A_SpawnItemEx("MiniLegendaryCardinalGhost")
      LARD B 1 Bright A_Chase 
	  TNT1 A 0 A_SpawnItemEx("MiniLegendaryCardinalGhost")
      LARD A 1 Bright A_Chase
	  TNT1 A 0 A_SpawnItemEx("MiniLegendaryCardinalGhost")
      LARD B 1 Bright A_Chase  
	  TNT1 A 0 A_SpawnItemEx("MiniLegendaryCardinalGhost")
      LARD A 1 Bright A_Chase
	  TNT1 A 0 A_SpawnItemEx("MiniLegendaryCardinalGhost")
      LARD B 1 Bright A_Chase  
	  TNT1 A 0 A_SpawnItemEx("MiniLegendaryCardinalGhost")
      LARD A 1 Bright A_Chase
	  TNT1 A 0 A_SpawnItemEx("MiniLegendaryCardinalGhost")
      LARD B 1 Bright A_Chase  
	  TNT1 A 0 A_Jump(70,"See")
	  TNT1 A 0 A_Jump(10,"RandomIllusion")
      Loop
	  RandomIllusion:
	  LARD E 5 Bright A_faceTarget
	  goto see
   Missile:
      TNT1 A 0 A_SetShootable
	  TNT1 A 0 A_UnsetInvulnerable
      TNT1 A 0 A_SetTranslucent(1)
	  TNT1 A 0 A_Jump(50,"FinalAttack")
FinalAttack:
      TNT1 A 0 A_SetTranslucent(1)
	  LARU AAAA 5 Bright A_PlaySoundEx("minilegcardi/laugh",2)
      LARU A 0 A_ChangeFlag (INVULNERABLE, 1)
	  LARU A 5 Bright A_faceTarget
	  LARU B 5 Bright A_faceTarget
	  LARU A 5 Bright A_faceTarget
	  LARU B 5 Bright A_faceTarget
	  LARU A 5 Bright A_faceTarget
	  LARU B 5 Bright A_faceTarget
      LARU A 5 BRIGHT A_SpawnItemEx("MiniLegCardiFinalAttack", 0, 0, 100)
	  LARU A 5 Bright A_faceTarget
	  LARU B 5 Bright A_faceTarget
	  LARU A 5 Bright A_faceTarget
	  LARU B 5 Bright A_faceTarget
	  LARU A 5 Bright A_faceTarget
	  LARU B 5 Bright A_faceTarget
      LARU A 5 A_Playsound ("Arcradimus/BFGElectric")
	  LARU A 5 Bright A_faceTarget
	  LARU B 5 Bright A_faceTarget
	  LARU A 5 Bright A_faceTarget
	  LARU B 5 Bright A_faceTarget
	  LARU B 5 Bright A_faceTarget
	  LARU A 5 Bright A_faceTarget
      LARU B 5 A_Playsound ("Arcradimus/BFGElectric")
	  LARU A 5 Bright A_faceTarget
	  LARU A 5 Bright A_faceTarget
	  LARU B 5 Bright A_faceTarget
	  LARU A 5 Bright A_faceTarget
	  LARU B 5 Bright A_faceTarget
	  LARU A 5 Bright A_faceTarget
      LARU B 5 A_Playsound ("Arcradimus/BFGElectric")
	  LARU A 5 Bright A_faceTarget
	  LARU A 5 Bright A_faceTarget
	  LARU B 5 Bright A_faceTarget
	  LARU A 5 Bright A_faceTarget
	  LARU B 5 Bright A_faceTarget
	  LARU A 5 Bright A_faceTarget
      LARU B 5 A_Playsound ("Arcradimus/BFGElectric")
	  LARU A 5 Bright A_faceTarget
	  LARU B 5 Bright A_faceTarget
	  LARU A 5 Bright A_faceTarget
	  LARU A 5 Bright A_faceTarget
	  LARU B 5 Bright A_faceTarget
	  LARU A 5 Bright A_faceTarget
      LARU B 5 A_Playsound ("Arcradimus/BFGElectric")
	  LARU A 5 Bright A_faceTarget
	  LARU A 5 Bright A_faceTarget
	  LARU B 5 Bright A_faceTarget
	  LARU A 5 Bright A_faceTarget
	  LARU B 5 Bright A_faceTarget
	  LARU A 5 Bright A_faceTarget
      LARU B 5 A_Playsound ("Arcradimus/BFGElectric")
	  LARU A 5 Bright A_faceTarget
	  LARU B 5 Bright A_faceTarget
	  LARU A 5 Bright A_faceTarget
	  LARU B 5 Bright A_faceTarget
	  LARU A 5 Bright A_faceTarget
	  LARU B 5 Bright A_faceTarget
      LARU A 5 A_Playsound ("Arcradimus/BFGElectric")
	  LARU B 5 Bright A_faceTarget
	  LARU A 5 Bright A_faceTarget
	  LARU B 5 Bright A_faceTarget
	  LARU A 5 Bright A_faceTarget
	  LARU B 5 Bright A_faceTarget
	  LARU A 5 Bright A_faceTarget
      LARU B 5 A_Playsound ("Arcradimus/BFGElectric")
	  LARU A 5 Bright A_faceTarget
	  LARU B 5 Bright A_faceTarget
	  LARU A 5 Bright A_faceTarget
	  LARU B 5 Bright A_faceTarget
	  LARU A 5 Bright A_faceTarget
	  LARU B 5 Bright A_faceTarget
      LARU A 5 A_Playsound ("Arcradimus/BFGElectric")
	  LARU B 5 Bright A_faceTarget
	  LARU A 5 Bright A_faceTarget
	  LARU B 5 Bright A_faceTarget
	  LARU A 5 Bright A_faceTarget
	  LARU B 5 Bright A_faceTarget
	  LARU A 5 Bright A_faceTarget
      LARU B 5 A_Playsound ("Arcradimus/BFGElectric")
	  LARU A 5 Bright A_faceTarget
	  LARU B 5 Bright A_faceTarget
	  LARU A 5 Bright A_faceTarget
	  LARU B 5 Bright A_faceTarget
	  LARU A 5 Bright A_faceTarget
	  LARU B 5 Bright A_faceTarget
      LARU A 5 A_Playsound ("Arcradimus/BFGElectric")
	  LARU B 5 Bright A_faceTarget
	  LARU A 5 Bright A_faceTarget
	  LARU B 5 Bright A_faceTarget
	  LARU A 5 Bright A_faceTarget
	  LARU B 5 Bright A_faceTarget
	  LARU A 5 Bright A_faceTarget
      LARU B 5 A_Playsound ("Arcradimus/BFGElectric")
	  LARU A 5 Bright A_faceTarget
	  LARU B 5 Bright A_faceTarget
	  LARU A 5 Bright A_faceTarget
	  LARU B 5 Bright A_faceTarget
	  LARU A 5 Bright A_faceTarget
	  LARU B 5 Bright A_faceTarget
      LARD C 2 A_PlaySound ("pcannon/explode")
      LARD C 1 A_ChangeFlag (INVULNERABLE, 0)
      LARD CDDD 2 A_FaceTarget
      LARD C 5 A_CustomMissile ("MiniLegendaryCardinalFinalBall", 100, 0)
	  LARD C 5 Bright A_faceTarget
	  LARD C 5 Bright A_faceTarget
	  LARD C 5 Bright A_faceTarget
	  LARD C 5 Bright A_faceTarget
	  LARD C 5 Bright A_faceTarget
	  LARD C 5 Bright A_faceTarget
	  LARD C 5 Bright A_faceTarget
	  LARD C 5 Bright A_faceTarget
	  LARD C 5 Bright A_faceTarget
	  LARD C 5 Bright A_faceTarget
	  LARD C 5 Bright A_faceTarget
	  LARD C 5 Bright A_faceTarget
	  LARD C 5 Bright A_faceTarget
	  LARD C 5 Bright A_faceTarget
	  LARD C 5 Bright A_faceTarget
	  LARD C 5 Bright A_faceTarget
	  LARD C 5 Bright A_faceTarget
	  LARD C 5 Bright A_faceTarget
	  LARD C 5 Bright A_faceTarget
	  LARD C 5 Bright A_faceTarget
	  LARD C 5 Bright A_faceTarget
	  LARD C 5 Bright A_faceTarget
	  LARD C 5 Bright A_faceTarget
	  LARD C 5 Bright A_faceTarget
      Goto see
   Pain:
	  TNT1 A 0 A_Jump(30,"PainRage")
	  TNT1 A 0 A_Jump(128,"PainMissile")
      LARD E 3 Bright A_Pain
      LARD E 3 Bright
      LARD E 3 Bright
      Goto See
   PainMissile:
      LARD E 3 Bright A_Pain
      LARD E 3 Bright
      LARD E 3 Bright	  
      Goto Missile
   PainRage:
	  TNT1 A 0 A_JumpIfCloser(1000,1)
	  Goto Pain+1 
      LARD E 3 Bright A_Pain
	  TNT1 A 0 Bright A_SetInvulnerable
	  TNT1 A 0 Bright Radius_Quake(10,80,0,24,0)
	  TNT1 A 0 Bright A_GiveInventory("Health",750)
      TNT1 A 0 Bright A_PlaySound("Cardinal/Laugh")	  
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  LARD E 2 Bright A_SpawnItemEx("LegRainCometSpawner",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	  TNT1 A 0 Bright A_UnSetInvulnerable
	  Goto See
   Death: 
      TNT1 A 0 A_ChangeFlag(float,1)
	  TNT1 A 0 A_ChangeFlag(Nogravity,1)
      TNT1 A 0 A_StopSound(6)
	  TNT1 A 0 Radius_Quake(7, 105, 0, 50, 0)
	  TNT1 A 0 A_ChangeFlag(Nogravity,1)
	  TNT1 A 0 A_ChangeFlag(float,1)
	  LARD A 5 Bright A_PlaySound("minilegcardi/death", CHAN_AUTO|CHAN_NOPAUSE, 1.0, False, ATTN_NONE)
	  LARD A 1 A_Fall
      TNT1 A -1 Bright A_KillMaster
      Stop
      } 
}

ACTOR MiniLegendaryCardinalGhost
{
Scale 0.30
RENDERSTYLE Translucent
Alpha 0.75
+NOGRAVITY
+CLIENTSIDEONLY
+DONTSPLASH
+NOINTERACTION
+NOCLIP
+NOTIMEFREEZE
States
{
Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("CheckVanilla") == 1, "Vanilla")
    LARD A 2 A_FadeOut(0.18)
    Loop
  Vanilla:
    TNT1 A 0
	Stop		
    }
}

actor MiniLegCardiFinalAttack
{
  obituary "%o was annihilated."
  radius 0
  height 0
  speed 0
  damage 0
  renderstyle Add
  scale 0.05
  alpha 0.25
  PROJECTILE
  +NOTIMEFREEZE
  states
  {
  Spawn:
    UBAL BDBD 8 bright A_SpawnItemEx("MiniLegendaryUltraBombFluxShockwave",0,0,0,10,0,0,0,0,0)
    goto Death
  Death:
    UBAL A 4 A_SpawnItemEx("MiniLegCardiFinalAttack2")
    stop
  }
}

actor MiniLegCardiFinalAttack2
{
  obituary "%o was annihilated."
  radius 0
  height 0
  speed 0
  damage 0
  renderstyle Add
  scale 0.10
  alpha 0.35
  PROJECTILE
  +NOTIMEFREEZE
  states
  {
  Spawn:
    UBAL BDBD 9 bright A_SpawnItemEx("MiniLegendaryUltraBombFluxShockwave",0,0,0,10,0,0,0,0,0)
    goto Death
  Death:
    UBAL A 4 A_SpawnItemEx("MiniLegCardiFinalAttack3",0,0,0)
    stop
  }
}

actor MiniLegCardiFinalAttack3
{
  obituary "%o was annihilated."
  radius 0
  height 0
  speed 0
  damage 0
  renderstyle Add
  scale 0.15
  alpha 0.45
  PROJECTILE
  +NOTIMEFREEZE
  states
  {
  Spawn:
    UBAL BDBD 9 bright A_SpawnItemEx("MiniLegendaryUltraBombFluxShockwave",0,0,0,10,0,0,0,0,0)
    goto Death
  Death:
    UBAL A 4 A_SpawnItemEx("MiniLegCardiFinalAttack4") 
    stop
  }
}

actor MiniLegCardiFinalAttack4
{
  obituary "%o was annihilated."
  radius 0
  height 0
  speed 0
  damage 0
  renderstyle Add
  scale 0.20
  alpha 0.55
  PROJECTILE
  +NOTIMEFREEZE
  states
  {
  Spawn:
    UBAL BDBD 9 bright A_SpawnItemEx("MiniLegendaryUltraBombFluxShockwave",0,0,0,10,0,0,0,0,0)
    goto Death
  Death:
    UBAL A 4 A_SpawnItemEx("MiniLegCardiFinalAttack5") 
    stop
  }
}

actor MiniLegCardiFinalAttack5
{
  obituary "%o was annihilated."
  radius 0
  height 0
  speed 0
  damage 0
  renderstyle Add
  scale 0.25
  alpha 0.65
  PROJECTILE
  +NOTIMEFREEZE
  states
  {
  Spawn:
    UBAL BDBD 10 bright A_SpawnItemEx("MiniLegendaryUltraBombFluxShockwave",0,0,0,10,0,0,0,0,0)
    goto Death
  Death:
    UBAL A 4 A_SpawnItemEx("MiniLegCardiFinalAttack6") 
    stop
  }
}

actor MiniLegCardiFinalAttack6
{
  obituary "%o was annihilated."
  radius 0
  height 0
  speed 0
  damage 0
  renderstyle Add
  scale 0.30
  alpha 0.75
  deathsound "Gateway/Hell"
  PROJECTILE
  DamageType "Legendary"
  +NOTIMEFREEZE
  states
  {
  Spawn:
    UBAL BDBD 11 bright A_SpawnItemEx("MiniLegendaryUltraBombFluxShockwave",0,0,0,10,0,0,0,0,0)
    goto Death
  Death:
    UBAL A 4 A_SpawnItemEx("MiniLegCardiFinalAttack7")
    stop
  }
}

actor MiniLegCardiFinalAttack7
{
  obituary "%o was annihilated."
  radius 0
  height 0
  speed 0
  damage 0
  renderstyle Add
  scale 0.35
  alpha 0.85
  deathsound "Gateway/Hell"
  PROJECTILE
  DamageType "Legendary"
  +NOTIMEFREEZE
  states
  {
  Spawn:
    UBAL BDBD 11 bright A_SpawnItemEx("MiniLegendaryUltraBombFluxShockwave",0,0,0,10,0,0,0,0,0)
    goto Death
  Death:
    UBAL A 4 A_SpawnItemEx("MiniLegCardiFinalAttack8") 
    stop
  }
}

actor MiniLegCardiFinalAttack8
{
  obituary "%o was annihilated."
  radius 0
  height 0
  speed 0
  damage 0
  renderstyle Add
  scale 0.40
  alpha 0.95
  deathsound "Gateway/Hell"
  PROJECTILE
  DamageType "Legendary"
  +NOTIMEFREEZE
  states
  {
  Spawn:
    UBAL BDBD 12 bright A_SpawnItemEx("MiniLegendaryUltraBombFluxShockwave",0,0,0,10,0,0,0,0,0)
    goto Death
  Death:
    UBAL A 4 A_SpawnItemEx("MiniLegCardiFinalAttack9")
    stop
  }
}

actor MiniLegCardiFinalAttack9
{
  obituary "%o was annihilated."
  radius 0
  height 0
  speed 0
  damage 0
  renderstyle Add
  scale 0.45
  alpha 0.95
  deathsound "Gateway/Hell"
  PROJECTILE
  DamageType "Legendary"
  +NOTIMEFREEZE
  states
  {
  Spawn:
    UBAL BDBD 12 bright A_SpawnItemEx("MiniLegendaryUltraBombFluxShockwave",0,0,0,10,0,0,0,0,0)
    goto Death
  Death:
    UBAL A 4 A_SpawnItemEx("MiniLegCardiFinalAttack10")
    stop
  }
}

actor MiniLegCardiFinalAttack10
{
  obituary "%o was annihilated."
  radius 0
  height 0
  speed 0
  damage 0
  renderstyle Add
  scale 0.47
  Alpha 1.0
  deathsound "Gateway/Hell"
  PROJECTILE
  DamageType "Legendary"
  +NOTIMEFREEZE
  states
  {
  Spawn:
    UBAL B 10 BRIGHT A_SpawnItemEx("MiniLegendaryUltraBombFluxShockwave",0,0,0,10,0,0,0,0,0)
    UBAL BDBDBDBDBDBDBDBDBD 8 bright
    goto Death
  Death:
    UBAL B 4 BRIGHT
    stop
  }
}

ACTOR MiniLegendaryCardinalFinalBall
{
  radius 10
  height 10
  Speed 15
  DamageType "UltimateLegendary"
  Damage 10000000
  Projectile
  RenderStyle Add
  +FORCERADIUSDMG
  +SKYEXPLODE
  +FOILINVUL
  +EXTREMEDEATH
  +RIPPER
  +BLOODLESSIMPACT
  //+DONTBLAST
  -RANDOMIZE
  +NOTIMEFREEZE
  Scale 0.50
  Alpha 1.0
  MissileType "ArcLesserProjectileTrail"
  SeeSound "Arcradimus/BFGFire"
  States
  {
  Spawn:
    // Gold
	TNT1 A 0
	TNT1 A 0 A_Explode(600,192,0,1)
    TNT1 A 0 A_Jump(224, 2)
	TNT1 A 0 A_SpawnItemEx("MiniLegendaryUltraBombFluxShockwave",0,0,0,10,0,0,0,0,0)
    TNT1 A 0 A_Jump(16, 2)
    TNT1 A 0 A_SpawnItemEx("LCABFGTrailParticleGold",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
	UBAL D 1 Bright
    TNT1 A 0 A_SpawnItemEx("LCABFGTrailParticleGold",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
	UBAL D 1 Bright
    // Blue
	//TNT1 A 0 A_PlaySound("Weapons/GuruFly",5,1.0,1)
	TNT1 A 0 A_Explode(600,192,0,1)
    TNT1 A 0 A_Jump(224, 2)
	TNT1 A 0 A_SpawnItemEx("MiniLegendaryUltraBombFluxShockwave",0,0,0,10,0,0,0,0,0)
    TNT1 A 0 A_Jump(16, 2)
    TNT1 A 0 A_SpawnItemEx("LCABFGTrailParticleBlue",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
	UBAL B 1 Bright
    TNT1 A 0 A_SpawnItemEx("LCABFGTrailParticleBlue",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
	UBAL B 1 Bright
    // Gold
	//TNT1 A 0 A_PlaySound("Weapons/GuruFly",5,1.0,1)
	TNT1 A 0 A_Explode(600,192,0,1)
    TNT1 A 0 A_Jump(224, 2)
	TNT1 A 0 A_SpawnItemEx("MiniLegendaryUltraBombFluxShockwave",0,0,0,10,0,0,0,0,0)
    TNT1 A 0 A_Jump(16, 2)
    TNT1 A 0 A_SpawnItemEx("LCABFGTrailParticleGold",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
	UBAL D 1 Bright
    TNT1 A 0 A_SpawnItemEx("LCABFGTrailParticleGold",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
	UBAL D 1 Bright
     // Blue
	//TNT1 A 0 A_PlaySound("Weapons/GuruFly",5,1.0,1)
	TNT1 A 0 A_Explode(600,192,0,1)
    TNT1 A 0 A_Jump(224, 2)
	TNT1 A 0 A_SpawnItemEx("MiniLegendaryUltraBombFluxShockwave",0,0,0,10,0,0,0,0,0)
    TNT1 A 0 A_Jump(16, 2)
    TNT1 A 0 A_SpawnItemEx("LCABFGTrailParticleBlue",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
	UBAL B 1 Bright
    TNT1 A 0 A_SpawnItemEx("LCABFGTrailParticleBlue",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
	UBAL B 1 Bright
    // Gold
	//TNT1 A 0 A_PlaySound("Weapons/GuruFly",5,1.0,1)
	TNT1 A 0 A_Explode(600,192,0,1)
    TNT1 A 0 A_Jump(224, 2)
	TNT1 A 0 A_SpawnItemEx("MiniLegendaryUltraBombFluxShockwave",0,0,0,10,0,0,0,0,0)
    TNT1 A 0 A_Jump(16, 2)
    TNT1 A 0 A_SpawnItemEx("LCABFGTrailParticleGold",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
	UBAL D 1 Bright
    TNT1 A 0 A_SpawnItemEx("LCABFGTrailParticleGold",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
	UBAL D 1 Bright
	Loop
  Death:
	TNT1 A 0
	TNT1 A 0 A_StopSound(5)
	TNT1 A 0 A_SpawnItem("MiniLegendaryNuke")
	TNT1 A 0 A_Explode(10,1,0,1)
	TNT1 A 0 A_BFGSpray("ArcSpray",15,20)
	TNT1 A 0 A_SpawnItemEx("ArcStruckGlowX",0,0,10,0,0,0,0,128,0)
	TNT1 A 0 A_SpawnItemEx("ArcStruckGlowY",0,0,10,0,0,0,0,128,0)
	Stop
  }
}

ACTOR MiniLegendaryUltraBombFluxShockwave : LegendaryUtraBombShockwave
{
  Scale 0.5
  Alpha 1.0
  Projectile
}

Actor MiniLegendaryNuke : CFNuke
{
 PROJECTILE
 ReactionTime 1
 DamageType "Legendary"
 +NOTIMEFREEZE
 States
 {
  Spawn:
   TNT1 AAA 0 A_Countdown
  Death:
   TNT1 A 0
   TNT1 A 0 A_PlaySoundEx("GoodGame/Mate", "Voice", 0, 2)
   TNT1 A 1 A_Explode(7000, 1300, 1)
   TNT1 A 0 Radius_Quake(7, 105, 0, 140, 0)
   TNT1 A 0 A_SpawnItemEx("MiniBlueNukeHyperFlare", 0, 0, 0, 0, 0, 0, 0, 128, 0)
   TNT1 A 25 A_SpawnItemEx("MiniLegNukeHyperFloor", 0, 0, 0, 0, 0, 0, 0, 128, 0)
   //TNT1 AA 0 A_SpawnItemEx("MiniNukeHyperSmokeFloor", 0, 0, 0, 0, 0, 0, 0, 128, 0)
   TNT1 A 0 A_SpawnItemEx("MiniLegNukeHyperPillar", 0, 0, 0, 0, 0, 10, 0, 128, 0)
   TNT1 A 105 A_SpawnItemEx("MiniNukeHyperSmokePillar", 0, 0, 0, 0, 0, 10, 0, 128, 0)
   TNT1 A 0 A_SpawnItemEx("MiniLegNukeHyperMushroom", 0, 0, 1000, 0, 0, 0, 0, 128, 0)
   TNT1 AA 0 A_SpawnItemEx("MiniNukeHyperSmokeMushroom", 0, 0, 1000, 0, 0, 0, 0, 128, 0)
   Stop
 }
}

Actor MiniBlueNukeHyperFlare : CFNukeFire
{
 Scale 3
 +NoInteraction
 States
 {
  Spawn:
   BLUF A 1 Bright A_FadeOut(0.01)
   Wait
 }
}

Actor MiniLegNukeHyperFloor : CFNuke
{
 +ClientSideOnly
 +NoNetID
 +NOTIMEFREEZE
 States
 {
  Spawn:
   TNT1 A 0
   TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("MiniLegNukeHyperFire", 0, 0, 0, 0.00001 * Random(0, 900000), 0.00001 * Random(0, 900000), 0, Random(0, 359), 128, 0)
   Stop
 }
}

Actor MiniLegNukeHyperFire : CFNuke
{
 RenderStyle Add
 +NoInteraction
 +ClientSideOnly
 -ForceYBillBoard
 +NOTIMEFREEZE
 Scale 1
 States
 {
  Spawn:
   TNT1 AA 0 A_Jump(196, "Spawn2", "Spawn3", "Spawn4")
   BFL1 A 1 Bright A_FadeOut(0.015)
   Wait
  Spawn2:
   BFL2 A 1 Bright A_FadeOut(0.015)
   Wait
  Spawn3:
   BFL3 A 1 Bright A_FadeOut(0.015)
   Wait
  Spawn4:
   BFL4 A 1 Bright A_FadeOut(0.015)
   Wait
 }
}

Actor MiniLegNukeHyperPillar : CFNuke
{
 +ClientSideOnly
 +NoNetID
+NOTIMEFREEZE
 States
 {
  Spawn:
   TNT1 A 0
   TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1  A_SpawnItemEx("MiniLegNukeHyperFire", 0, 0, 0, 0.00001 * Random(0, 300000), 0.00001 * Random(0, 300000), 0.00001 * Random(0, -600000), Random(0, 359), 128, 0)
   TNT1 A 0 A_SpawnItem("MiniNukeHyperSmokering", 0, 0, 0)
   TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("MiniLegNukeHyperFire", 0, 0, 0, 0.00001 * Random(0, 300000), 0.00001 * Random(0, 300000), 0.00001 * Random(0, -600000), Random(0, 359), 128, 0)
   Stop
 }
}

Actor MiniNukeHyperSmokering : CFNuke
{
 +ClientSideOnly
 +NoNetID
 States
 {
  Spawn:
   TNT1 A 0
   TNT1 A 0 A_SpawnItemEx("MiniNukeHyperSmoke", 0, 0, 0, 12, 0, 0, 0, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeHyperSmoke", 0, 0, 0, 12, 0, 0, 20, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeHyperSmoke", 0, 0, 0, 12, 0, 0, 40, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeHyperSmoke", 0, 0, 0, 12, 0, 0, 60, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeHyperSmoke", 0, 0, 0, 12, 0, 0, 80, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeHyperSmoke", 0, 0, 0, 12, 0, 0, 100, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeHyperSmoke", 0, 0, 0, 12, 0, 0, 120, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeHyperSmoke", 0, 0, 0, 12, 0, 0, 140, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeHyperSmoke", 0, 0, 0, 12, 0, 0, 160, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeHyperSmoke", 0, 0, 0, 12, 0, 0, 180, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeHyperSmoke", 0, 0, 0, 12, 0, 0, 200, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeHyperSmoke", 0, 0, 0, 12, 0, 0, 220, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeHyperSmoke", 0, 0, 0, 12, 0, 0, 240, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeHyperSmoke", 0, 0, 0, 12, 0, 0, 260, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeHyperSmoke", 0, 0, 0, 12, 0, 0, 280, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeHyperSmoke", 0, 0, 0, 12, 0, 0, 300, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeHyperSmoke", 0, 0, 0, 12, 0, 0, 320, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeHyperSmoke", 0, 0, 0, 12, 0, 0, 340, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeHyperSmoke", 0, 0, 0, 12, 0, 0, 10, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeHyperSmoke", 0, 0, 0, 12, 0, 0, 30, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeHyperSmoke", 0, 0, 0, 12, 0, 0, 50, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeHyperSmoke", 0, 0, 0, 12, 0, 0, 70, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeHyperSmoke", 0, 0, 0, 12, 0, 0, 90, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeHyperSmoke", 0, 0, 0, 12, 0, 0, 110, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeHyperSmoke", 0, 0, 0, 12, 0, 0, 130, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeHyperSmoke", 0, 0, 0, 12, 0, 0, 150, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeHyperSmoke", 0, 0, 0, 12, 0, 0, 170, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeHyperSmoke", 0, 0, 0, 12, 0, 0, 190, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeHyperSmoke", 0, 0, 0, 12, 0, 0, 210, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeHyperSmoke", 0, 0, 0, 12, 0, 0, 230, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeHyperSmoke", 0, 0, 0, 12, 0, 0, 250, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeHyperSmoke", 0, 0, 0, 12, 0, 0, 270, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeHyperSmoke", 0, 0, 0, 12, 0, 0, 290, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeHyperSmoke", 0, 0, 0, 12, 0, 0, 310, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeHyperSmoke", 0, 0, 0, 12, 0, 0, 330, 0, 0)
   TNT1 A 0 A_SpawnItemEx("MiniNukeHyperSmoke", 0, 0, 0, 12, 0, 0, 350, 0, 0)
   Stop
 }
}

Actor MiniNukeHyperSmoke : CFNuke
{
 Scale 1
 +NoInteraction
 +ClientSideOnly
 -ForceYBillBoard
 Alpha 0.5
 States
 {
  Spawn:
   TNT1 AA 0 A_Jump(196, "Spawn2", "Spawn3", "Spawn4")
   SM0K A 5 A_FadeOut(0.015)
   Wait
  Spawn2:
   SM0K B 5 A_FadeOut(0.015)
   Wait
  Spawn3:
   SM0K C 5 A_FadeOut(0.015)
   Wait
  Spawn4:
   SM0K D 5 A_FadeOut(0.015)
   Wait
 }
}

Actor MiniNukeHyperSmokePillar : CFNuke
{
 +ClientSideOnly
 +NoNetID
 States
 {
  Spawn:
   TNT1 A 0
   TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("CheckVanilla") == 1, "Vanilla")
   TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("MiniNukeHyperSmoke", 0, 0, 0, 0.00001 * Random(0, 300000), 0.00001 * Random(0, 300000), 0.00001 * Random(0, -600000), Random(0, 359), 128, 0)
   Stop
  Vanilla:
   TNT1 A 0
   Stop	
 }
}

Actor MiniLegNukeHyperMushroom : CFNuke
{
 +ClientSideOnly
 +NoNetID
+NOTIMEFREEZE
 States
 {
  Spawn:
   TNT1 A 0
   TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("MiniLegNukeHyperFire", 0, 0, 0, 0.00001 * Random(0, 600000), 0.00001 * Random(0, 900000), 0.00001 * Random(-400000, 400000), Random(0, 359), 128, 0)
   Stop
 }
}

Actor MiniNukeHyperSmokeMushroom : CFNuke
{
 +ClientSideOnly
 +NoNetID
 States
 {
  Spawn:
   TNT1 A 0
   TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("MiniNukeHyperSmoke", 0, 0, 0, 0.00001 * Random(0, 600000), 0.00001 * Random(0, 900000), 0.00001 * Random(-400000, 400000), Random(0, 359), 128, 0)
   Stop
 }
}

ACTOR MiniLegCardinalFireSpawner : LegendaryRedParticleSpawner
{
+NOTIMEFREEZE
  States
  {
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_PlaySound("monster/ambientfire3")
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("CheckVanilla") == 1, "Vanilla")
	TNT1 A 0 A_SpawnItemEx("LegCardinalFireEx",random(8,-8),random(4,-4),random(70,80),0,0,random(-4,-6),0,128,0)	
    TNT1 AAAA 0 A_SpawnItemEx("MiniLegCardinalFire",random(18,-18),random(14,-14),random(70,80),0,0,random(-6,-8),0,128,0)
    TNT1 A 1
    Stop
  }
}

ACTOR MiniLegCardinalFire
{
+MISSILE
+DONTSPLASH
+CLIENTSIDEONLY
+NOBLOCKMAP
+NOGRAVITY
+NOTELEPORT
+FORCEXYBILLBOARD
+THRUACTORS
+NOTIMEFREEZE
RenderStyle Add
Scale 0.1
States
{
Spawn:
BMKE ABCDEFGHIJKL 2 Bright A_FadeOut
Stop
}
}

//Smol bastards
Actor LilCaleb //Same excuse as the mini cardinal, I swear!
{
	Health 35
	Speed 12
	Radius 10
	Height 16
	PainChance 30
	Mass 25
	Scale 0.2
	Monster
	-SOLID
	-COUNTKILL
	-CANUSEWALLS
	+FLOORCLIP
	+DONTMORPH
	+NOINFIGHTING
	+MISSILEEVENMORE
	+LOOKALLAROUND
	SeeSound "lilcaleb/sight"
	DeathSound "lilcaleb/die"
	PainSound "lilcaleb/pain"
	ActiveSound "lilcaleb/active"
	tag "Mini Caleb"
	Obituary "%o tried to survive the horde of mini Calebs."
	States
	{
	Spawn:
		CALE G 0 A_JumpIfinventory("LilCalebTaunt",1,2)
		CALE G 10 A_Look
		Loop
		CALE G 0 A_PlaySoundEx("lilcaleb/kill","Voice",0,1)
		CALE G 0 A_TakeInventory("LilCalebTaunt",1)
		Loop
	See:
		CALE G 0 A_GiveInventory("LilCalebTaunt",1)
		CALE AABBCCDDEEFF 3 A_FastChase
		Loop
	Missile:
		CALE G 8 A_FaceTarget(0,0)
		CALE G 0 A_Jump(240,2)
		CALE G 0 A_PlaySoundEx("lilcaleb/laugh",5,0,0)
		CALE G 0 A_PlaySound("lilcaleb/fire")
		"----" A 0 A_CustomMissile("MonsterTracer",4,0,frandom(-1.2,1.2),CMF_OFFSETPITCH,frandom(-(1.2),1.2))
		CALE G 3 Bright A_CustomBulletAttack(1.2,1.2,1,1,"BulletPuff")
		CALE G 6 A_FaceTarget(0,0)
		CALE G 0 A_PlaySound("lilcaleb/fire")
		"----" A 0 A_CustomMissile("MonsterTracer",4,0,frandom(-1.2,1.2),CMF_OFFSETPITCH,frandom(-(1.2),1.2))
		CALE G 3 Bright A_CustomBulletAttack(1.2,1.2,1,1,"BulletPuff")
		CALE G 6 A_FaceTarget
		CALE G 0 A_PlaySound("lilcaleb/reload")
		CALE G 4 A_FaceTarget
		Goto See
	Pain:
		CALE H 3
		CALE H 3 A_Pain
		Goto See
	Death:	
		"####" "#" 0 A_UnsetSolid
		CALE I 5 A_Scream
		CALE J 5 A_Fall
		CALE KLMN 5
		CALE O -1
		Stop
	}
}

Actor LilCalebTaunt : Inventory
{
	Inventory.MaxAmount 1
	Inventory.Amount 1
}

//ho ho ho
Actor Santa //Spoiler alert, he doesn't deliver presents to kids, he actually steals them
{
Health 3000
Radius 24 
Height 64 
Speed 8
Mass 100
PainChance 75
MONSTER 
Scale 1.25
+FLOORCLIP 
+MISSILEMORE
+MISSILEEVENMORE
+QUICKTORETALIATE
+DONTHARMSPECIES
+DROPOFF
+LOOKALLAROUND
-COUNTKILL
-BOSS
Species "Hell"
DamageFactor "Hell", 0.0 
DamageFactor 0.6
MaxStepHeight 384
SeeSound "Santa/See"
PainSound "Santa/Pain"
DeathSound "Santa/Death"
ActiveSound "Santa/Idle"
Obituary "The Santa didn't come to give %o a present but death instead."
Tag "\cgSanta \ccClaus\c-"
States
{
	Spawn:
		TNT1 A 0 NoDelay ACS_NamedExecuteAlways("ModifyMonster",0,2)
		Goto Idle
	Idle:
        SANT A 10 A_Look
        Loop
	See:	
	    SANT A 0 A_JumpIfTargetInLOS("Strafing")
		SANT AABB 2 A_Chase
		TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
		SANT CCDD 2 A_Chase
		TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
		Loop
	Strafing:
		SANT A 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		SANT AABB 3 A_GiveInventory("SpecOpsStrafing",1)
		SANT C 0 A_SpawnItem("FootStep",0,0,0,0)
		TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
        SANT CCDD 3 A_GiveInventory("SpecOpsStrafing",1)
		Goto See
	Missile:
	    SANT E 0
		SANT E 0 A_Jump(128,"Present")
	    SANT E 0 A_PlaySound("Santa/See")
        SANT EE 5 A_GiveInventory("SpecOpsStrafing",1)
        SANT F 0 A_GiveInventory("SpecOpsStrafing",1)
        SANT F 7 Bright A_CustomMissile("SantaStarProjectile",48,0,0)
		SANT E 0 A_CposRefire
		SANT E 0 A_Jump(128,"See")
        SANT EEEEEEEEEEE 3 A_GiveInventory("SpecOpsStrafing",1)		
		Goto Missile+2	
	Present:
		SANT EEEE 5 A_GiveInventory("SpecOpsStrafing",1)
		SANT E 0 A_PlaySound("Santa/Idle")
		SANT F 0 A_GiveInventory("SpecOpsStrafing",1)
		SANT F 7 Bright A_SpawnItemEx("SantaPresent",32,0,0,random(6,12),0,random(3,9))
		SANT EEEE 5 A_GiveInventory("SpecOpsStrafing",1)
		SANT E 0 A_PlaySound("Santa/Idle")
		SANT F 0 A_GiveInventory("SpecOpsStrafing",1)
		SANT F 7 Bright A_SpawnItemEx("SantaPresent",32,0,0,random(6,12),0,random(3,9))
		SANT EEEE 5 A_GiveInventory("SpecOpsStrafing",1)
		SANT E 0 A_PlaySound("Santa/Idle")
		SANT F 0 A_GiveInventory("SpecOpsStrafing",1)
		SANT F 7 Bright A_SpawnItemEx("SantaPresent",32,0,0,random(6,12),0,random(3,9))
		Goto See
	Pain:
		SANT H 2 A_GiveInventory("SpecOpsStrafing",1)
		TNT1 A 0 A_SpawnItemEx("RandomMegaPresentSpawner",0,0,1,random(1,8),0,random(8,15),random(0,360),0,192)
        SANT H 2 A_Pain 
        Goto Missile
	Death:
        SANT H 5
        SANT I 5 A_Scream
        SANT J 5 A_Fall
		SANT KLM 5 A_SpawnItemEx("GibbedGenerator",0,0,0,0,0,0,0,128,0)
		TNT1 AAAAAAA 0 A_SpawnItemEx("RandomMegaPresentSpawner",0,0,1,random(1,8),0,random(8,15),random(0,360),0,64)
		SANT N 2100 A_SpawnItemEx("GibbedGenerator",0,0,0,0,0,0,0,128,0)
        Stop
	}
}

Actor SantaStarProjectile
{
Projectile
+SKYEXPLODE
+SEEKERMISSILE
Damage 50
Speed 16
Height 5
Radius 5
Scale 0.5
Renderstyle Translucent
DeathSound "StarHit"
DamageType "Hell"
Alpha 1.0
States
{
  Spawn:
	STAL B 1 Bright A_SpawnItemEx("StarDrop1", 0, 0, 0, random(5,15), random(5,15), random(-15,15), random(0,360))
	STAL B 0 A_SpawnItemEx("StarDrop2", 0, 0, 0, random(5,15), random(5,15), random(-15,15), random(0,360))
	STAL B 0 A_Explode(12,222,0)
	Loop
  Death:
	TNT1 A 0 A_SpawnItem("StarExplode")
	TNT1 A 0 A_PlaySound("StarHit")
	TNT1 A 0 A_Explode(5,150,0)
	TNT1 A 1 A_SpawnItemEx("StarDrop1", random(-3,3), random(-3,3), random(-3,3), random(5,15), random(5,15), random(-15,15), random(0,360))
	TNT1 A 1 A_SpawnItemEx("StarDrop2", random(-3,3), random(-3,3), random(-3,3), random(5,15), random(5,15), random(-15,15), random(0,360))
	TNT1 A 0 A_FadeOut(0.1)
	Goto Death+1
	}
}


Actor StarExplode
{
+CLIENTSIDEONLY
+NOINTERACTION
-SOLID
+NOGRAVITY
Radius 1
Height 1
Alpha 0.9
Translation "176:191=160:167"
Renderstyle Translucent
States
{
  Spawn:
	MISL BCDE 10 Bright
	Stop
}
}

Actor StarDrop1
{
Projectile
Height 3
Radius 3
Damage 0
Speed 8
-NOGRAVITY
+DOOMBOUNCE
+CLIENTSIDEONLY
BounceCount 5
BounceFactor 0.5
SeeSound "StarTwinkle"
Scale 0.3
Renderstyle Translucent
Alpha 1.0
States
{
  Spawn:
	TNT1 A 2
	STAL B 1 bright A_FadeOut(0.08)
	Goto Spawn+1
}
}

Actor StarDrop2 : StarDrop1
{
States
{
  Spawn:
	TNT1 A 2
	STAL C 1 bright A_FadeOut(0.08)
	Goto Spawn+1
}
}

Actor SantaPresent
{
Projectile
-NOGRAVITY
+HEXENBOUNCE
Gravity 0.66
DamageType "Hell"
Damage 20
Radius 6
Height 12
ReactionTime 525
BounceCount 999
RenderStyle Translucent
Alpha 1.0
States
{
  Spawn:
    PR3S A 1 A_CountDown    
    Loop
  Death:
	PR3S A 0 A_PlaySound("Santa/See", CHAN_VOICE)
	PR3S ABCD 2
	PR3S D 0 A_Explode(128, 128, 0)
	PR3S D 0 A_PlaySound("PresentExplode", CHAN_WEAPON)
	PR3S D 0 A_SpawnItemEx("SantaPresentDamage", 0, 0, 0, 0, 0, 20, 0)
	PR3S DDDDDDDDDDDDDDD 0 A_SpawnItemEx("HollyThrownFromPresent", 0, 0, 16, random(-8,8), random(-8,8), random(3,9))
	PR3S EEEEEEEEEEEEEEEEEEE 1 A_SpawnItemEx("StarDrop1", 0, 0, 0, random(-5,5), random(-5,5), random(10,20))
	PR3S E 1000
	Stop
}
}

Actor HollyThrownfromPresent
{
Projectile
+RIPPER
Height 5
Radius 5
Speed 50
Scale 0.5
SeeSound "HollyThrow"
+BLOODLESSIMPACT
Damage (64)
DamageType "Hell"
States
{
  Spawn:
	HOLL OPOP 2
	HOLL O 2 A_ChangeFlag("NOGRAVITY",0)
	Loop
  Death:
	HOLL O 0 A_SpawnItemEx("Holly",0,0,0,0,0,-1)
	Stop
}
}

Actor Holly
{
Projectile
-NOGRAVITY
Speed 10
Height 5
Radius 5
Scale 0.5
Damage (64)
DamageType "Hell"
+BLOODLESSIMPACT
+RIPPER
States
{
  Spawn:
	HOLL C 0 A_GiveInventory("Clip",1)
	HOLL C 0 A_JumpIfInventory("Clip",100,"Death2")
	HOLL C 1
	Loop
  Death:
	HOLL C 0 A_PlaySound("HollyLand")
	HOLL C 0 A_CustomMissile("HollySpike", 0, 0, 0, 0)
	Stop
  Death2:
	HOLL C 1
	Stop
	}
}

Actor HollySpike
{
Speed 0
Projectile
+NOCLIP
DamageType "Hell"
Damage (random(24,68))
Radius 5
Scale 0.5
Height 5
-NOGRAVITY
+DONTBLAST
+THRUGHOST
DeathSound "HollyHit"
ReactionTime 525
States
{
  Spawn:
	HOLL C 20
	HOLL C 0 A_ChangeFlag("NOCLIP",0)
	HOLL C 0 A_PlaySound("HollySpike")
	HOLL D 1 A_CountDown
	Goto Spawn+3
  Death:
	HOLL D 1
	Stop
	}
}

Actor SantaPresentDamage
{
Projectile
+NODAMAGETHRUST
-NOBLOCKMAP
DamageType "Hell"
Radius 4
Height 4
Damage 0
States
{
  Spawn:
	TNT1 A 2 A_Explode(5,158,0)
	Loop
}
}