/*
================================================================================
	Cardinal
	
	Class: Outer Sphere Angel
	
"A very red angel who swipes at her foes with bladed sleeves. While she can fly,
she must land to effectively attack. Her stamina is quite poor and she must 
rest after attacking or flying for a period of time." 

-Cardinals are similar to pinkies as they are melee enemies with low HP. 
Cardinals tend to be more dangerous than pinkies as they attack two times 
in a row and can enter a flight mode. In flight mode, Cardinals
have increased speed and are immune to being stunned. Their weakness
is their stamina. After attacking or leaving flight mode, the Cardinal becomes
tired and takes a few seconds to catch her breath, leaving her open to attack.
Baiting Cardinals into attacking the player and then striking while she's weak
is a viable strategy, especially when fighting them in mobs.

-In heretic, Cardinals always drop at least one timebomb of the Ancients. 
Cardinals can easily be bombed with timebombs as they become tired after attacking.
The timebombs dropped by cardinals is a key component to fighting heretic angels
and should be utilized as much as possible.
  
================================================================================
*/

Actor CardinalSpawner replaces Demon
{
  +NOBLOCKMAP
  +NOSECTOR
  +THRUACTORS
  States
  {
  Spawn:
  	TNT1 A 0
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("Cardinal",0,0,0, 0, 0,0,0, SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG )
	Stop
	SummonQuietCardinal:
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("QuietCardinal",0,0,0, 0, 0,0,0, SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG )
	Stop
	}
}

ACTOR Cardinal
{
  Health 150
  GibHealth 50
  PainChance 196
  Speed 8
  Radius 30
  Height 56
  Mass 300
  Monster
  Tag "Cardinal"
  +FLOORCLIP
  DamageFactor "UndeadGoHomeImpact", 0
  DamageFactor "Judgement", 0
  DamageFactor "Holy", 0
  DamageFactor "PlayerVoid", 0.5
  DamageFactor "KissMagic", 3
  SeeSound "cardinal/sight"
  AttackSound "cardinal/melee"
  PainSound "cardinal/pain"
  DeathSound "cardinal/death"
  ActiveSound "cardinal/active"
  HitObituary "%o was torn asunder by a Cardinal."
  	DropItem "AngelHealthSpawner" 128
	DropItem "AngelHealthSpawner" 64
	DropItem "Rarecandyspawner2", 1

	var int user_haloactive;
			
  States
  {
  Spawn:
  	CARD A 0
	TNT1 A 0 A_JumpIf (user_haloactive == 1, "SpawnLoop")
	TNT1 A 0 A_SetUserVar (user_haloactive, 1)
    TNT1 A 0 A_SpawnItemEx ("CardinalHalo", 0,0,46, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_SETMASTER)
	Goto SpawnLoop
  SpawnLoop:
	CARD WX 10 A_Look
	Loop
  See:
	TNT1 A 0 A_Changeflag("NOPAIN",FALSE)
    CARD AABBCCDD 2 Fast A_Chase
	TNT1 A 0 A_Jump (96, 3)
	TNT1 A 0 A_Jump (16, "Takeoff")
    Loop
	CARD PPQQ 2 A_Chase 
	CARD R 2 A_Chase 
	CARD SS 2 A_Chase 
	Loop
  TakeOff:
	CA2D A 3
	CA2D B 6
	CA2D C 4
  Goto TakeOff2
  TakeOff2:
	TNT1 A 0 A_Changeflag("FLOAT",TRUE)
	TNT1 A 0 A_Changeflag("NOGRAVITY",TRUE)
	TNT1 A 0 A_Changeflag("NOPAIN",TRUE)
	TNT1 A 0 A_Changeflag("FLOAT",TRUE)
	TNT1 A 0 ThrustThingZ(0,7,0,0)
	CA2D DE 4
	Goto Flight
  Flight:
	CARD WWXXYY 2 A_Chase
	TNT1 A 0 a_playsound("bird/flap")
	CARD ZZWWXXYY 2 A_Chase
	TNT1 A 0 a_playsound("bird/flap")
	CARD ZZWWXXYY 2 A_Chase
	TNT1 A 0 a_playsound("bird/flap")
	CARD ZZWWXXYY 2 A_Chase
	TNT1 A 0 a_playsound("bird/flap")
	CARD ZZWWXXYY 2 A_Chase
	TNT1 A 0 a_playsound("bird/flap")
	CARD ZZ 2 A_Chase
	TNT1 A 0 A_Jump (32, "Land")
	Loop
  Land:
	TNT1 A 0 A_Changeflag("FLOAT",FALSE)
	TNT1 A 0 A_Changeflag("NOGRAVITY",FALSE)
	TNT1 A 0 A_SpawnItemEx("RedFeather",random(-20,20),random(-20,20),35,random(-5,5),random(-5,5),random(-5,5))
	CA2D EDCB 4
	TNT1 A 0 A_playsound ("cardinal/tired")
	CARD T 15 
	CARD U 8
	CARD T 15
	CARD U 8
	CARD T 15
	TNT1 A 0 A_Changeflag("NOPAIN",FALSE)
	CARD U 8
	Goto See
  Melee:
  	TNT1 A 0 A_Changeflag("FLOAT",FALSE)
	TNT1 A 0 A_Changeflag("NOGRAVITY",FALSE)
	TNT1 A 0 A_Changeflag("NOPAIN",TRUE)
    CARD E 15 Fast A_FaceTarget
	TNT1 A 0 Bright A_playsound("cardinal/melee1")
	CARD F 5 Fast A_SargAttack 
	TNT1 A 0 Bright A_playsound("cardinal/melee2")
    CARD G 15 Fast A_SargAttack 
	TNT1 A 0 A_playsound ("cardinal/tired")
	CARD T 15 
	CARD U 12
	CARD T 15
	CARD U 12
	CARD T 15
	CARD U 12
	TNT1 A 0 A_Changeflag("NOPAIN",FALSE)
    Goto See
  Pain:
    TNT1 A 0 A_Changeflag("FLOAT",FALSE)
	TNT1 A 0 A_Changeflag("NOGRAVITY",FALSE)
	TNT1 A 0 A_SpawnItemEx("RedFeather",random(-20,20),random(-20,20),40,random(-5,5),random(-5,5),random(-5,5))
    CARD H 4 Fast
	TNT1 A 0 A_SpawnItemEx("RedFeather",random(-20,20),random(-20,20),45,random(-5,5),random(-5,5),random(-5,5))
    CARD H 4 Fast A_Pain
    Goto See
  Death.Fire:
	TNT1 A 0 A_SetUserVar (user_haloactive, 0)
	CA2D F 1 A_Scream
	TNT1 AAA 0 A_SpawnItemEx("RedFeather",random(-30,30),random(-30,30),random(-30,30),random(-5,5),random(-5,5))
	TNT1 AAAAA 0 A_SpawnItemEx("RedFeather",random(-30,30),random(-30,30),random(-30,30),random(-5,5),random(-5,5))
	TNT1 AAA 0 A_SpawnItemEx("RedFeather",random(-30,30),random(-30,30),random(-30,30),random(-5,5),random(-5,5))
	CA2D FG 6 A_playsound ("seraph/sizzle")
	TNT1 AAA 0 A_SpawnItemEx("RedFeather",random(-20,20),random(-20,20),random(-20,20),random(-5,5),random(-5,5),random(-5,5))
	TNT1 A 0 A_playsound ("Seraph/Burn")
	CA2D HI 6 A_playsound ("seraph/sizzle")
	TNT1 AA 0 A_SpawnItemEx("RedFeather",random(-20,20),random(-20,20),random(-20,20),random(-5,5),random(-5,5),random(-5,5))
	TNT1 A 0 A_DropItem("RoastCardinal",1,64)
	TNT1 A 0 A_playsound ("seraph/sizzle")
	TNT1 A 0 A_NoBlocking
	R0OT EFGHI 5
	R0OT J 8
	Stop
  Death.Ice:
	TNT1 A 0 A_Changeflag("DONTCORPSE",TRUE)
	TNT1 A 0 A_SetUserVar (user_haloactive, 0)
	CA3D L 150 
	TNT1 A 0 A_SpawnItemEx ("FrozenCardinal", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_SETMASTER)
	TNT1 A 0 A_SpawnItemEx ("AviaryIceSpawner")
    Stop
  Death.PlayerVoid:
	TNT1 A 0 A_Changeflag("DONTCORPSE",TRUE)
	TNT1 A 0 A_playsound("stonemaiden/pain",6,1, FALSE)
	CA3D A 1 Bright A_NoBlocking
	TNT1 AAAAAA 0 A_SpawnItemEx ("Rrock06",random(-16,16),random(-16,16),42,random(-100,100)/20.0,random(-100,100)/20.0,random(-100,100)/20.0,0)
	TNT1 AAA 0 A_SpawnItemEx("Rrock02",0,0,32,random(-10,10),random(-10,10),random(5,10))
	TNT1 AAAA 0 A_SpawnItemEx("Rrock03",0,0,32,random(-10,10),random(-10,10),random(5,10))
	TNT1 AAA 0 A_SpawnItemEx ("Rrock04",random(-20,20),random(-16,16),42,random(-100,100)/20.0,random(-100,100)/20.0,random(-100,100)/20.0,0)
	TNT1 AAA 0 A_SpawnItemEx("Rrock05",0,0,32,random(-10,10),random(-10,10),random(5,10))
	TNT1 AAA 0 A_SpawnItemEx("Rrock01",0,0,32,random(-10,10),random(-10,10),random(5,10))
	TNT1 AA 0 A_SpawnItemEx ("Rrock04",random(-16,16),random(-16,16),42,random(-100,100)/20.0,random(-100,100)/20.0,random(-100,100)/20.0,0)
	TNT1 AAAA 0 A_SpawnItemEx("Rrock05",0,0,32,random(-10,10),random(-10,10),random(5,10))
	TNT1 AA 0 A_SpawnItemEx("Rrock06",0,0,32,random(-10,10),random(-10,10),random(5,10))
	TNT1 AAAAAAA 0 A_SpawnItemEx ("Rrock01",random(-20,20),random(-16,16),42,random(-100,100)/20.0,random(-100,100)/20.0,random(-100,100)/20.0,0)
	TNT1 AA 0 A_SpawnItemEx("Rrock02",0,0,32,random(-10,10),random(-10,10),random(5,10))
	TNT1 A 0 A_SpawnItemEx("Rrock03",0,0,32,random(-10,10),random(-10,10),random(5,10))
	TNT1 A 0 A_playsound ("stonemaiden/free")
	TNT1 A 0 A_Jump (128, "Altstone")
	TNT1 A 0 A_SpawnItemEx ("StoneCardinal", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_SETMASTER)
    Stop
  AltStone:
	TNT1 A 0 A_SpawnItemEx ("StoneCardinal2", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_SETMASTER)
    Stop
  Death:
	TNT1 A 0
	TNT1 A 0 A_SetUserVar (user_haloactive, 0)
	TNT1 A 0 A_Scream
	TNT1 A 0 A_NoBlocking
	CARD H 2
	CA3D W 1
	TNT1 A 0 A_SpawnItemEx ("CardinalDeathPC", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_SETMASTER)
	TNT1 A 0 A_SpawnItemEx ("AviaryIceSpawner") 
	CA3D W -1
	Stop
  Raise:
	TNT1 A 0 A_SetUserVar (user_haloactive, 0)
	CA3D W 20
	TNT1 A 0 A_SpawnItemEx ("CardinalHalo", 10,0,46, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_SETMASTER)
    Goto See
  }
}

ACTOR QuietCardinal : Cardinal
{
  Tag "Cardinal"
  SeeSound "crow/sight1"
  PainSound "virgin/pain"
  DeathSound "crow/death1"
  ActiveSound "crow/active1"
  States
  {
  Land:
	TNT1 A 0 A_Changeflag("FLOAT",FALSE)
	TNT1 A 0 A_Changeflag("NOGRAVITY",FALSE)
	CA2D EDCB 4
	CARD T 15 
	CARD U 8
	CARD T 15
	CARD U 8
	CARD T 15
	TNT1 A 0 A_Changeflag("NOPAIN",FALSE)
	CARD U 8
	Goto See
  Melee:
	TNT1 A 0 A_Changeflag("FLOAT",FALSE)
	TNT1 A 0 A_Changeflag("NOGRAVITY",FALSE)
	TNT1 A 0 A_Changeflag("NOPAIN",TRUE)
    CARD E 10 Fast A_FaceTarget
	TNT1 A 0 Bright A_playsound("cardinal/melee1")
	CARD F 5 Fast A_SargAttack 
	TNT1 A 0 Bright A_playsound("cardinal/melee2")
    CARD G 10 Fast A_SargAttack 
	CARD T 15 
	CARD U 12
	CARD T 15
	CARD U 12
	CARD T 15
	CARD U 12
	TNT1 A 0 A_Changeflag("NOPAIN",FALSE)
    Goto See
  Death:
	TNT1 A 0
	TNT1 A 0 A_SetUserVar (user_haloactive, 0)
	TNT1 A 0 A_Scream
	TNT1 A 0 A_NoBlocking
	CARD H 2
	CA3D W 1
	TNT1 A 0 A_SpawnItemEx ("CardinalDeathPC", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_SETMASTER)
	TNT1 A 0 A_SpawnItemEx ("AviaryIceSpawner") 
	CA3D W -1
	Stop
  XDeath:
	TNT1 A 0
	TNT1 A 0 A_SetUserVar (user_haloactive, 0)
	TNT1 A 0 A_Scream
	TNT1 A 0 A_NoBlocking
	CARD H 2
	CA3D W 1
	TNT1 A 0 A_SpawnItemEx ("CardinalDeathPC", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_SETMASTER)
	TNT1 A 0 A_SpawnItemEx ("AviaryIceSpawner") 
	CA3D W -1
	Stop
  }
}

Actor FrozenCardinal
{
  Health 100
  Radius 30
  Height 56
  ProjectilePassHeight -16
  +SOLID
  +SHOOTABLE
  +PUSHABLE
  +NOICEDEATH
  +FULLVOLACTIVE
  +NOBLOOD
  -COUNTKILL
  DamageFactor "Ice", 0
  DamageFactor "Fire", 2
  States
  {
  Spawn:
	CA3D M 150
	TNT1 A 0 A_playsound("angel/frozensoild",0,5)
	CA3D NOPQRST 30
	CA3D U 10000000000000 
	TNT1 A 0 A_SpawnItemEx ("AviaryIceSpawner")
	Stop
   Death:
	TNT1 A 0 A_NoBlocking
	TNT1 A 0 A_SpawnItemEx ("AviaryIceSpawner")
    Stop
  }
}

Actor StoneCardinal
{
  Health 500
  Radius 20
  Height 56
  Mass 800
  +SOLID
  +SHOOTABLE
  +PUSHABLE
  +DONTBLAST
  +DONTMORPH
  +DONTRIP
  +NOICEDEATH
  +FULLVOLACTIVE
  +NOBLOOD
  +NEVERTARGET
  -COUNTKILL
	DamageFactor "FireMagic", 0
	DamageFactor "Poison", 0
	DamageFactor "Melee", 2.0
	DamageFactor "Ice", 0
	DamageFactor "Fire", 0
	DamageFactor "Electric", 0
	DamageFactor "Magic", 0
	DamageFactor "PlayerVoid", 0
  States
  {
  Spawn:
	CA3D A 3 Bright A_playsound("angel/stonebeam")
	CA3D CD 3 Bright
	CA3D A 3 Bright A_playsound("angel/stonebeam")
	CA3D CD 3 Bright
	CA3D A 3 Bright A_playsound("angel/stonebeam")
	CA3D CD 3 Bright
	CA3D A 3 Bright A_playsound("angel/stonebeam")
	CA3D CD 3 Bright
	CA3D A 3 Bright A_playsound("angel/stonebeam")
	CA3D CD 3 Bright 
	CA3D A 2 Bright A_playsound("angel/stonebeam")
	CA3D CD 2 Bright  
	CA3D A 2 Bright A_playsound("angel/stonebeam")
	CA3D CD 2 Bright 
	CA3D A 2 Bright A_playsound("angel/stonebeam")
	CA3D CD 2 Bright 
	CA3D A 2 Bright A_playsound("angel/stonebeam")
	CA3D CD 2 Bright 
	CA3D A 1 Bright A_playsound("angel/stonebeam")
	CA3D CD 1 Bright  
	CA3D A 1 Bright A_playsound("angel/stonebeam")
	CA3D CD 1 Bright 
	CA3D A 1 Bright A_playsound("angel/stonebeam")
	CA3D CD 1 Bright 
	CA3D E 25 Bright
	CA3D FG 50 Bright A_playsound("stonemaiden/pain")
	CA3D HIJ 50 A_playsound("stonemaiden/pain")
	TNT1 A 0 A_playsound("stonemaiden/pain4")
	CA3D K -1
	Stop
  Death:
	TNT1 A 0 A_playsound("stonemaiden/pain",6,1, FALSE)
	CA3D K 1  A_NoBlocking
	TNT1 AAAAA 0 A_SpawnItemEx ("Rrock06",random(-16,16),random(-16,16),42,random(-100,100)/20.0,random(-100,100)/20.0,random(-100,100)/20.0,0)
	TNT1 AA 0 A_SpawnItemEx("Rrock02",0,0,32,random(-10,10),random(-10,10),random(5,10))
	TNT1 AAAA 0 A_SpawnItemEx("Rrock03",0,0,32,random(-10,10),random(-10,10),random(5,10))
	TNT1 AAAA 0 A_SpawnItemEx ("Rrock04",random(-20,20),random(-16,16),42,random(-100,100)/20.0,random(-100,100)/20.0,random(-100,100)/20.0,0)
	TNT1 AAA 0 A_SpawnItemEx("Rrock05",0,0,32,random(-10,10),random(-10,10),random(5,10))
	TNT1 AAAAAAAAAA 0 A_SpawnItemEx("Rrock01",0,0,32,random(-10,10),random(-10,10),random(5,10))
	TNT1 AAA 0 A_SpawnItemEx ("Rrock04",random(-16,16),random(-16,16),42,random(-100,100)/20.0,random(-100,100)/20.0,random(-100,100)/20.0,0)
	TNT1 AAAAA 0 A_SpawnItemEx("Rrock05",0,0,32,random(-10,10),random(-10,10),random(5,10))
	TNT1 AAAA 0 A_SpawnItemEx("Rrock06",0,0,32,random(-10,10),random(-10,10),random(5,10))
	TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx ("Rrock01",random(-20,20),random(-16,16),42,random(-100,100)/20.0,random(-100,100)/20.0,random(-100,100)/20.0,0)
	TNT1 AA 0 A_SpawnItemEx("Rrock02",0,0,32,random(-10,10),random(-10,10),random(5,10))
	TNT1 A 0 A_SpawnItemEx("Rrock03",0,0,32,random(-10,10),random(-10,10),random(5,10))
	TNT1 A 0 A_playsound ("stonemaiden/free")
    Stop
  }
}

Actor StoneCardinal2 : StoneCardinal
{
}

Actor CardinalDeathPC
{
  -NOINTERACTION
  -SOLID
  +FLOAT
  +NOGRAVITY
  +DONTFALL
  States
  {
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_Quake(5,3,0,4)
	TNT1 AAA 0 A_SpawnItemEx("RedFeather",random(-30,30),random(-30,30),45,random(-5,5),random(-5,5))
	TNT1 AA 0 A_SpawnItemEx("RedFeather",random(-30,30),random(-30,30),45,random(-5,5),random(-5,5))
	TNT1 AAAAA 0 A_SpawnItemEx("RedFeather",random(-20,20),random(-20,20),45,random(-5,5),random(-5,5),random(-5,80))
	TNT1 AAAA 0 A_SpawnItemEx("RedFeather",random(-20,20),random(-20,20),45,random(-5,5),random(-5,5),random(-5,5))
	CA3D V 20 Bright
	CA3D VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV 1 BRIGHT A_Fadeout(0.01)
	CA3D VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV 1 A_Fadeout(0.01)
	CA3D VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV 2 A_Fadeout(0.02)
	TNT1 A 0
	Stop
	}
}

/*
================================================================================
	Blackbird
"A shy cardinal who doesn’t like to be seen. While on the battlefield, 
she can render herself complete invisible… except for her halo.”   

-Blackbirds are Cardinals that are complete invisible and will only show 
themselves when attacking or taking damage. The only part of them which they 
cannot render invisible is their halo. This ironically makes them easiest to
spot in dark coridors. Just like Cardinals, Blackbirds can enter into a fight
mode, allowing them to reach areas which specters cannot.
  
================================================================================
*/

Actor BlackbirdSpawner replaces Spectre
{
  +NOBLOCKMAP
  +NOSECTOR
  +THRUACTORS
  States
  {
  Spawn:
  	TNT1 A 0
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("Blackbird",0,0,0, 0, 0,0,0, SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG )
	Stop
	SummonQuietBlackbird:
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("QuietBlackbird",0,0,0, 0, 0,0,0, SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG )
	Stop
	}
}

ACTOR Blackbird : Cardinal
{
  RenderStyle Translucent
  Alpha 0.3
  Health 125
  PainChance 200
  Speed 12
  Tag "Blackbird"
  SeeSound "jay/sight"
  AttackSound "cardinal/melee"
  PainSound "jay/pain"
  DeathSound "jay/death"
  ActiveSound "jay/active"
  HitObituary "%o didn't spot a Blackbird in time."
  Translation "24:47=%[0.02,0.02,0.03]:[0.29,0.49,0.65]","176:191=%[0.02,0.02,0.03]:[0.29,0.49,0.65]"
  States  
  {
Pain:
    TNT1 A 0 A_Changeflag("FLOAT",FALSE)
	TNT1 A 0 A_Changeflag("NOGRAVITY",FALSE)
	TNT1 AA 0 A_SpawnItemEx("BlackFeather",random(-30,30),random(-20,20),45,random(-5,5),random(-5,5),random(-5,5))
	TNT1 A 0 A_SpawnItemEx("BlackFeather",random(-20,20),random(-20,20),40,random(-5,5),random(-5,5),random(-5,5))
	TNT1 A 0 A_SpawnItemEx("BlackFeather",random(-20,20),random(-20,20),45,random(-5,5),random(-5,5),random(-5,5))
    CARD H 4 Fast
    CARD H 4 Fast A_Pain
    Goto See
  Death.Fire:
	TNT1 A 0 A_SetUserVar (user_haloactive, 0)
	TNT1 A 0 A_Changeflag("STEALTH",FALSE)
	CA2D F 1 A_Scream
	TNT1 AAA 0 A_SpawnItemEx("BlackFeather",random(-30,30),random(-30,30),random(-30,30),random(-5,5),random(-5,5))
	TNT1 AAAAA 0 A_SpawnItemEx("BlackFeather",random(-30,30),random(-30,30),random(-30,30),random(-5,5),random(-5,5))
	TNT1 AAA 0 A_SpawnItemEx("BlackFeather",random(-30,30),random(-30,30),random(-30,30),random(-5,5),random(-5,5))
    TNT1 AAA 0 A_SpawnItemEx("BlackFeather",random(-20,20),random(-20,20),random(-20,20),random(-5,5),random(-5,5),random(-5,5))
	TNT1 AA 0 A_SpawnItemEx("BlackFeather",random(-20,20),random(-20,20),random(-20,20),random(-5,5),random(-5,5),random(-5,5))
	CA2D FG 6 A_playsound ("seraph/sizzle")
	TNT1 A 0 A_playsound ("Seraph/Burn")
	CA2D HI 6 A_playsound ("seraph/sizzle")
	TNT1 A 0 A_DropItem("RoastCardinal",1,64)
	TNT1 A 0 A_playsound ("seraph/sizzle")
	R0OT EFGHI 5
	R0OT J 8
	Stop
  Death:
	TNT1 A 0
	TNT1 A 0 A_Changeflag("STEALTH",FALSE)
	TNT1 A 0 A_SetUserVar (user_haloactive, 0)
	TNT1 A 0 A_Scream
	TNT1 A 0 A_NoBlocking
	CA3D V 5
	TNT1 A 0 A_SpawnItemEx ("BlackbirdDeathPC", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_SETMASTER)
	TNT1 A 0 A_SpawnItemEx ("AviaryIceSpawner") 
	CA3D X -1
	Stop
  Raise:
	TNT1 A 0 A_SetUserVar (user_haloactive, 0)
    CA3D VVVVVVVVV 5
    CA3D V 5
	TNT1 A 0 A_SpawnItemEx ("CardinalHalo", 10,0,46, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_SETMASTER)
    Goto See
	}
}

ACTOR QuietBlackbird : Cardinal
{
  Health 125
  PainChance 200
  Speed 12
  Tag "Blackbird"
  SeeSound "crow/sight1"
  PainSound "virgin/pain"
  DeathSound "crow/death1"
  ActiveSound "crow/active1"
  AttackSound "cardinal/melee"
  HitObituary "%o didn't spot a Blackbird in time."
  Translation "24:47=%[0.02,0.02,0.03]:[0.29,0.49,0.65]","176:191=%[0.02,0.02,0.03]:[0.29,0.49,0.65]"
  States 
  {
   Melee:
  	TNT1 A 0 A_Changeflag("FLOAT",FALSE)
	TNT1 A 0 A_Changeflag("NOGRAVITY",FALSE)
	TNT1 A 0 A_Changeflag("NOPAIN",TRUE)
    CARD E 15 Fast A_FaceTarget
	TNT1 A 0 Bright A_playsound("cardinal/melee1")
	CARD F 5 Fast A_SargAttack 
	TNT1 A 0 Bright A_playsound("cardinal/melee2")
    CARD G 15 Fast A_SargAttack 
	CARD T 15 
	CARD U 12
	CARD T 15
	CARD U 12
	CARD T 15
	CARD U 12
	TNT1 A 0 A_Changeflag("NOPAIN",FALSE)
    Goto See
   Pain:
    TNT1 A 0 A_Changeflag("FLOAT",FALSE)
	TNT1 A 0 A_Changeflag("NOGRAVITY",FALSE)
	TNT1 AA 0 A_SpawnItemEx("BlackFeather",random(-30,30),random(-20,20),45,random(-5,5),random(-5,5),random(-5,5))
	TNT1 A 0 A_SpawnItemEx("BlackFeather",random(-20,20),random(-20,20),40,random(-5,5),random(-5,5),random(-5,5))
	TNT1 A 0 A_SpawnItemEx("BlackFeather",random(-20,20),random(-20,20),45,random(-5,5),random(-5,5),random(-5,5))
    CARD H 4 Fast
    CARD H 4 Fast A_Pain
    Goto See
  Death:
	TNT1 A 0
	TNT1 A 0 A_SetUserVar (user_haloactive, 0)
	TNT1 A 0 A_Scream
	TNT1 A 0 A_NoBlocking
	CARD H 2
	CA3D W 1
	TNT1 A 0 A_SpawnItemEx ("CardinalDeathPC", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_SETMASTER)
	TNT1 A 0 A_SpawnItemEx ("AviaryIceSpawner") 
	CA3D W -1
	Stop
  XDeath:
	TNT1 A 0
	TNT1 A 0 A_SetUserVar (user_haloactive, 0)
	TNT1 A 0 A_Scream
	TNT1 A 0 A_NoBlocking
	CARD H 2
	CA3D W 1
	TNT1 A 0 A_SpawnItemEx ("CardinalDeathPC", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_SETMASTER)
	TNT1 A 0 A_SpawnItemEx ("AviaryIceSpawner") 
	CA3D W -1
	Stop
  Death.Fire:
	TNT1 A 0 A_SetUserVar (user_haloactive, 0)
	CA2D F 1
	TNT1 AAA 0 A_SpawnItemEx("BlackFeather",random(-30,30),random(-30,30),random(-30,30),random(-5,5),random(-5,5))
	TNT1 AAAAA 0 A_SpawnItemEx("BlackFeather",random(-30,30),random(-30,30),random(-30,30),random(-5,5),random(-5,5))
	TNT1 AAA 0 A_SpawnItemEx("BlackFeather",random(-30,30),random(-30,30),random(-30,30),random(-5,5),random(-5,5))
    TNT1 AAA 0 A_SpawnItemEx("BlackFeather",random(-20,20),random(-20,20),random(-20,20),random(-5,5),random(-5,5),random(-5,5))
	TNT1 AA 0 A_SpawnItemEx("BlackFeather",random(-20,20),random(-20,20),random(-20,20),random(-5,5),random(-5,5),random(-5,5))
	CA2D FG 6 A_playsound ("seraph/sizzle")
	TNT1 A 0 A_playsound ("Seraph/Burn")
	CA2D HI 6 A_playsound ("seraph/sizzle")
	TNT1 A 0 A_DropItem("RoastCardinal",1,64)
	TNT1 A 0 A_playsound ("seraph/sizzle")
	R0OT EFGHI 5
	R0OT J 8
	Stop
	}
  }

Actor BlackbirdDeathPC
{
  -NOINTERACTION
  -SOLID
  +FLOAT
  +NOGRAVITY
  States
  {
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_Quake(5,3,0,4)
	TNT1 AAA 0 A_SpawnItemEx("BlackFeather",random(-30,30),random(-30,30),45,random(-5,5),random(-5,5))
	TNT1 AA 0 A_SpawnItemEx("BlackFeather",random(-30,30),random(-30,30),45,random(-5,5),random(-5,5))
	TNT1 AAAAA 0 A_SpawnItemEx("BlackFeather",random(-20,20),random(-20,20),45,random(-5,5),random(-5,5),random(-5,80))
	TNT1 AAAA 0 A_SpawnItemEx("BlackFeather",random(-20,20),random(-20,20),45,random(-5,5),random(-5,5),random(-5,5))
	CA3D V 20 Bright
	CA3D VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV 1 BRIGHT A_Fadeout(0.01)
	CA3D VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV 1 A_Fadeout(0.01)
	CA3D VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV 2 A_Fadeout(0.02)
	TNT1 A 0
	Stop
	}
}

ACTOR CardinalCast : Cardinal
{
	States
	{
	See:
    CARD AABBCCDD 2 A_Chase
	CARD PPQQ 2 A_Chase 
	CARD R 2 A_Chase 
	CARD SS 2 A_Chase 
	Loop
  Melee:
    CARD E 15 
	CARD F 5 
    CARD G 15
	CARD T 15 
	CARD U 12
	CARD T 15
	CARD U 12
	CARD T 15
	CARD U 12
    Goto See
  Death:
	CARD I 4 A_Scream
    CARD J 4 
    CARD K 4
    CARD M 8
	CARD N 8
    CARD O -1
    Stop
	}
}