
/*
================================================================================
	Crusader Queen
“The former praetorian guard of the little goddess. Grafted onto a hover chariot
and pulled by two mechanical horses, the Crusader Queen is able charge at her 
opponent at speeds faster than sound and will counter any painful attack with 
a stream of orbiter bullets. If her horses are destroyed, the Crusader Queen 
will flip her chariot upside down, gaining the ability to fly, but be reduced to
only using her arm cannon. They are only a finite number of Crusader Queens left
in existence, so they are exceedingly rare.”
================================================================================
*/

ACTOR Crusader_Queen replaces SpiderMastermind
{
  Health 2500
  Radius 40
  Height 100
  Mass 1000
  Speed 18
  Damage 8
  PainChance 40
  Monster
  Species "Queenn"
  Tag "Crusader Queen"
  +BOSS
  +MISSILEMORE
  +QUICKTORETALIATE
  +FLOORCLIP
  +DONTMORPH
  +DONTRIP
  +NOICEDEATH
  +SLIDESONWALLS
  +DONTHARMSPECIES
  +NOTIMEFREEZE
  +NOBLOOD
  DamageFactor "Judgement", 0
  DamageFactor "UndeadGoHomeImpact", 0
  DamageFactor "Holy", 0
  DamageFactor "lightning", 0.5
  DamageFactor "Ice", 0.5
  DamageFactor "Fire", 0.5
  DamageFactor "Poison", 0
  DamageFactor "PoisonCloud", 0
  DamageFactor "FireMagic", 0
  DamageFactor "KissMagic", 5
  DamageFactor "RainbowRip", 0
  DamageFactor "DashDamage", 0
  DamageFactor "Crush", 0
  DamageFactor "Massacre", 0
  DamageFactor "GoldenGooseDamage", 0
  DamageFactor "TsundereDamage", 0.01
  DamageFactor "TouhouAllyDamage", 0.5 //Untitled's Touhou Doom Allies
  DamageFactor "Susiestoughlove", 0.5 //Veronica's Susie
  DamageFactor "RALSEISWARMLOVE", 0.5 //Veronica's Ralsei
  DamageFactor "ISABELLESROMANTICLOVE", 0.5 //Veronica's Isabelle
  DamageFactor "CloneDamage", 0.5 //Skelgant's Gholazon
  DamageFactor "CordieDamage", 0.5 // Bimmy's Cordie
  DamageFactor "VivianDamage", 0.5 // Bimmy's Vivian
  DamageFactor "FriesDamage", 0.5 // Skelegant's Frylock
  DamageFactor "MeatlingDamage", 0.5 // Skelegant's Meatling (Gholazon X)
  PainChance "BurningAngelDamage", 0
  DamageFactor "BurningAngelDamage", 0
  DamageFactor "DRadysAllyDamage", 0.5 //Untitled's D-Radys Class Helpers (orig. by Toasty)
  DamageFactor "ISPrisonerDamage", 0.5 //Hyakutaro Ichimonji mod for Melodica's Iro
  SeeSound "crusaderqueen/sight"
  AttackSound "crusaderqueen/missile2"
  PainSound "crusaderqueen/pain"
  DeathSound "crusaderqueen/death"
  ActiveSound "crusaderqueen/active"
  Obituary "%o was mowed down by a Crusader Queen."
	
	var int user_haloactive;
	
  States
  {
  Spawn:
	CQUN A 0 // Blank frame with the angel's sprite, in case a map or script makes them dormant, or for mods like Corruption Cards.
	TNT1 A 0 A_JumpIf (user_haloactive == 1, "SpawnLoop") // Makes sure the halo is only spawned once.
    TNT1 A 0 A_SetUserVar (user_haloactive, 1)
	TNT1 A 0 A_SpawnItemEx ("CQueenHalo", 0,0,90, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_SETMASTER)
	Goto SpawnLoop
  SpawnLoop:
    CQUN ABCD 10 A_Look
	TNT1 A 0 A_PlaySound ("Crusaderqueen/move1")
    Loop
  See:
	TNT1 A 0 A_Changeflag("NOPAIN",FALSE)
	CQUN A 2 A_Chase
	TNT1 A 0 A_PlaySound ("Crusaderqueen/move1")
	CQUN BCD 2 A_Chase
	TNT1 A 0 A_PlaySound ("Crusaderqueen/move1")
	CQUN ABCD 2 A_Chase
    Loop	
  Missile:
    CQUN E 6 Bright A_FaceTarget
	TNT1 A 0 A_Jumpifcloser(700,"DeathCharge")
	TNT1 A 0 A_Jump (128,"Cannon")
	TNT1 A 0 Bright A_PlaySound ("Crusaderqueen/bullet")
	TNT1 A 0 A_ChangeVelocity(0, 10, 0, CVF_RELATIVE | CVF_REPLACE )
	CQUN F 2 Bright A_FaceTarget
	TNT1 A 0 A_CustomMissile ("BlueOrbitBullet",68,23,1)
	TNT1 A 0 A_CustomMissile ("RedOrbitBullet",68,-23,1)
	CQUN G 2 Bright A_FaceTarget
	TNT1 A 0 A_CustomMissile ("BlueOrbitBullet",68,23,1)
	TNT1 A 0 A_CustomMissile ("RedOrbitBullet",68,-23,1)
	TNT1 A 0 A_ChangeVelocity(0, -20, 0, CVF_RELATIVE | CVF_REPLACE )
	CQUN H 2 Bright A_FaceTarget
	TNT1 A 0 A_CustomMissile ("BlueOrbitBullet",68,23,1)
	TNT1 A 0 A_CustomMissile ("RedOrbitBullet",68,-23,1)
	CQUN I 2 Bright A_FaceTarget
	TNT1 A 0 A_CustomMissile ("BlueOrbitBullet",68,23,1)
	TNT1 A 0 A_CustomMissile ("RedOrbitBullet",68,-23,1)
	CQUN F 2 Bright A_FaceTarget
	TNT1 A 0 A_CustomMissile ("BlueOrbitBullet",68,23,1)
	TNT1 A 0 A_CustomMissile ("RedOrbitBullet",68,-23,1)
	CQUN G 2 Bright A_FaceTarget
	TNT1 A 0 A_CustomMissile ("BlueOrbitBullet",68,23,1)
	TNT1 A 0 A_CustomMissile ("RedOrbitBullet",68,-23,1)
	TNT1 A 0 A_ChangeVelocity(0, -10, 0, CVF_RELATIVE | CVF_REPLACE )
	CQUN H 2 Bright A_FaceTarget
	TNT1 A 0 A_CustomMissile ("BlueOrbitBullet",68,23,1)
	TNT1 A 0 A_CustomMissile ("RedOrbitBullet",68,-23,1)
	CQUN I 2 Bright A_FaceTarget
	TNT1 A 0 A_CustomMissile ("BlueOrbitBullet",68,23,1)
	TNT1 A 0 A_CustomMissile ("RedOrbitBullet",68,-23,1)
	TNT1 A 0 A_Jumpifcloser(500,"DeathCharge")
    Goto See
	Cannon:
	CQUN L 3 A_FaceTarget 
	CQUN MN 3
	TNT1 A 0 A_FaceTarget
	CQUN O 3 Bright A_CustomMissile ("SuperBlueOrbitBullet",59,0,1)
	CQUN MN 3
	TNT1 A 0 A_FaceTarget
	CQUN O 3 Bright A_CustomMissile ("SuperRedOrbitBullet",59,0,1)
	CQUN MN 3
	TNT1 A 0 A_FaceTarget
	CQUN O 3 Bright A_CustomMissile ("SuperBlueOrbitBullet",59,0,1)
	Goto See
	
	// DeathCharge code from Combined_Arms by Combine_Kegan, heavily modified. 
	
  DeathCharge:
	TNT1 A 0
	TNT1 A 0 A_Changeflag("NOPAIN",TRUE)
	TNT1 A 0 A_Playsound ("crusaderqueen/warning")
	CQUN J 5
	CQUN K 5
	CQUN J 5
	CQUN K 3
	CQUN J 3 
	CQUN K 3 
	CQUN J 2 
	CQUN K 2
	CQUN J 2
	TNT1 A 0 A_Playsound ("crusaderqueen/missile2")
  Goto DeathChargeLoop 
  DeathChargeLoop:
	TNT1 A 0 A_ChangeVelocity(Cos(Pitch)*10,0,Sin(Pitch)*-8,1)
	TNT1 A 0 A_Giveinventory ("DeathChargeTimer",1)
	TNT1 A 0 A_Jumpifinventory ("DeathChargeTimer",20,"EndDeathCharge")
	CQUN JK 1 Bright A_CustomMissile ("QueenRam")
  Loop
  EndDeathCharge:
	TNT1 A 0
	TNT1 A 0 A_Stop
	TNT1 A 0 A_ChangeVelocity(Cos(Pitch)*3,0,Sin(Pitch)*-2,1)
	TNT1 A 0 A_Takeinventory ("DeathChargeTimer", 99)
	TNT1 A 0 A_Changeflag("NOPAIN",FALSE)
	CQUN J 2
	CQUN K 2
	CQUN J 2
	Goto See
  Pain:
    CQUN P 6
    CQUN P 2 A_Pain
	TNT1 A 0 A_SpawnItemEx("WhiteFeather",random(-20,20),random(-20,20),50,random(-5,5),random(-5,5),random(-5,5))
	TNT1 A 0 A_SpawnItemEx("WhiteFeather",random(-20,20),random(-20,20),50,random(-5,5),random(-5,5),random(-5,5))
	TNT1 A 0 A_Jump(128,"Reversefire")
	TNT1 A 0 A_FaceTarget
	CQUN F 2 Bright 
	TNT1 A 0 A_ChangeVelocity(0, 10, 0, CVF_RELATIVE | CVF_REPLACE )
	TNT1 A 0 A_CustomMissile ("BlueOrbitBullet",68, 23,1)
	TNT1 A 0 A_CustomMissile ("RedOrbitBullet",68,-23,1)
	TNT1 A 0 A_FaceTarget
	CQUN G 2 Bright 
	TNT1 A 0 A_CustomMissile ("BlueOrbitBullet",68,23,1)
	TNT1 A 0 A_CustomMissile ("RedOrbitBullet",68,-23,1)
	TNT1 A 0 A_FaceTarget
	CQUN H 2 Bright 
	TNT1 A 0 A_CustomMissile ("BlueOrbitBullet",68,23,1)
	TNT1 A 0 A_CustomMissile ("RedOrbitBullet",68,-23,1)
	TNT1 A 0 A_ChangeVelocity(0, -20, 0, CVF_RELATIVE | CVF_REPLACE )
	TNT1 A 0 A_FaceTarget
	CQUN I 2 Bright 
	TNT1 A 0 A_CustomMissile ("BlueOrbitBullet",68,23,1)
	TNT1 A 0 A_CustomMissile ("RedOrbitBullet",68,-23,1)
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_Jumpifcloser(500,"DeathCharge")
    Goto See
  ReverseFire:
	TNT1 A 0 A_FaceTarget
	CQUN F 2 Bright 
	TNT1 A 0 A_ChangeVelocity(0, -10, 0, CVF_RELATIVE | CVF_REPLACE )
	TNT1 A 0 A_CustomMissile ("BlueOrbitBullet",68, 23,1)
	TNT1 A 0 A_CustomMissile ("RedOrbitBullet",68,-23,1)
	TNT1 A 0 A_FaceTarget
	CQUN G 2 Bright 
	TNT1 A 0 A_CustomMissile ("BlueOrbitBullet",68,23,1)
	TNT1 A 0 A_CustomMissile ("RedOrbitBullet",68,-23,1)
	TNT1 A 0 A_FaceTarget
	CQUN H 2 Bright 
	TNT1 A 0 A_CustomMissile ("BlueOrbitBullet",68,23,1)
	TNT1 A 0 A_CustomMissile ("RedOrbitBullet",68,-23,1)
	TNT1 A 0 A_ChangeVelocity(0, 20, 0, CVF_RELATIVE | CVF_REPLACE )
	TNT1 A 0 A_FaceTarget
	CQUN I 2 Bright 
	TNT1 A 0 A_CustomMissile ("BlueOrbitBullet",68,23,1)
	TNT1 A 0 A_CustomMissile ("RedOrbitBullet",68,-23,1)
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_ChangeVelocity(0, 10, 0, CVF_RELATIVE | CVF_REPLACE )
	TNT1 A 0 A_Jumpifcloser(500,"DeathCharge")
    Goto See
  Death:
	TNT1 A 0
	CQUN Q 1 A_SpawnItemEx("PCCrusader_QueenPhase2",-30,0,0, 0, 0,0,0, SXF_NOCHECKPOSITION )
	TNT1 A 0 A_SpawnItemEx("Horseexplode",10,0,0, 0, 0,0,0, SXF_NOCHECKPOSITION )
	TNT1 A -1 A_BossDeath
    Stop
  
  }
}

Actor QueenRam
{
	Projectile
	Speed 25
	Damage 8
	Obituary "%o was mowed down by a Crusader Queen"
	Height 100
	Radius 64
	+BLOODSPLATTER
	+THRUSPECIES
	+DONTBLAST
	+FORCEPAIN
	+BOUNCEONFLOORS 
	+EXTREMEDEATH
	Mass 1000000
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(floorz == z, "break")
		TNT1 A 0 A_JumpIf(ceilingz == z, "break")
		TNT1 A 0 A_JumpIf(floorz == z, "break")
		TNT1 A 0 A_JumpIf(ceilingz == z, "break")
		TNT1 A 1 A_JumpIf(floorz == z, "break")
		TNT1 A 0 A_JumpIf(floorz == z, "break")
		TNT1 A 0 A_JumpIf(ceilingz == z, "break")
		stop
	Break:
		TNT1 A 0 A_stop
		stop
	Death:
		TNT1 A 0
		TNT1 A 1
		TNT1 A 0 a_stop
		TNT1 A 0 radius_quake (4,3,0,10,0)
		stop
	Xdeath:
		TNT1 A 0
		TNT1 A 1
		TNT1 A 0 a_stop
		TNT1 A 0 radius_quake (4,3,0,10,5)
		TNT1 A 4
		stop
	}
}

Actor DeathChargeTimer : Inventory
{inventory.maxamount 20}

ACTOR HorseExplode
{
  Health 5
  Radius 40
  Height 100
  Mass 1000
  Speed 14
  PainChance 20
  Monster
  Species "Queenn"
  Tag "Horsey"
  +FLOORCLIP
  +NORADIUSDMG
  +DONTMORPH
  +DONTRIP
  +NOICEDEATH
  +DONTHARMSPECIES
  +NOCLIP
  +NEVERTARGET
  +NOBLOOD
  -COUNTKILL
  DamageFactor "FireMagic", 0
  DamageFactor "RainbowRip", 0
  Obituary "%o was caught in an explosion."
  DropItem "ClipBox" 256
  DropItem "ClipBox" 256
  DropItem "ClipBox" 256
  DropItem "ClipBox" 256

  States
  {
  Spawn:
	TNT1 A 0
	Goto Still
  Still:
	CQ22 A 10
	Loop
  Death:
    TNT1 A 0 A_Playsound ("crusaderqueen/timer1")
    CQ22 A 10 
	CQ22 B 5 Bright
	CQ22 A 10 
	CQ22 B 5 Bright
	CQ22 A 10 
	CQ22 B 5 Bright
	CQ22 A 5 
	CQ22 B 2 Bright
	TNT1 A 0 A_Playsound ("crusaderqueen/timer2")
	CQ22 A 3 
	CQ22 B 1 Bright
	CQ22 A 3 
	CQ22 B 1 Bright
	CQ22 A 3 
	CQ22 B 1 Bright
	CQ22 A 3 
	CQ22 B 1 Bright
	CQ22 A 3 
	CQ22 B 1 Bright
	CQ22 A 3 
	CQ22 B 1 Bright
	CQ22 A 1 
	CQ22 B 1 Bright
	CQ22 A 3 
	CQ22 B 1 Bright
	TNT1 A 0 A_Playsound ("crusaderqueen/explode")
	TNT1 A 0 Bright A_CustomMissile ("SuperBlueOrbitBullet",12,0,45, CMF_AIMDIRECTION)
	TNT1 A 0 Bright A_CustomMissile ("SuperBlueOrbitBullet",38,0,-45, CMF_AIMDIRECTION)
	TNT1 A 0 Bright A_CustomMissile ("SuperRedOrbitBullet",38,0,90, CMF_AIMDIRECTION)
	TNT1 A 0 Bright A_CustomMissile ("SuperRedOrbitBullet",38,0,-90, CMF_AIMDIRECTION)
	TNT1 A 0 Bright A_CustomMissile ("SuperBlueOrbitBullet",38,0,135, CMF_AIMDIRECTION)
	TNT1 A 0 Bright A_CustomMissile ("SuperBlueOrbitBullet",38,0,-135, CMF_AIMDIRECTION)
	TNT1 A 0 Bright A_CustomMissile ("SuperRedOrbitBullet",38,0,180, CMF_AIMDIRECTION)
	TNT1 A 0 Bright A_CustomMissile ("SuperRedOrbitBullet",38,0,0, CMF_AIMDIRECTION)
	TNT1 A 0 A_Explode( 600,512 )
	CQ22 CDEFG 3 Bright
	CQ22 H 3 A_NoBlocking
	CQ22 I -1
    Stop
  }
}
  
ACTOR Crusader_QueenPhase2
{
  Health 800
  Radius 24
  Height 96
  Mass 100
  Speed 10
  Fastspeed 20
  PainChance 35
  Tag "Crusader Queen"
  Species "Queenn"
  Monster
  +BOSS
  +FLOAT
  +NOGRAVITY
  +FLOORCLIP
  +BOSSDEATH
  +DONTMORPH
  +BLOODSPLATTER
  +ALLOWPARTICLES
  +DONTRIP
  +DONTHARMSPECIES
  +MISSILEMORE
  +NOPAIN
  +NOBLOOD
  +INVULNERABLE
  DamageFactor "FireMagic", 0
  DamageFactor "RainbowRip", 0
  DamageFactor "UndeadGoHomeImpact", 0
  DamageFactor "Judgement", 0
  DamageFactor "Holy", 0
  DamageFactor "KissMagic", 5
  SeeSound "crusaderqueen/sight"
  AttackSound "crusaderqueen/missile2"
  PainSound "crusaderqueen/pain"
  DeathSound "crusaderqueen/death"
  ActiveSound "crusaderqueen/active"
  Obituary "%o was blasted by a Crusader Queen."
    DropItem "AngelArmorSpawner", 256
	DropItem "AngelArmorSpawner", 256
	DropItem "AngelArmorSpawner", 256
	DropItem "AngelArmorSpawner", 256
    DropItem "AngelArmorSpawner", 256
	DropItem "AngelArmorSpawner", 256
  	DropItem "AngelArmorSpawner", 256
	DropItem "AngelArmorSpawner", 128
	DropItem "AngelArmorSpawner", 128
	DropItem "AngelArmorSpawner", 128
	DropItem "SoulSphere", 8
	
	var int user_haloactive;
		
  States
  {
  Spawn:
  	CQ2N A 0 // Blank frame with the angel's sprite, in case a map or script makes them dormant, or for mods like Corruption Cards.
	TNT1 A 0 A_JumpIf (user_haloactive == 1, "SpawnLoop") // Makes sure the halo is only spawned once.
	CQUN QR 10 A_ChangeVelocity(0,0,5, CVF_RELATIVE | CVF_REPLACE)
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_Playsound ("crusaderqueen/detach")
	CQUN ST 7 A_ChangeVelocity(0,0,10, CVF_RELATIVE | CVF_REPLACE)
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_SpawnItemEx ("CrusaderQueenLance", 0,150,0, 0,2,2, 0, SXF_ABSOLUTEPOSITION | SXF_ABSOLUTEANGLE)
	TNT1 A 0 A_FaceTarget
	CQUN UV 5 A_ChangeVelocity(0,0,15, CVF_RELATIVE | CVF_REPLACE)
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_SetUserVar (user_haloactive, 1)
	TNT1 A 0 A_SpawnItemEx ("CQueen2Halo", 0,0,-10, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_SETMASTER)
	TNT1 A 0 A_Changeflag("INVULNERABLE",FALSE)
	TNT1 A 0 A_Changeflag("NOPAIN",FALSE)
	CQUN V 10 A_ChangeVelocity(0,0,15, CVF_RELATIVE | CVF_REPLACE)
	TNT1 A 0 A_Stop
	Goto SpawnLoop
  SpawnLoop:
	TNT1 A 0 A_Changeflag("INVULNERABLE",FALSE)
	CQ2N ABCD 3 A_Look
	Loop
  See:
    CQ2N AB 2 A_FastChase
	TNT1 A 0 A_PlaySound ("crusaderqueen/move3")
	CQ2N CD 2 A_FastChase
	TNT1 A 0 A_PlaySound ("crusaderqueen/move3")
	CQ2N AB 2 A_Chase
	TNT1 A 0 A_PlaySound ("crusaderqueen/move3")
	CQ2N CD 2 A_Chase
	TNT1 A 0 A_PlaySound ("crusaderqueen/move3")
    Loop
  Missile:
	CQ2N E 3 A_FaceTarget 
	CQ2N F 3
    CQ2N G 3 
	TNT1 A 0 A_Jump (86, "Altbullet")
	CQ2N H 3 Bright A_CustomMissile ("SuperBlueOrbitBullet",52,6,1)
	Goto See
  Altbullet:
	CQ2N H 3 Bright A_CustomMissile ("SuperRedOrbitBullet",52,6,1)
	Goto See
  Pain:
    CQ2N I 2 A_Pain
	CQ2N I 10 A_ChangeVelocity(0,0,15, CVF_RELATIVE | CVF_REPLACE)
    CQ2N ABCDABCD 2 A_FastChase
	TNT1 A 0 A_Stop
    Goto See
  Death:
	TNT1 A 0 A_ChangeVelocity(0,0,-1, CVF_RELATIVE | CVF_REPLACE)
	TNT1 A 0 A_SetUserVar (user_haloactive, 0)
    CQ2N J -1 A_PlaySound ("crusaderqueen/spark")
	Wait
  Crash:
    CQ2N K 12 A_NoBlocking
	TNT1 AAAA 0 A_SpawnItemEx("WhiteFeather",random(-20,20),random(-20,20),20,random(-5,5),random(-5,5),random(-5,5))
	TNT1 AAA 0 A_SpawnItemEx("WhiteFeather",random(-20,20),random(-20,20),20,random(-5,5),random(-5,5),random(-5,5))
	TNT1 AA 0 A_SpawnItemEx("WhiteFeather",random(-20,20),random(-20,20),30,random(-5,5),random(-5,5),random(-5,5))
	TNT1 AAAAA 0 A_SpawnItemEx("WhiteFeather",random(-20,20),random(-20,20),30,random(-5,5),random(-5,5),random(-5,5))
	CQ2N LM 12 
	CQ2N N 12 A_PlaySound ("crusaderqueen/pain1",7,1)
	CQ2N O 12
	CQ2N N 12 A_PlaySound ("crusaderqueen/pain1",7,1)
	CQ2N O 12
	CQ2N N 12 A_PlaySound ("crusaderqueen/pain1",7,1)
	CQ2N O 12
	CQ2N N 12 A_PlaySound ("crusaderqueen/pain1",7,1)
	CQ2N O 12
	CQ2N P 12
	CQ2N Q 6 A_PlaySound ("egg/death1")
	CQ2N RSTUV 4
	CQ2N W -1 A_BossDeath
    Stop
  Raise:
	Stop
  }
}

ACTOR PCCrusader_QueenPhase2 : Crusader_QueenPhase2
{
		
  States
  {
  Death:
	TNT1 A 0 A_ChangeVelocity(0,0,-1, CVF_RELATIVE | CVF_REPLACE)
	TNT1 A 0 A_SetUserVar (user_haloactive, 0)
    CQ2N J -1 A_PlaySound ("crusaderqueen/spark")
	Wait
  Crash:
	TNT1 A 0
    TNT1 A 0 A_NoBlocking
	TNT1 AAAAAAAA 0 A_SpawnItemEx ("AviaryIceSpawner3") 
	TNT1 AAAA 0 A_SpawnItemEx("WhiteFeather",random(-20,20),random(-20,20),20,random(-5,5),random(-5,5),random(-5,5))
	TNT1 AAA 0 A_SpawnItemEx("WhiteFeather",random(-20,20),random(-20,20),20,random(-5,5),random(-5,5),random(-5,5))
	TNT1 AA 0 A_SpawnItemEx("WhiteFeather",random(-20,20),random(-20,20),30,random(-5,5),random(-5,5),random(-5,5))
	TNT1 AAAAA 0 A_SpawnItemEx("WhiteFeather",random(-20,20),random(-20,20),30,random(-5,5),random(-5,5),random(-5,5))
	TNT1 A 0 A_BossDeath
    Stop
  Raise:
	Stop
  }
}

ACTOR QuietCrusader_Queen : Crusader_Queen
{
  Tag "Crusader Queen"
  SeeSound "crusaderqueen/timer1"
  DeathSound "seraph/attack4"
  PainSound "crusaderqueen/atomhit"
  ActiveSound "angel/blink"
  States
  {
    Death:
	TNT1 A 0 A_SetUserVar (user_haloactive, 0)
    CQUN Q 1 A_NoBlocking
	CQUN Q 1 A_Scream
	CQUN Q 1 A_SpawnItemEx("QuietCrusader_QueenPhase2",-30,0,0, 0, 0,0,0, SXF_NOCHECKPOSITION )
	TNT1 A 0 A_SpawnItemEx("Horseexplode",10,0,0, 0, 0,0,0, SXF_NOCHECKPOSITION )
    TNT1 A -1 A_BossDeath
    Stop
  }
}
  
ACTOR QuietCrusader_QueenPhase2 : Crusader_QueenPhase2
{
  Tag "Crusader Queen"
  SeeSound "crusaderqueen/timer1"
  AttackSound "crusaderqueen/missile2"
  PainSound "crusaderqueen/atomhit"
  DeathSound "crusaderqueen/death"
  ActiveSound "angel/blink"
}

ACTOR Queen01Cast : Crusader_Queen
{
  States
	{
  See:
	CQUN AABBCCDD 2 A_Chase
    Loop	
  Missile:
    CQUN E 6 Bright A_FaceTarget
	CQUN FGHIFGHI 2 Bright A_FaceTarget
    Goto See
  Death:
    CQ22 A 10 
	CQ22 B 5 Bright
	CQ22 A 10 
	CQ22 B 5 Bright
	CQ22 A 10 
	CQ22 B 5 Bright
	CQ22 A 5 
	CQ22 B 2 Bright
	CQ22 A 3 
	CQ22 B 1 Bright
	CQ22 A 3 
	CQ22 B 1 Bright
	CQ22 A 3 
	CQ22 B 1 Bright
	CQ22 A 3 
	CQ22 B 1 Bright
	CQ22 A 3 
	CQ22 B 1 Bright
	CQ22 A 3 
	CQ22 B 1 Bright
	CQ22 A 1 
	CQ22 B 1 Bright
	CQ22 A 3 
	CQ22 B 1 Bright
	CQ22 CDEFG 3 Bright
	CQ22 H 3 A_NoBlocking
	CQ22 I 10
    Stop
	}
}

ACTOR Queen02Cast : Crusader_QueenPhase2
{
  States
	{
  See:
    CQ2N AABBCCDD 3 A_FastChase
    Loop
  Missile:
	CQ2N E 3 A_FaceTarget 
	CQ2N F 3
    CQ2N G 3 
	CQ2N H 3 Bright
	Goto See
  Death:
    CQ2N J 6
    CQ2N K 6 A_NoBlocking
	CQ2N LM 6 
	CQ2N N 6 A_PlaySound ("crusaderqueen/pain1",7,1)
	CQ2N O 6
	CQ2N N 6 A_PlaySound ("crusaderqueen/pain1",7,1)
	CQ2N O 6
	CQ2N N 6 A_PlaySound ("crusaderqueen/pain1",7,1)
	CQ2N O 6
	CQ2N N 6 A_PlaySound ("crusaderqueen/pain1",7,1)
	CQ2N O 6
	CQ2N P 6
	CQ2N Q 6 A_PlaySound ("egg/death1")
	CQ2N RSTUV 4
	CQ2N W -10 
    Stop
	}
}