/*
		Heretic compatibility 
	Heretic Angels are very different from Doom angels. Angels have less HP and drop
	a wide varity of items. Most enemies will drop time bombs of the ancients so
	get use to using them.
*/

ACTOR HereticImpSpawner : RandomSpawner Replaces HereticImp
{
	DropItem "HereticCherub", 255, 3
	DropItem "HereticPutto", 255, 1
}

ACTOR HereticCherub : Cherub
{
	Health 60
	Tag "Cherub"
	Bloodcolor "Red"
	HitObituary "Poor little elf boy"
	Obituary "Elf boy %o was baptized by an adorable Cherub."
	DropItem "AngelicHealthBonus" 96
	DropItem "AngelicHealthBonus" 8
	DropItem "AngelicHealthBonus" 8
	States
  {
	Missile:
    CHUB EF 8 A_FaceTarget
    CHUB G 6 A_CustomMissile ("HereticWaterBall",20,10,0)
    Goto See
	}
}

ACTOR HereticPutto : Putto
{
	Health 30
	Speed 14
	Tag "Putto"
}

ACTOR HereticImpLeaderSpawner : RandomSpawner Replaces HereticImpLeader
{
	DropItem "HereticCherub", 255, 2
	DropItem "HereticSnowball", 255, 2
	DropItem "HereticEliteCherub", 255, 2
}

ACTOR HereticSnowball : Snowball
{
	Tag "Snowball"
	Bloodcolor "Red"
	Obituary "%o was turned into an elfcicle"
	DropItem "AngelicHealthBonus" 128
	DropItem "AngelicHealthBonus" 128
	DropItem "AngelicHealthBonus" 16
}

ACTOR HereticEliteCherub : EliteCherub
{
	Tag "Puckish Prankster"
	Bloodcolor "Red"
	Obituary "Elf boy %o fell for the Cherub's prank... and died."
	DropItem "AngelicHealthBonus" 128
	DropItem "AngelicHealthBonus" 16
	States
  {
	Missile:
    RDCB EF 8 A_FaceTarget
    RDCB G 6 A_CustomMissile ("HereticTrickyWaterBall",20,10,0)
	RDCB F 4 A_FaceTarget
    RDCB G 3 A_CustomMissile ("HereticTrickyWaterBall",20,10,0)
	RDCB F 4 A_FaceTarget
    RDCB G 3 A_CustomMissile ("HereticTrickyWaterBall",20,10,0)
	Goto See
	}
}

ACTOR HereticCardnial : Cardinal Replaces Mummy
{
	Health 100
	Speed 8
	Tag "Cardinal"
	Bloodcolor "Red"
	HitObituary "Too slow, elf boy!"
	DropItem "AngelicHealthBonus" 128
	DropItem "AngelicHealthBonus" 128
	DropItem "AngelicHealthBonus" 16
	DropItem "ArtiTimeBomb", 256
	DropItem "SilverShield", 4
}

ACTOR HereticMummyLeaderSpawner : RandomSpawner Replaces MummyLeader
{
	DropItem "HereticKiss", 255, 3
	DropItem "HereticSnowball", 255, 1
	DropItem "HereticEliteCherub", 255, 1
	
}

ACTOR HereticKiss : Kiss
{
	Radius 16
	Height 68
	Health 180
	Tag "Kiss"
	Bloodcolor "Red"
	Obituary "Enjoying the view?"
	DropItem "CrossbowAmmo", 64
	DropItem "AngelicHealthBonus" 255
	DropItem "AngelicHealthBonus" 128
	DropItem "AngelicHealthBonus" 32
	DropItem "ArtiTomeOfPower", 8
	States
  { 
	Missile:
    KISS EEEEE 5 A_FaceTarget
	KISS F 4 Bright
    KISS G 5 A_CustomMissile ("HereticArrow1")
    Goto See
	}
}

ACTOR HereticBlackbird : Blackbird Replaces MummyGhost
{
	Health 160
	Tag "Blackbird"
	Bloodcolor "Red"
	Translation "145:168=0:15","246:248=6:8","112:120=0:8","66:79=2:15"
	HitObituary "Too slow elf boy!"
	DropItem "AngelicHealthBonus" 255
	DropItem "AngelicHealthBonus" 128
	DropItem "AngelicHealthBonus" 32
	DropItem "ArtiTimeBomb", 256
	DropItem "ArtiTimeBomb", 64
	DropItem "ArtiTimeBomb", 32
}

ACTOR HereticMummyLeaderGhostSpawner : RandomSpawner Replaces MummyLeaderGhost
{
	DropItem "HereticCardnial", 255, 5
	DropItem "HereticEliteCherub", 255, 5
	DropItem "HereticAspectOfIris", 255, 1
	DropItem "HereticJay", 255, 1
}

ACTOR HereticAspectofIris : Aspect_of_Iris Replaces KnightGhost
{
	Health 200
	Tag "Aspect of Iris"
	Bloodcolor "Purple"
	Obituary "%o ate a butterfly for lunch."
	HitObituary "%o was diced into elf sashimi."
	DropItem "AngelicHealthBonus" 255
	DropItem "AngelicHealthBonus" 128
	DropItem "AngelicHealthBonus" 64
	DropItem "AngelicHealthBonus" 16
	DropItem "ArtiTimeBomb", 64 
	DropItem "ArtiTimeBomb", 64
}

ACTOR HereticAuthority : Authority Replaces Knight
{
	Health 200
	Speed 10
	Tag "Authority"
	Bloodcolor "Red"
	Obituary "%o was cut apart by an Authority."
	HitObituary "%o was turned into an Elf Taco by an Authority."
	DropItem "AngelicHealthBonus" 255
	DropItem "AngelicHealthBonus" 128
	DropItem "AngelicHealthBonus" 64
	DropItem "AngelicHealthBonus" 16
	DropItem "SilverShield", 16
	DropItem "ArtiTimeBomb", 64
	DropItem "ArtiTimeBomb", 64
	DropItem "ArtiTomeOfPower", 8
	States
  {
	Missile:
    ATHO EF 4 A_FaceTarget
	ATHO I 0 A_Jump (32, 2)
    ATHO G 4 A_CustomComboAttack("HereticWslash", 32, 10 * random(1, 4), "authority/attack")
    Goto See
	ATHO G 4 A_CustomComboAttack("HereticBslash", 32, 10 * random(4, 10), "authority/attack")
    Goto See
	}
}

ACTOR HereticWizardSpawner : RandomSpawner Replaces Wizard
{
	DropItem "HereticKiss", 255, 6
	DropItem "HereticAphroditeKiss", 255, 5
	DropItem "HereticJoyElemental", 255, 1
}

ACTOR HereticAphroditeKiss : Aphrodites_Kiss
{
	Radius 16
	Height 68
	Health 300
	Bloodcolor "Red"
	Tag "Aphrodite's Kiss"
	Obituary "Elf boy %o let the fanservice get to him."
	DropItem "AngelicHealthBonus" 255
	DropItem "AngelicHealthBonus" 128
	DropItem "AngelicHealthBonus" 64
	DropItem "AngelicHealthBonus" 32
	DropItem "CrossbowAmmo", 128
	DropItem "ArtiTomeOfPower", 8
	States
{
	Death:
	TNT1 A 0 A_SetUserVar (user_haloactive, 0)
	TNT1 A 0 A_DropItem ("AngelHealthSpawner")
	TNT1 A 0 A_DropItem ("AngelHealthSpawner")
	TNT1 A 0 A_DropItem ("CrossbowAmmo")
    AKIS I 10 A_Spawnitem ("AphroditeCloud")
	TNT1 A 0 A_KeenDie
	AKIS I 10 
	TNT1 A 0 A_SpawnItemEx ("HereticStoneMaiden", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_SETMASTER)
    Stop
	}
}

ACTOR HereticStoneMaiden : StoneMaiden
{
	Health 75
	States
	{
  Death:
	TNT1 A 0 A_playsound("stonemaiden/pain",6,1, FALSE)
	AKIS W 1 Bright A_NoBlocking
	TNT1 AAAAAAAAAAAAA 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 AAAA 0 a_spawnitemex("Rrock02",0,0,32,random(-10,10),random(-10,10),random(5,10))
	TNT1 AAAAAA 0 a_spawnitemex("Rrock03",0,0,32,random(-10,10),random(-10,10),random(5,10))
	TNT1 AAAAAA 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 AAAAA 0 a_spawnitemex("Rrock05",0,0,32,random(-10,10),random(-10,10),random(5,10))
	TNT1 AAAAAAAAAAAAAAAAAAA 0 a_spawnitemex("Rrock01",0,0,32,random(-10,10),random(-10,10),random(5,10))
	TNT1 AAAAA 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 AAAAAAAAA 0 a_spawnitemex("Rrock05",0,0,32,random(-10,10),random(-10,10),random(5,10))
	TNT1 AAAAAA 0 a_spawnitemex("Rrock06",0,0,32,random(-10,10),random(-10,10),random(5,10))
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 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 AAAA 0 a_spawnitemex("Rrock02",0,0,32,random(-10,10),random(-10,10),random(5,10))
	TNT1 AAA 0 a_spawnitemex("Rrock03",0,0,32,random(-10,10),random(-10,10),random(5,10))
	TNT1 A 1 A_SpawnItemEX("HereticAphroditeKiss",10,0,0, 0, 0,0,0, SXF_NOCHECKPOSITION )
	TNT1 A 0 A_playsound ("stonemaiden/free")
	AKIS W -1
    Stop
	}
}

ACTOR HereticJoyElemental : JoyElemental
{
	Health 200
	Bloodcolor "Red"
	Tag "Aphrodite's Kiss"
	DropItem "AngelicHealthBonus" 255
	DropItem "AngelicHealthBonus" 128
	DropItem "AngelicHealthBonus" 32
	DropItem "ArtiTimeBomb", 64
	DropItem "SilverShield", 8
}

ACTOR HereticClinkSpawner : RandomSpawner Replaces Clink
{
	DropItem "HereticJay", 255, 6
	DropItem "HereticCardnial", 255, 5
	DropItem "HereticBlackBird", 255, 1
}

ACTOR HereticJay : Jay
{
	Health 150
	Radius 20
	Height 64
	Tag "Jay"
	Bloodcolor "Red"
	PainChance 64
	HitObituary "Elf boy %o was O-Jayed"
	DropItem "AngelicHealthBonus" 255
	DropItem "AngelicHealthBonus" 128
	DropItem "AngelicHealthBonus" 32
	DropItem "ArtiTimeBomb", 256
	DropItem "ArtiTimeBomb", 64
	DropItem "SilverShield", 5
}

ACTOR HereticBeastSpawner : RandomSpawner Replaces Beast
{
	DropItem "HereticOphanim", 255, 6
	DropItem "HereticAspectofIris", 255, 5
	DropItem "HereticJoyElemental", 255, 1
}

ACTOR HereticOphanim : Ophanim
{
	Health 450
	Tag "Ophanim"
	Bloodcolor "Red"
	DamageFactor "PlayerVoid", 1
	Obituary "Elf boy %o got his head blown up!!"
	HitObituary "Elf boy %o got his elf head blown up!!"
	DropItem "AngelicHealthBonus" 255
	DropItem "AngelicHealthBonus" 128
	DropItem "AngelicHealthBonus" 32
	DropItem "GoldWandAmmo", 128
	DropItem "GoldWandAmmo", 128
	DropItem "GoldWandAmmo", 128
	DropItem "GoldWandAmmo", 128
	DropItem "GoldWandAmmo", 128
	DropItem "ArtiTimeBomb", 128
	DropItem "ArtiTimeBomb", 64
	DropItem "ArtiTomeOfPower", 8
}

ACTOR HereticPrincipality : Principality Replaces Snake
{
	Health 300
	Tag "Principality"
	Radius 22
	Height 70
	Bloodcolor "Red"
	Obituary "Ohohohohoh!!! Elf boy %o is dead! Ohohohoho!!"
	HitObituary "Ohohohohoh!!! Elf boy %o is dead! Ohohohoho!!"
	DropItem "AngelicHealthBonus" 255
	DropItem "AngelicHealthBonus" 128
	DropItem "AngelicHealthBonus" 32
	DropItem "ArtiTomeOfPower", 8
	DropItem "SilverShield", 8
	States
  {
	Missile:
    PPTY E 6 A_FaceTarget
	PPTY E 0 A_Jump (127,20)
	PPTY FGH 2 A_FaceTarget
	PPTY I 4 Bright
	PPTY I 0 Bright A_CustomMissile ("HereticLightningball", 27,-18,0)
	PPTY I 0 Bright A_CustomMissile ("HereticLightningball", 27,-18,15)
	PPTY GHI 8 Bright A_FaceTarget
	PPTY I 0 Bright A_CustomMissile ("HereticLightningball", 27,-18,0)
	PPTY I 0 Bright A_CustomMissile ("HereticLightningball", 27,-18,-15)
	PPTY I 0 A_Jump (127,8)
	PPTY GHI 8 Bright A_FaceTarget
	PPTY I 0 Bright A_CustomMissile ("HereticLightningball", 27,-18,15)
	PPTY I 0 Bright A_CustomMissile ("HereticLightningball", 27,-18,-15)
	PPTY FE 3
		Goto See
    PPTY FG 4 A_FaceTarget
	PPTY H 4 Bright A_playsound ("principality/mock")
	PPTY H 2 Bright A_CustomMissile ("HereticTinylightning", 27,-18,1)
	PPTY H 0 A_FaceTarget
	PPTY H 2 A_CustomMissile ("HereticTinylightning", 27,-18,1)
	PPTY H 0 A_FaceTarget
	PPTY H 2 A_CustomMissile ("HereticTinylightning", 27,-18,1)
	PPTY H 0 A_FaceTarget
	PPTY H 2 A_CustomMissile ("HereticTinylightning", 27,-18,1)
	PPTY H 0 A_FaceTarget
	PPTY H 2 A_CustomMissile ("HereticTinylightning", 27,-18,1)
	PPTY I 0 A_FaceTarget
	PPTY I 2 A_CustomMissile ("HereticTinylightning", 27,-18,1)
	PPTY I 0 A_FaceTarget
	PPTY I 4 Bright A_CustomMissile ("HereticLightningball", 27,-18,1)
	PPTY FE 3
	Goto See
	}
}

ACTOR HereticIronLichSpawner : RandomSpawner Replaces IronLich
{
	DropItem "HereticVirtue_Virgin", 255, 4
	DropItem "HereticDollmaykr", 255, 1
}

ACTOR HereticVirtue_Virgin
{
  Health 800
  Radius 24
  Height 64
  Mass 100
  Speed 8
  Fastspeed 20
  PainChance 35
  Tag "Virtue Virgin"
  Monster
  +FLOORCLIP
  +BOSSDEATH
  +DONTMORPH
  +BLOODSPLATTER
  +ALLOWPARTICLES
  +DONTRIP
  +BOSS
  DamageFactor "FireMagic", 0
  DamageFactor "RainbowRip", 0
  DamageFactor "UndeadGoHomeImpact", 0
  DamageFactor "Judgement", 0
  DamageFactor "Holy", 0
  DamageFactor "PlayerVoid", 0
  SeeSound "virgin/sight"
  PainSound "virgin/pain"
  DeathSound "virgin/death"
  ActiveSound "virgin/active"
  Tag "Virtue Virgin"
  Bloodcolor "Red"
  Obituary "Elf boy %o died an elf virgin"
  HitObituary "Elf boy %o died a virgin"
	DropItem "CrystalVial", 128
	DropItem "CrystalVial", 128
	DropItem "AngelicHealthBonus" 255
	DropItem "AngelicHealthBonus" 255
	DropItem "AngelicHealthBonus" 255
	DropItem "AngelicHealthBonus" 255
	DropItem "AngelicHealthBonus" 128
	DropItem "AngelicHealthBonus" 32
	DropItem "ArtiTimeBomb", 64
	DropItem "ArtiTomeOfPower", 32, 1
	DropItem "ArtiEgg", 52, 1
	
			var int user_haloactive;
			
  States
  {
  Spawn:
  	VTRE A 0
	TNT1 A 0 A_JumpIf (user_haloactive == 1, "SpawnLoop")
	TNT1 A 0 A_SetUserVar (user_haloactive, 1)
    TNT1 A 0 A_SpawnItemEx ("VVHalo", 0,0,60, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_SETMASTER)
	Goto SpawnLoop
  SpawnLoop:
    VTRE AB 10 A_Look
    Loop
  See:
	TNT1 A 0 A_JumpIfHealthLower(750,"Flight")
	TNT1 A 0 A_JumpIfHealthLower(250,"SuperFlight")
	TNT1 A 0 A_JumpIfHealthLower(50,"UltraFlight")
    VTRE AABBCCDD 3 A_Chase
    Loop
  Flight:
	TNT1 A 0 A_JumpIfHealthLower(250,"SuperFlight")
	TNT1 A 0 A_JumpIfHealthLower(50,"UltraFlight")
  	TNT1 A 0 A_Changeflag("QUICKTORETALIATE",TRUE)
	TNT1 A 0 A_Changeflag("FLOAT",TRUE)
	TNT1 A 0 A_Changeflag("NOGRAVITY",TRUE)
	TNT1 A 0 A_Changeflag("Painchance 96",TRUE)
    VT2E AABBCCDD 2 FAST A_Chase
    Loop
  SuperFlight:
	TNT1 A 0 A_JumpIfHealthLower(50,"UltraFlight")
   	TNT1 A 0 A_Changeflag("QUICKTORETALIATE",TRUE)
	TNT1 A 0 A_Changeflag("FLOAT",TRUE)
	TNT1 A 0 A_Changeflag("NOGRAVITY",TRUE)
	TNT1 A 0 A_Changeflag("MISSILEMORE",TRUE)
	TNT1 A 0 A_Changeflag("Speed 16",TRUE)
	TNT1 A 0 A_Changeflag("Painchance 164",TRUE)
    VT2E AABBCCDD 1 FAST A_Chase
	Loop
  UltraFlight:
   	TNT1 A 0 A_Changeflag("QUICKTORETALIATE",TRUE)
	TNT1 A 0 A_Changeflag("FLOAT",TRUE)
	TNT1 A 0 A_Changeflag("NOGRAVITY",TRUE)
	TNT1 A 0 A_Changeflag("MISSILEMORE",TRUE)
	TNT1 A 0 A_Changeflag("Speed 18",TRUE)
	TNT1 A 0 A_Changeflag("Painchance 164",TRUE)
	TNT1 A 0 A_Changeflag("ALWAYSFAST",TRUE)
    VT2E AABBCCDD 1 FAST A_Chase
	Loop
  Melee:
	TNT1 A 0 A_JumpIfHealthLower(250,"DeathMelee")
	TNT1 A 0 A_Recoil(-10)
    VTRE E 4 A_playsound("authority/attack")
    VTRE E 2 A_FaceTarget
    VTRE F 3 A_CustomMeleeAttack(80,"authority/attack3")
	VTRE G 6
    Goto See
  DeathMelee:
	TNT1 A 0 A_Recoil(-10)
    VTRE E 3 A_playsound("authority/attack")
    VTRE F 2 A_FaceTarget
    VTRE G 3 A_CustomMeleeAttack(80,"authority/attack3")
	TNT1 A 0 A_Recoil(-10)
	VTRE E 3 A_playsound("authority/attack")
    VTRE F 2 A_FaceTarget
    VTRE G 3 A_CustomMeleeAttack(80,"authority/attack3")
	TNT1 A 0 A_Recoil(-10)
	VTRE E 3 A_playsound("authority/attack")
    VTRE F 2 A_FaceTarget
    VTRE G 3 A_CustomMeleeAttack(80,"authority/attack3")
    Goto See
  Missile:
	TNT1 A 0 A_JumpIfHealthLower(50,"Doomwind")
	TNT1 A 0 A_JumpIfHealthLower(750,"Bladewind")
	VTRE E 6 A_FaceTarget
	VTRE F 3 A_CustomComboAttack("HereticBslash", 32, 10 * random(7, 9), "authority/attack")
    VTRE G 6 
	TNT1 A 0 A_JumpIfHealthLower(750,"Flight")
	TNT1 A 0 A_JumpIfHealthLower(250,"SuperFlight")
	TNT1 A 0 A_JumpIfHealthLower(50,"UltraFlight")
	Goto See
  Bladewind:
    VTRE E 3 A_FaceTarget
    VTRE F 3 A_CustomComboAttack("HereticBslash", 32, 10 * random(7, 9), "authority/attack")
	VTRE G 0 Bright A_CustomMissile ("HereticWslash",35,45,15)
	VTRE G 0 Bright A_CustomMissile ("HereticWslash",35,-45,-15)
	VTRE G 6 
	TNT1 A 0 A_JumpIfHealthLower(750,"Flight")
	TNT1 A 0 A_JumpIfHealthLower(250,"SuperFlight")
	TNT1 A 0 A_JumpIfHealthLower(50,"UltraFlight")
    Goto See
  Doomwind:
    VTRE E 3 A_FaceTarget
    VTRE F 3 A_CustomComboAttack("HereticBslash", 32, 10 * random(7, 9), "authority/attack")
	VTRE G 0 Bright A_CustomMissile ("HereticBslash",35,45,15)
	VTRE G 0 Bright A_CustomMissile ("HereticBslash",35,-45,-15)
	VTRE G 6 
	TNT1 A 0 A_JumpIfHealthLower(750,"Flight")
	TNT1 A 0 A_JumpIfHealthLower(250,"SuperFlight")
	TNT1 A 0 A_JumpIfHealthLower(50,"UltraFlight")
    Goto See
  Pain:
    VTRE H 8
    VTRE H 8 A_Pain
	TNT1 A 0 A_JumpIfHealthLower(750,"Flight")
	TNT1 A 0 A_JumpIfHealthLower(250,"SuperFlight")
	TNT1 A 0 A_JumpIfHealthLower(50,"UltraFlight")
    Goto See
  Death:
	TNT1 A 0 A_SetUserVar (user_haloactive, 0)
    VTRE I 8 A_Scream
    VTRE J 6 A_NoBlocking
    VTRE K 16 
	VTRE L 16 
	VTRE MNOPQR 6
	TNT1 A 0 A_PlaySound ("authority/fountain")
	VTRE SSTT 2
	TNT1 A 0 A_PlaySound ("authority/fountain")
	VTRE SSTT 2
	TNT1 A 0 A_PlaySound ("authority/fountain")
	VTRE SSTT 2
	TNT1 A 0 A_PlaySound ("authority/fountain")
	VTRE SSTT 2
	VTRE UV 6 A_BossDeath
    VTRE W -1
    Stop
  Raise:
	Stop
  }
}

ACTOR HereticDollmaykr : Dollmaykr
{
  Health 700
  Radius 20
  Height 56
  Mass 100
  Speed 14
  PainChance 10
  Tag "Dollmaykr"
  Monster
  Species "DollMakyr_Pet"
  Damagetype "DollDamage"
  DamageFactor "UndeadGoHomeImpact", 0
  DamageFactor "Judgement", 0
  DamageFactor "Holy", 0
  DamageFactor "CABladeBeam", 0.25 //Combine arms pistol
  DamageFactor "PlayerVoid", 0.1
  DamageFactor "KissMagic", 4
  DamageFactor "PlayerVoid", 0
  MaxTargetRange 496
  +QUICKTORETALIATE 
  +FLOORCLIP
  +NOTARGET
  +THRUSPECIES
  +NODROPOFF
  +FLOATBOB
  +DONTRIP
  +DONTMORPH
  +BOSSDEATH
  +BOSS
//   FloatBobStrength -0.2
  SeeSound "dollmaykr/sight"
  PainSound "dollmaykr/pain"
  DeathSound "dollmaykr/death"
  ActiveSound "dollmaykr/active"
  Obituary "Elf boy action figures on sale for 99 cents."
  HitObituary "You suck."
	DropItem "CrystalVial", 128
	DropItem "CrystalVial", 128
	DropItem "AngelicHealthBonus" 255
	DropItem "AngelicHealthBonus" 255
	DropItem "AngelicHealthBonus" 255
	DropItem "AngelicHealthBonus" 255
	DropItem "AngelicHealthBonus" 128
	DropItem "AngelicHealthBonus" 32
	DropItem "ArtiTimeBomb", 64
	DropItem "ArtiTomeOfPower", 32, 1
	DropItem "ArtiEgg", 52, 1
	DropItem "DoomguyDoll" ,1
		
  States
  {
  Missile:
	TNT1 A 0 A_Changeflag("FLOAT",TRUE)
	TNT1 A 0 A_Changeflag("NOGRAVITY",TRUE)
	TNT1 A 0 A_Changeflag("NODROPOFF",FALSE)
	TNT1 A 0 A_Stop
  	TNT1 A 0 A_jump (96, "Summon01" )
    DMYR E 0 Bright A_Playsound ("dollmaykr/summon3")
    DMYR E 4 Bright A_FaceTarget
    DMYR F 4 Bright A_VileTarget
    DMYR GHIJKL 8 Bright A_FaceTarget
	DMYR M 16 Bright A_FaceTarget
    DMYR N 8 Bright A_VileAttack("dollmaykr/summon4",random(15,30),0,0,0,"DollDamage")
	TNT1 A 0 A_spawnitemex("HereticDollYarn",random(-50,50),0,62,random(-10,10),random(-10,10),random(5,10))
	DMYR M 8 Bright
	DMYR N 8 Bright A_VileAttack ("dollmaykr/summon4",random(15,30),0,0,1,"DollDamage")
	TNT1 A 0 A_spawnitemex("HereticDollYarn",random(-50,50),0,62,random(-10,10),random(-10,10),random(5,10))
	DMYR LKJ 5 Bright
	Goto Flight
  Summon01: // Spawns 4 dolls
	TNT1 A 0 ThrustThingZ(0,1,0,0)
	DMYR O 1 Bright A_playsound ("dollmaykr/summon1")
    DMYR O 9 Bright
	DMYR PQR 3 Bright
	TNT1 A 0 A_Stop
	TNT1 A 0 Bright A_playsound ("dollmaykr/summon2")
	TNT1 A 0 a_spawnitemex("HereticDollYarn",random(-50,50),0,62,random(-10,10),random(-10,10),random(5,10))
	DMYR ST 4 Bright
	TNT1 A 0 Bright A_playsound ("dollmaykr/summon2")
	TNT1 A 0 A_spawnitemex("HereticDollYarn",random(-40,50),0,62,random(-10,10),random(-10,10),random(5,10))
	DMYR ST 4 Bright
	TNT1 A 0 Bright A_playsound ("dollmaykr/summon2")
	TNT1 A 0 a_spawnitemex("HereticDollYarn",random(-50,50),0,62,random(-10,10),random(-10,10),random(5,10))
	DMYR ST 4 Bright
	TNT1 S 0 Bright A_playsound ("dollmaykr/summon2")
	TNT1 A 0 a_spawnitemex("HereticDollYarn",random(-40,50),0,62,random(-10,10),random(-10,10),random(5,10))
	TNT1 A 0 A_Recoil (-4)
	DMYR RQP 3
	Goto Flight
  }
}

ACTOR HereticDollYarn
{
	Radius 6
	Height 8
	+THRUGHOST
	+THRUSPECIES
	+CANNOTPUSH
	+MOVEWITHSECTOR
	+DONTSPLASH
	+NOBLOCKMAP
	+HEXENBOUNCE
	+DONTBLAST
	+FORCEXYBILLBOARD	
	+LOOKALLAROUND
	+BOUNCEONWALLS
    +BOUNCEONFLOORS
    +BOUNCEONCEILINGS
	+BOUNCEONACTORS
	+RANDOMIZE
	+CLIENTSIDEONLY
	+MISSILE
	GRAVITY 0.15 
	BOUNCECOUNT 20
    BOUNCEFACTOR 0.45
    WALLBOUNCEFACTOR 1.75
	BOUNCEFACTOR 0.75
	Speed 5
    States
    {
	Spawn:
		TNT1 A 0
        PSTG GHIJGHIJGHIJGHIJGHIJ 3 Bright
		PSTG KLMNO 3 Bright
		TNT1 A 0 A_PlaySound ("angel/blink")	
		TNT1 A 0 A_Spawnitemex("TurboDoll",0,0,0,0,0,0,0,SXF_SetMaster)
		Stop
    }
}

Actor HereticSeraphSpawner replaces Minotaur
{
	Health 0x7FFFFFFF
	Radius 0
	Height 0
	DamageFactor "PlayerVoid", 0
	Monster
	+NOBLOCKMAP
	+NOCLIP
	+NOTRIGGER
	+NOTONAUTOMAP
	+BOSSDEATH
	-SHOOTABLE
	-SOLID
	-COUNTKILL

	const int SpawnFlags = SXF_TRANSFERPOINTERS | SXF_TRANSFERAMBUSHFLAG |
		SXF_TRANSFERSPECIAL | SXF_NOCHECKPOSITION;

  States
  {
  Spawn:
  	TNT1 A 0
// 	TNT1 A 0 A_JumpIf(Getcvar("AA_SeraphClothesSpawner") == 0, "SummonCensoredSeraph")
// 	TNT1 A 0 A_JumpIf(Getcvar("AA_SeraphClothesSpawner") == 1, "SummonPureSeraph")
// 	TNT1 A 0 A_JumpIf(Getcvar("AA_SeraphClothesSpawner") == 2, "SummonPureSeraph")
// 	TNT1 A 0 A_JumpIf(Getcvar("AA_SeraphClothesSpawner") == 3, "SummonPureSeraph")
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEX("HereticSeraph",0,0,0, 0, 0,0,0, SXF_NOCHECKPOSITION | SXF_TELEFRAG)
	Goto Bosswait
	SummonCensoredSeraph:
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEX("HereticCensoredSeraph",0,0,0, 0, 0,0,0, SXF_NOCHECKPOSITION | SXF_TELEFRAG)
	Goto Bosswait
	SummonPureSeraph:
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEX("HereticSeraph",0,0,0, 0, 0,0,0, SXF_NOCHECKPOSITION | SXF_TELEFRAG)
	Goto Bosswait
	BossWait:
	TNT1 A 1 A_JumpIfHealthLower(1, "BossDead")
	Loop
	BossDead:
	TNT1 A 1 A_BossDeath
	Stop
	}
}

ACTOR HereticCensoredSeraph : CensoredSeraph
{
	Radius 28
	Height 100
	Health 2500
	Bloodcolor "Red"
	Obituary "Roast elf boy anyone?"
	HitObituary "Roast Elf anyone?"
	DamageFactor "FireMagic", 0.5
	DropItem "CrystalVial", 128
	DropItem "CrystalVial", 128
	DropItem "AngelicHealthBonus" 255
	DropItem "AngelicHealthBonus" 255
	DropItem "AngelicHealthBonus" 255
	DropItem "AngelicHealthBonus" 255
	DropItem "AngelicHealthBonus" 128
	DropItem "AngelicHealthBonus" 32
	DropItem "AngelicHealthBonus" 16
	DropItem "BlasterHefty", 128
	DropItem "ArtiTomeOfPower", 32, 1
	DropItem "ArtiSuperHealth", 51
	DropItem "PhoenixRodAmmo", 84, 10
  States
  {
  Spawn:
	SZPH 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 ("SeraphHalo", 0,0,100, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_SETMASTER)
	Goto SpawnLoop
  SpawnLoop:
    SZPH AB 10 A_Look
    Loop
  See:
    SZPH AABBCCDD 3 A_Chase
	TNT1 A 0 A_Changeflag("FLOAT",TRUE)
	TNT1 A 0 A_Changeflag("NOGRAVITY",TRUE)
    Loop
  Missile:
    SZPH EFG 8 Bright A_FaceTarget
	TNT1 A 0 A_CustomMissile ("Tinyyfireball",10, -45, 0, 4, 0)
	TNT1 A 0 A_CustomMissile ("Tinyyfireball",10, 45, 0, 4, 0)
	TNT1 A 0 A_CustomMissile ("Tinyyfireball",70, -100, 0, 4, 0)
	TNT1 A 0 A_CustomMissile ("Tinyyfireball",70, 100, 0, 4, 0)
	TNT1 A 0 A_CustomMissile ("Tinyyfireball",110, -45, 0, 4, 0)
	TNT1 A 0 A_CustomMissile ("Tinyyfireball",110, 45, 0, 4, 0)
    SZPH H 12 Bright A_FaceTarget
	SZPH I 5 Bright A_CustomMissile ("LoonBlast",73, 0, 0, 4, 0)
    Goto See
  Pain:
    SZPH J 10 A_Pain
    Goto See
  Death:
	TNT1 A 0 A_SetUserVar (user_haloactive, 0)
	TNT1 A 0 A_BossDeath
	SZPH K 10 Bright A_NoBlocking
	SZPH L 10 Bright
	SZPH M 10 Bright A_Scream
	SZPH N 2 Bright A_DropItem ("HereticRedEgg")
	TNT1 A 0 A_playsound ("Seraph/Burn")
	SZPH OPNOPNOPNOP 3 Bright 
	SZPH QRS 4 Bright
	TNT1 A 0 A_Changeflag("DONTFALL",False)
	TNT1 A 0 A_playsound ("seraph/sizzle")
	SZPH TUVWXYZ 4 Bright
	SZ2H AB 4 
	Stop
  }
}

ACTOR HereticSeraph : Seraph
{
	Radius 28
	Height 100
	Health 1000
	Bloodcolor "Red"
	DamageFactor "Fire", 0.5
	DamageFactor "FireMagic", 0.5
	DamageFactor "Ice", 0.5
	Obituary "Roast elf boy anyone?"
	HitObituary "Roast Elf anyone?"
	+NOICEDEATH
	DropItem "CrystalVial", 128
	DropItem "CrystalVial", 128
	DropItem "AngelicHealthBonus" 255
	DropItem "AngelicHealthBonus" 255
	DropItem "AngelicHealthBonus" 255
	DropItem "AngelicHealthBonus" 255
	DropItem "AngelicHealthBonus" 128
	DropItem "AngelicHealthBonus" 32
	DropItem "AngelicHealthBonus" 16
	DropItem "BlasterHefty", 128
	DropItem "ArtiTomeOfPower", 32, 1
	DropItem "ArtiSuperHealth", 51
	DropItem "PhoenixRodAmmo", 84, 10
  States
  {
  Spawn:
	SZPH 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 ("SeraphHalo", 0,0,100, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_SETMASTER)
	Goto SpawnLoop
  SpawnLoop:
    SZPH AB 10 A_Look
    Loop
  See:
    SZPH AABBCCDD 3 A_Chase
	TNT1 A 0 A_Changeflag("FLOAT",TRUE)
	TNT1 A 0 A_Changeflag("NOGRAVITY",TRUE)
    Loop
  Missile:
    SZPH EFG 8 Bright A_FaceTarget
	TNT1 A 0 A_CustomMissile ("Tinyyfireball",10, -45, 0, 4, 0)
	TNT1 A 0 A_CustomMissile ("Tinyyfireball",10, 45, 0, 4, 0)
	TNT1 A 0 A_CustomMissile ("Tinyyfireball",70, -100, 0, 4, 0)
	TNT1 A 0 A_CustomMissile ("Tinyyfireball",70, 100, 0, 4, 0)
	TNT1 A 0 A_CustomMissile ("Tinyyfireball",110, -45, 0, 4, 0)
	TNT1 A 0 A_CustomMissile ("Tinyyfireball",110, 45, 0, 4, 0)
    SZPH H 12 Bright A_FaceTarget
	SZPH I 5 Bright A_CustomMissile ("LoonBlast",73, 0, 0, 4, 0)
    Goto See
  Pain:
    SZPH J 10 A_Pain
    Goto See
  Death:
	TNT1 A 0 A_SetUserVar (user_haloactive, 0)
	LT2S A 10 Bright A_Scream
	LT2S BC 8 Bright
	TNT1 A 0 A_playsound ("seraph/sizzle")
	LT2S DEDEDEDEDE 3 Bright 
	TNT1 A 0 A_playsound ("seraph/sizzle")
	LT2S FG 10 Bright
	LT2S H 15 Bright
	LTG3 A 30 Bright A_FaceTarget
	TNT1 A 0 A_BossDeath
	TNT1 I 0 A_SpawnItemEx ("HereticEve", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_SETMASTER)
	Stop
  }
}

ACTOR HereticEve
{
  Health 2000
  Radius 40
  Height 110
  Mass 5000
  Speed 8
  PainChance 20
  Species "Seraph"
  Tag "Crucified Seraph"
  Monster
  +QUICKTORETALIATE
  +DONTMORPH
  +FLOATBOB
  +DONTFALL
  +DONTHARMCLASS
  +DONTRIP
  +BOSS
//   FloatBobStrength -0.01
  DamageFactor "Judgement", 0
  DamageFactor "UndeadGoHomeImpact", 0
  DamageFactor "Holy", 0
  DamageFactor "FireMagic", 0.5
  DamageFactor "RainbowRip", 0
  DamageFactor "None", 1
  DamageFactor "BFGSplash", 0.5
  DamageFactor "lightning", 0.5
  DamageFactor "Ice", 0
  DamageFactor "Fire", 0.75
  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
  DamageFactor "PlayerVoid", 0
  SeeSound "seraph/sight"
  PainSound "seraph/pain"
  DeathSound "seraph/death"
  ActiveSound "greatseraph/active"
  Obituary "Stripping the Seraph didn't do %o any favors."
	DropItem "CrystalVial", 128
	DropItem "CrystalVial", 128
	DropItem "AngelicHealthBonus" 255
	DropItem "AngelicHealthBonus" 255
	DropItem "AngelicHealthBonus" 255
	DropItem "AngelicHealthBonus" 255
	DropItem "AngelicHealthBonus" 128
	DropItem "AngelicHealthBonus" 32
	DropItem "AngelicHealthBonus" 16
	DropItem "BlasterHefty", 128
	DropItem "ArtiTomeOfPower", 32, 1
	DropItem "ArtiSuperHealth", 51
	DropItem "PhoenixRodAmmo", 84, 10

	var int user_haloactive;

  States
  {
  Spawn:
	LTG3 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 ("SeraphHalo", 0,0,100, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_SETMASTER)
	Goto SpawnLoop
  SpawnLoop:
	TNT1 A 0 A_FaceTarget
    LTG3 ABCD 10 A_Look
    Goto See
  See:
    LTG3 AABB 3 A_Chase
	LTG3 CC 2 A_Chase
	LTG3 DD 3 A_Chase
	TNT1 A 0 A_Changeflag("FLOAT",TRUE)
	TNT1 A 0 A_Changeflag("NOGRAVITY",TRUE)
    Loop
  Missile:
    LTG3 EFG 8 Bright A_FaceTarget
	TNT1 A 0 A_CustomMissile ("Tinyyfireball",15, -45, 0, 4, 0)
	TNT1 A 0 A_CustomMissile ("Tinyyfireball",15, 45, 0, 4, 0)
	TNT1 A 0 A_CustomMissile ("Tinyyfireball",75, -100, 0, 4, 0)
	TNT1 A 0 A_CustomMissile ("Tinyyfireball",75, 100, 0, 4, 0)
	TNT1 A 0 A_CustomMissile ("Tinyyfireball",115, -45, 0, 4, 0)
	TNT1 A 0 A_CustomMissile ("Tinyyfireball",115, 45, 0, 4, 0)
    LTG3 I 12 Bright A_FaceTarget
	LTG3 I 5 Bright A_CustomMissile ("LoonBlast",73, 0, 0, 4, 0)
    Goto See
  Pain:
    LTG3 J 5 A_Pain
	TNT1 A 0 A_CustomMissile ("Evefirefloor",0, 0, 0, 0, 0)
	TNT1 A 0 A_CustomMissile ("Evefirefloor",0, 0, 45, 0, 0)
	TNT1 A 0 A_CustomMissile ("Evefirefloor",0, 0, 135, 0, 0)
	TNT1 A 0 A_CustomMissile ("Evefirefloor",0, 0, -180, 0, 0)
	TNT1 A 0 A_CustomMissile ("Evefirefloor",0, 0, -45, 0, 0)
    Goto See
  Death:
	TNT1 A 0 A_SetUserVar (user_haloactive, 0)
	LTG3 K 10 Bright A_NoBlocking
	LTG3 L 10 Bright A_BossDeath
	SZPH M 10 Bright A_Scream
	SZPH N 2 Bright A_DropItem ("HereticRedEgg")
	TNT1 A 0 A_playsound ("Seraph/Burn")
	SZPH OPNOPNOPNOP 3 Bright 
	SZPH QRS 4 Bright
	TNT1 A 0 A_Changeflag("DONTFALL",False)
	SZPH S 3 Bright
	SZPH TUVWXYZ 4 Bright
	SZ2H AB 4 A_BossDeath
    Stop
  }
}

ACTOR HereticRedEgg : RedEgg
{
	Health 800
	}
	
ACTOR HereticFinalEgg : RedEgg Replaces Sorcerer1
{
  Health 1250
  Radius 20
  Height 56
  Mass 5000
  Speed 14
  PainChance 0
  Tag "Red Egg"
  Monster
  +FLOORCLIP
  +CANNOTPUSH
  +FULLVOLACTIVE
  +DONTRIP
  +NOBLOOD
  +NOBLOODDECALS
  +NOTELEFRAG
  +BOSSDEATH
  DamageFactor "UndeadGoHomeImpact", 0
  DeathSound "egg/death"
  DamageFactor "NoRainbowRip", 1
	
  States
  {
  Spawn:
	REGG A 100
	TNT1 A 0 Bright a_playsound("egg/active")
	REGG B 100
	TNT1 A 0 Bright a_playsound("egg/active")
	REGG C 100
	TNT1 A 0 Bright a_playsound("egg/active")
	REGG D 50 Bright
	REGG D 1 a_playsound("egg/charge") 
	REGG D 49 Bright
	TNT1 A 0 Bright a_playsound("egg/active")
	REGG E 25 Bright
	REGG E 8 a_playsound("egg/charge")
	REGG E 25 Bright
	REGG E 8 a_playsound("egg/charge") 
	REGG E 25 Bright
	REGG E 8 a_playsound("egg/charge")
	REGG E 25 Bright
	TNT1 A 0 a_playsound("egg/charge")
	REGG F 20 Bright
	REGG F 10 a_playsound("egg/charge")
	REGG F 20 Bright
	REGG F 10 a_playsound("egg/charge")
	REGG F 20 Bright
	REGG F 10 a_playsound("egg/charge")
	REGG F 20 Bright
	TNT1 A 0 a_playsound("egg/charge")
	REGG G 10 Bright
	REGG G 5 a_playsound("egg/charge")
	REGG G 10 Bright
	REGG G 5 a_playsound("egg/charge")
	REGG G 10 Bright
	REGG G 5 a_playsound("egg/charge")
	REGG G 10 Bright
	REGG G 5 a_playsound("egg/charge")
	REGG G 10 Bright
	REGG G 5 a_playsound("egg/charge")
	REGG G 10 Bright
	REGG G 5 a_playsound("egg/charge")
	REGG G 10 Bright
	TNT1 A 0 a_playsound("egg/charge")
	REGG H 5 Bright
	REGG H 2 a_playsound("egg/charge")
	REGG H 5 Bright
	REGG H 2 a_playsound("egg/charge")
	REGG H 5 Bright
	REGG H 2 a_playsound("egg/charge")
	REGG H 5 Bright
	REGG H 2 a_playsound("egg/charge")
	REGG H 5 Bright
	REGG H 2 a_playsound("egg/charge")
	REGG H 5 Bright
	REGG H 2 a_playsound("egg/charge")
	REGG H 5 Bright
	REGG H 2 a_playsound("egg/charge")
	REGG H 5 Bright
	REGG H 2 a_playsound("egg/charge")
	REGG H 5 Bright
	REGG H 2 a_playsound("egg/charge")
	REGG H 5 Bright
	REGG H 2 a_playsound("egg/charge")
	REGG H 5 Bright
	REGG H 2 a_playsound("egg/charge")
	REGG H 5 Bright
	REGG H 2 a_playsound("egg/charge")
	REGG H 5 Bright
	REGG H 2 a_playsound("egg/charge")
	REGG H 5 Bright
	REGG H 2 a_playsound("egg/charge")
	REGG H 5 Bright
	REGG H 2 a_playsound("egg/charge")
	TNT1 A 0 a_playsound("egg/live")
	TNT1 A 0 A_NoBlocking
	LASB ABCDEFGHIJ 1 Bright
	TNT1 A 1 A_SpawnItemEX("HereticFinalBoss",10,0,0, 0, 0,0,0, SXF_NOCHECKPOSITION | SXF_TELEFRAG)
	LAS2 ABCDE 1 Bright
	TNT1 A 0 A_Jump(256, "Remove")
	Stop
  Death:
  	REGG N 3 A_NoBlocking
	TNT1 AAAAAAAAAAAAA 0 a_spawnitemex ("Eggshell01",random(-16,16),random(-16,16),42,random(-100,100)/20.0,random(-100,100)/20.0,random(-100,100)/20.0,0)
	TNT1 AAAAAAAAA 0 a_spawnitemex("Eggshell01",0,0,32,random(-10,10),random(-10,10),random(5,10))
	TNT1 AAAAAA 0 a_spawnitemex("Eggshell02",0,0,32,random(-10,10),random(-10,10),random(5,10))
	TNT1 AAAAAAAAAAAAA 0 a_spawnitemex ("Eggshell02",random(-20,20),random(-16,16),42,random(-100,100)/20.0,random(-100,100)/20.0,random(-100,100)/20.0,0)
	TNT1 AAAAAAAAAAAAAAAAAAAA 0 a_spawnitemex("Eggshell03",0,0,32,random(-10,10),random(-10,10),random(5,10))
	TNT1 AAAAAAAAAAAAAAAA 0 a_spawnitemex("Eggshell03",0,0,32,random(-10,10),random(-10,10),random(5,10))
	TNT1 AAAAAAAAAAAAA 0 a_spawnitemex ("Eggshell03",random(-16,16),random(-16,16),42,random(-100,100)/20.0,random(-100,100)/20.0,random(-100,100)/20.0,0)
	TNT1 AAAAAAAAA 0 a_spawnitemex("Eggshell04",0,0,32,random(-10,10),random(-10,10),random(5,10))
	TNT1 AAAAAA 0 a_spawnitemex("Eggshell04",0,0,32,random(-10,10),random(-10,10),random(5,10))
	REGG O 3 A_Scream
	REGG PQRST 3
	REGG U -1 A_BossDeath
	Stop
  Remove:
    TNT1 A 0 A_SetTranslucent(1)  // make it invisible
    TNT1 A 0 A_ChangeFlag("SOLID", 0) // make it non-solid
    TNT1 A 0 A_ChangeFlag("SHOOTABLE", 0) // make it non-shootable
    TNT1 A -1 // An infinite loop to keep the actor in this state
    Stop
	}
}


ACTOR HereticFinalBoss Replaces Sorcerer2
{
  Health 5000
  Radius 40
  Height 110
  Mass 1000
  Speed 16
  PainChance 10
  Bloodcolor "Red"
  Tag "Great Seraph"
  Monster
  +BOSS
  +BOSSDEATH
  +FLOAT
  +NOGRAVITY
  +QUICKTORETALIATE
  +MISSILEMORE
  +NOTARGET
  +NORADIUSDMG
  +DONTMORPH
  +NOICEDEATH
  +NOFEAR
  +CANTSEEK
  +DONTHARMCLASS
  +DONTRIP
  +NOTELEFRAG
  +LOOKALLAROUND
//   FloatBobStrength -0.1
  DamageType "Fire"
  DamageFactor "Fire", 0
  DamageFactor "Ice", 0.5
  DamageFactor "EyePower", 0
  DamageFactor "RainbowRip", 0
  DamageFactor "GoldenGooseDamage", 0
  DamageFactor "TsundereDamage", 0.5 //Substance18's Doomgals
  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 "HunkDamage", 0 //Skelegant's Cosmic Muscle
  damageFactor "HunkDamage", 0
  PainChance "Slicedamage", 0
  damageFactor "Slicedamage", 0
  PainChance "Punchdamage", 0
  damageFactor "Punchdamage", 0
  PainChance "Shockdamage", 0
  damageFactor "Shockdamage", 0
  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 "greatseraph/sight"
  PainSound "seraph/pain"
  DeathSound "seraph/death"
  ActiveSound "seraph/active"
  Obituary "%o was unable to stop the angelic invasion."
	
		var int user_haloactive;

  States
  {
  Spawn:
	SGPH 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 ("GreatSeraphHalo", 0,0,100, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_SETMASTER)
	Goto SpawnLoop
  SpawnLoop:
    SGPH ABCD 10 A_Look
    Loop
  See:
    SGPH AABBCCDD 2 A_Chase
    Loop
  Missile:
	TNT1 A 0 A_Jump (64, "Dooom")
    SGPH EFG 4 Bright A_FaceTarget
	TNT1 A 0 A_CustomMissile ("Tinyyfireball2",15, -45, 0, 4, 0)
	TNT1 A 0 A_CustomMissile ("Tinyyfireball2",15, 45, 0, 4, 0)
	TNT1 A 0 A_CustomMissile ("Tinyyfireball2",75, -100, 0, 4, 0)
	TNT1 A 0 A_CustomMissile ("Tinyyfireball2",75, 100, 0, 4, 0)
	TNT1 A 0 A_CustomMissile ("Tinyyfireball2",115, -45, 0, 4, 0)
	TNT1 A 0 A_CustomMissile ("Tinyyfireball2",115, 45, 0, 4, 0)
	SGPH G 4 Bright
	TNT1 A 0 A_CustomMissile ("Tinyyfireball2",15, -45, 0, 4, 0)
	TNT1 A 0 A_CustomMissile ("Tinyyfireball2",15, 45, 0, 4, 0)
	TNT1 A 0 A_CustomMissile ("Tinyyfireball2",75, -100, 0, 4, 0)
	TNT1 A 0 A_CustomMissile ("Tinyyfireball2",75, 100, 0, 4, 0)
	TNT1 A 0 A_CustomMissile ("Tinyyfireball2",115, -45, 0, 4, 0)
	TNT1 A 0 A_CustomMissile ("Tinyyfireball2",115, 45, 0, 4, 0)
	SGPH G 4 Bright
	TNT1 A 0 A_CustomMissile ("Tinyyfireball2",15, -45, 0, 4, 0)
	TNT1 A 0 A_CustomMissile ("Tinyyfireball2",15, 45, 0, 4, 0)
	TNT1 A 0 A_CustomMissile ("Tinyyfireball2",75, -100, 0, 4, 0)
	TNT1 A 0 A_CustomMissile ("Tinyyfireball2",75, 100, 0, 4, 0)
	TNT1 A 0 A_CustomMissile ("Tinyyfireball2",115, -45, 0, 4, 0)
	TNT1 A 0 A_CustomMissile ("Tinyyfireball2",115, 45, 0, 4, 0)
    SGPH H 8 Bright A_FaceTarget
	SGPH I 5 Bright A_CustomMissile ("LoonBlastFast",75, 0, 0, 4, 0)
	SGPH H 4 Bright A_FaceTarget
	SGPH I 5 Bright A_CustomMissile ("LoonBlast",75, 0, 0, 4, 0)
	SGPH H 4 Bright A_FaceTarget
	SGPH I 5 Bright A_CustomMissile ("LoonBlastFast",75, 0, 0, 4, 0)
    Goto See
   Dooom:
	SGPH EFG 4 Bright A_FaceTarget
	TNT1 A 0 A_CustomMissile ("HereticLoonBomb",15, -45, 0, 4, 0)
	TNT1 A 0 A_CustomMissile ("HereticLoonBomb",15, 45, 0, 4, 0)
	TNT1 A 0 A_CustomMissile ("HereticLoonBomb2",75, -100, 0, 4, 0)
	TNT1 A 0 A_CustomMissile ("HereticLoonBomb2",75, 100, 0, 4, 0)
	TNT1 A 0 A_CustomMissile ("HereticLoonBomb",115, -45, 0, 4, 0)
	TNT1 A 0 A_CustomMissile ("HereticLoonBomb",115, 45, 0, 4, 0)
	SGPH G 4 Bright
    SGPH H 8 Bright A_FaceTarget
	SGPH I 5 Bright A_CustomMissile ("LoonBlast",75, 0, 0, 4, 0)
	SGPH H 4 A_FaceTarget
	SGPH I 5 Bright A_CustomMissile ("LoonBlastFast",75, 0, 0, 4, 0)
	SGPH H 4 A_FaceTarget
	SGPH I 5 Bright A_CustomMissile ("LoonBlast",75, 0, 0, 4, 0)
  Pain:
    SGPH J 10 A_Pain
    Goto See
  Death:
  	SGPH K 10 Bright A_NoBlocking
	SGPH L 10 Bright A_BossDeath
	SGPH M 10 Bright A_Scream
	SGPH N 2 Bright
	TNT1 A 0 A_playsound ("Seraph/Burn")
	SGPH OPNOPNOPNOP 3 Bright
	SGPH QRS 4 Bright
	SGPH TUVWXYZ 4
	SG8H AB 4 A_BossDeath
    Stop
  }
}

ACTOR HereticLoonBomb
{
  Radius 11
  Height 8
  Speed 8
  Damage 20
  Projectile
  +RANDOMIZE
  +DEHEXPLOSION
  +ROCKETTRAIL
  +SEEKERMISSILE
  +NOCLIP
  +NOINTERACTION
  SeeSound "seraph/attack3"
  DeathSound "seraph/attack4"
  Alpha 0.1
  States
  {
  Spawn:
    PNUK A 25 Bright A_SEEKERMISSILE(10, 10)
	TNT1 A 1 A_PlaySound ("seraph/attack4")
    PNUK B 6 Bright A_Explode
	PNUK CD 5 Bright A_SEEKERMISSILE(10, 10)
	PNUK EFG 4 Bright A_SEEKERMISSILE(10, 10)
	PNUK HI 2 Bright A_SEEKERMISSILE(10, 10)
	TNT1 A 0 A_Jump (4, 2)
    Loop
  Death:
	TNT1 A 1 A_PlaySound ("seraph/attack4")
	PNUK AB 6 Bright 
	PNUK C 6 Bright A_Explode
	PNUK D 5 Bright
	PNUK EFG 4 Bright
	PNUK HI 2 Bright
	TNT1 A 0 A_DropItem ("SkullRodHefty", 1, 64)
	TNT1 A 0 A_DropItem ("BlasterHefty", 1, 128)
	TNT1 A 0 A_DropItem ("BlasterHefty", 1, 128)
	TNT1 A 0 A_DropItem ("ArtiSuperHealth", 1, 8)
	TNT1 A 0 A_DropItem ("ArtiTomeOfPower", 1, 8)
    Stop
  }
}

ACTOR HereticLoonBomb2
{
  Radius 11
  Height 8
  Speed 8
  Damage 20
  Projectile
  +RANDOMIZE
  +DEHEXPLOSION
  +ROCKETTRAIL
  +SEEKERMISSILE
  +NOCLIP
  +NOINTERACTION
  SeeSound "seraph/attack3"
  DeathSound "seraph/attack4"
  Alpha 0.1
  States
  {
  Spawn:
    PNUK A 25 Bright A_Tracer2
	TNT1 A 1 A_PlaySound ("seraph/attack4")
    PNUK B 6 Bright A_Explode
	PNUK CD 5 Bright A_Tracer2
	PNUK EFG 4 Bright A_Tracer2
	PNUK HI 2 Bright A_Tracer2
	TNT1 A 0 A_Jump (4, 2)
    Loop
  Death:
	TNT1 A 1 A_PlaySound ("seraph/attack4")
	PNUK AB 6 Bright 
	PNUK C 6 Bright A_Explode
	PNUK D 5 Bright
	PNUK EFG 4 Bright
	PNUK HI 2 Bright
	TNT1 A 0 A_DropItem ("SkullRodHefty", 1, 64)
	TNT1 A 0 A_DropItem ("BlasterHefty", 1, 128)
	TNT1 A 0 A_DropItem ("BlasterHefty", 1, 128)
	TNT1 A 0 A_DropItem ("ArtiSuperHealth", 1, 8)
	TNT1 A 0 A_DropItem ("ArtiTomeOfPower", 1, 8)
    Stop
  }
}



///////////////////////////////

ACTOR HereticSstatueSet01 : RandomSpawner replaces "Barrel"
{
  +NOBLOCKMAP
  +NOSECTOR
  +NOGRAVITY
  +THRUACTORS
	DropItem "StatueBarrel" 255, 40
    DropItem "ForgottenMaiden01" 255, 1
	DropItem "ForgottenMaiden02" 255, 1
	DropItem "ForgottenMaiden03" 255, 1
}

ACTOR StatueBarrel
{
  Radius 12
  Height 32
  +SOLID
  States
  {
  Spawn:
    BARL A -1
    Stop
  }
}

ACTOR HereticSstatueSet02 : RandomSpawner replaces "SmallPillar"
{
  +NOBLOCKMAP
  +NOSECTOR
  +NOGRAVITY
  +THRUACTORS
	DropItem "StatueSmallPillar" 255, 220
    DropItem "ForgottenMaiden01" 255, 10
	DropItem "ForgottenMaiden02" 255, 10
	DropItem "ForgottenMaiden03" 255, 15
	DropItem "ForgottenMaiden06" 255, 1
}

ACTOR StatueSmallPillar
{
  Radius 16
  Height 34
  +SOLID
  States
  {
  Spawn:
    SMPL A -1
    Stop
  }
}

///////////////Bullets/////////////

ACTOR HereticWaterBall : WaterBall
{
	Damage 1
}

ACTOR HereticTrickyWaterBall : TrickyWaterBall
{
	Damage 1
}

ACTOR HereticArrow1 : Arrow1
{
  Speed 25
  FastSpeed 45
  Damage (15)
}

ACTOR HereticWslash : Wslash
{
  Damage 3
}

ACTOR HereticBslash : Bslash
{
  Damage 6
}

ACTOR HereticLightningball : Lightningball
{
  Damage 3
}

ACTOR HereticTinylightning : Tinylightning
{
  Damage 1
}

ACTOR MedusaCurse  : CustomInventory Replaces ArtiEgg
{
  +COUNTITEM
  +FLOATBOB
  +INVENTORY.INVBAR
  +INVENTORY.PICKUPFLASH
  +INVENTORY.FANCYPICKUPSOUND
  Inventory.Icon "ARTIEGGC"
  Inventory.PickupSound "misc/p_pkup"
  Inventory.PickupMessage "Medusa's Curse"
  Inventory.DefMaxAmount
  Tag "$TAG_ARTIEGG"
  States
  {
  Spawn:
    EGGC ABCB 6
    Loop
  Use:
    TNT1 A 0 A_FireCustomMissile("InstaStone", -15, 0, 0, 0, 1)
    TNT1 A 0 A_FireCustomMissile("InstaStone", -7.5, 0, 0, 0, 1)
    TNT1 A 0 A_FireCustomMissile("InstaStone", 0, 0, 0, 0, 1)
    TNT1 A 0 A_FireCustomMissile("InstaStone", 7.5, 0, 0, 0, 1)
    TNT1 A 0 A_FireCustomMissile("InstaStone", 15, 0, 0, 0, 1)
    Stop
  }
}


