Actor AbyssalSatyr 30317
{
//$Category Monsters/HEM
//$Sprite OSSTA1
//$Title "Abyssal Satyr"
Monster
Health 7666 //13666
GibHealth 3000
Height 110
Radius 40
Mass 1000
Speed 6
Scale 1.8
BloodColor "Purple"
MinMissileChance 64//160
MeleeRange 80
MeleeThreshold 120
Painchance 64
Painchance "Legendary", 256
PainChance "Explosion", 200
PainChance "NuclearFire", 200
Painchance "Mine", 256
Painchance "Crush", 256
Painchance "BFG9500Ball", 256
Painchance "BFGSplash", 256
Painchance "UpBFG9500Ball", 256
Painchance "UpBFGSplash", 256
PainChance "PlayerDevBall", 256
PainChance "PlayerDevBall2", 256
PainChance "BFG10K", 256
PainChance "PDTBFG", 256
+BOSS
+NOFEAR
+BOSSDEATH
+NOICEDEATH
+NOTIMEFREEZE
+NOTELEFRAG
+DONTMORPH
+DONTBLAST
+TELESTOMP
+NORADIUSDMG
+NOTARGET
+NOINFIGHTING
+FLOORCLIP
+NEVERRESPAWN
+FASTMELEE
+MISSILEMORE
+MISSILEEVENMORE
+QUICKTORETALIATE
+DONTHURTSPECIES
+DONTHARMSPECIES
Species "SatanGuard"
Species "AbyssalSatyr"
Damagetype "AbyssalSatyr"
Damagefactor "Melee", 0.05
Damagefactor "Acid", 0.05
Damagefactor "Fire", 0.0
DamageFactor "Ice", 0.0
Damagefactor "Poison", 0.0
Damagefactor "PoisonCloud", 0.0
Damagefactor "Electric", 0.001
Damagefactor "Disintegrate", 0.001
DamageFactor "DrainLife", 0.0
Damagefactor "NuclearFire", 0.02
Damagefactor "Explosion", 0.15
Damagefactor "Mine", 0.15
DamageFactor "Extreme", 0.0
DamageFactor "PyroShot", 0.0
DamageFactor "PDTPuff", 0.0
DamageFactor "DBFG10K", 0.015
DamageFactor "DBFG10K2", 0.015
DamageFactor "DBFG", 0.015
DamageFactor "DBFG2", 0.015
DamageFactor "Player", 0.0
DamageFactor "Players", 0.02
DamageFactor "PlayerPyro", 0.0
DamageFactor "PlayerBHole", 0.05
DamageFactor "PlayerDBFG", 0.015
DamageFactor "PlayerDBFG2", 0.015
DamageFactor "PlayerDBFG10K", 0.015
DamageFactor "PlayerDBFG10K2", 0.015
DamageFactor "BFG9500Ball", 0.25
DamageFactor "BFGSplash", 0.25
DamageFactor "UpBFG9500Ball", 0.25
DamageFactor "UpBFGSplash", 0.15
DamageFactor "PDTBFG", 0.03
DamageFactor "PDTBFGTracer", 0.03
DamageFactor "PlayerDevBall", 0.02
DamageFactor "PlayerDevBall2", 0.02
DamageFactor "PlayerDevTracer", 0.02
DamageFactor "Legendary", 0.015
DamageFactor "LegendaryPlayer", 0.015
DamageFactor "PlayerHellfire", 0.1
DamageFactor "SuperWeapon", 0.0
DamageFactor "LegendaryGuruPlayer", 0.015
DamageFactor "PlayerNemesisPlasma", 0.3
DamageFactor 0.4
//No infighting   //when you say copy-paste is bad yet you still do it
DamageFactor "AbyssalSatyr", 0.0
DamageFactor "SatanGuard", 0.0
Damagefactor "Moloch", 0.0
Damagefactor "Exos", 0.0
Damagefactor "ZombieDev", 0.0
DamageFactor "Terminator", 0.0
DamageFactor "Legendary1", 0.0
DamageFactor "LegendaryGuru", 0.0
Damagefactor "UltimateLegendary", 0.0
Damagefactor "VileFires", 0.0
Damagefactor "Heterodox", 0.0
Damagefactor "Damned", 0.0
Damagefactor "Nobles", 0.0
Damagefactor "DarkBruiserBFG10K", 0.0
DamageFactor "Cybers", 0.0
DamageFactor "Hell", 0.0
DamageFactor "Commander", 0.0
DamageFactor "Baby15K", 0.0
DamageFactor "Cyber10K", 0.0
DamageFactor "DemolisherEx", 0.0
DamageFactor "DarkDemoEx", 0.0
DamageFactor "CerChainguns", 0.0
DamageFactor "CerEnergyBall", 0.0
DamageFactor "LegMind", 0.0
DamageFactor "BeheComet", 0.0
DamageFactor "UBDTR", 0.0
DamageFactor "NobleComet", 0.0
DamageFactor "CacoComet", 0.0
DamageFactor "CadaverRocket", 0.0
DamageFactor "HellComet", 0.0
DamageFactor "HFCyber", 0.0
DropItem "BossLifeEssence", 256, 225
DropItem "NemesisArmorBonus64", 256
SeeSound "ASatyr/see"
PainSound "ASatyr/pain"
DeathSound "ASatyr/death"
ActiveSound "ASatyr/active"
Obituary "%o was taken to the Styx River by the Abyssal Satyr."
HitObituary "The Abyssal Satyr ate %o's heart."
Tag "\c[s9]Abyssal Satyr\c-"
var int user_music;
var int user_lightlevel;
var int user_currenthp;
var int user_lcounter;
var int user_Scounter;
var int user_Icounter;
var int user_Dcounter;
var int user_ammodh;
var int user_gotoshield;
States
	{
	Spawn:
		OSST A 1
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_SetUserVar("user_ammodh",0)
		TNT1 A 0 A_SetUserVar("user_Scounter",0)
		TNT1 A 0 A_SetUserVar("user_Icounter",0)
		TNT1 A 0 A_SetUserVar("user_Dcounter",0)
		TNT1 A 0 A_SetUserVar("user_gotoshield",0)
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		TNT1 A 0 A_GiveInventory("IsAnAbyssalSatyr",1)
	SpawnLoop:
		OSST A 10 A_Look
		TNT1 A 0 A_JumpIf(user_currenthp > ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"),"Idle")
		Loop
	Idle:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_ChangeFlag(THRUSPECIES,0)
		TNT1 A 0 A_SetUserVar("user_ammodh",0)
		TNT1 A 0 A_SetUserVar("user_Scounter",0)
		TNT1 A 0 A_SetUserVar("user_Icounter",0)
		TNT1 A 0 A_SetUserVar("user_Dcounter",0)
		TNT1 A 0 A_GiveInventory("ResetMonsterInvul",1)
	IdleLoop:
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		OSST AAA 2 A_Wander
		TNT1 A 0 A_Look
		OSST BBB 2 A_Wander
		TNT1 A 0 A_Look
		TNT1 A 0 A_SpawnItemEx("BigHoofStep",0,0,5,0,0,-20)
		OSST CCC 2 A_Wander
		TNT1 A 0 A_Look
		OSST DDD 2 A_Wander
		TNT1 A 0 A_Look
		TNT1 A 0 A_SpawnItemEx("BigHoofStep",0,0,5,0,0,-20)
		Loop
	See:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_GiveInventory("ResetMonsterInvul",1)
		TNT1 A 0 A_SetUserVar("user_lcounter",0)
	SeeLoop:
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		TNT1 A 0 A_JumpIf(user_music == 1,3)
		TNT1 A 0 ACS_NamedExecuteAlways("StartMonsterMusic",0,811)
		TNT1 A 0 A_SetUserVar("user_music",1)
		TNT1 A 0 ACS_NamedExecuteAlways("Hem_LightOnMap",0,1,64)
		OSST AAA 2 A_Chase
		TNT1 A 0 A_Chase
		OSST BBB 2 A_Chase
		TNT1 A 0 A_Chase
		TNT1 A 0 A_SpawnItemEx("BigHoofStep",0,0,5,0,0,-20)
		OSST CCC 2 A_Chase
		TNT1 A 0 A_Chase
		OSST DDD 2 A_Chase
		TNT1 A 0 A_Chase
		TNT1 A 0 A_SpawnItemEx("BigHoofStep",0,0,5,0,0,-20)
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"RandomSpawnHighChance2")
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter+1)
		TNT1 A 0 A_JumpIf(user_lcounter > 25,"Chase")
		Loop
	Chase:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		TNT1 A 0 A_SetUserVar("user_lcounter",1)
		TNT1 A 0 A_GiveInventory("ReturnToChase",1)
		TNT1 A 0 A_Jump(256,"AbyssalImps","Advisors")
	ChaseReturn:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("ReturnToChase",1)
	ChaseLoop1:
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		OSST AAA 2 A_Chase("Melee","")
		TNT1 AA 0 A_Chase("Melee","")
		OSST BBB 2 A_Chase("Melee","")
		TNT1 AA 0 A_Chase("Melee","")
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"ObsidianTurrets")
		TNT1 A 0 A_SpawnItemEx("BigHoofStep",0,0,5,0,0,-20)
		OSST CCC 2 A_Chase("Melee","")
		TNT1 AA 0 A_Chase("Melee","")
		OSST DDD 2 A_Chase("Melee","")
		TNT1 AA 0 A_Chase("Melee","")
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"ObsidianTurrets")
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter+1)
		TNT1 A 0 A_JumpIf(user_lcounter < 25,"ChaseLoop1")
	Chase2:
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		TNT1 A 0 A_SetUserVar("user_lcounter",1)
	ChaseLoop2:
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		OSST AAA 2 A_Chase
		TNT1 AAA 0 A_Chase
		OSST BBB 2 A_Chase
		TNT1 AAA 0 A_Chase
		TNT1 A 0 A_SpawnItemEx("BigHoofStep",0,0,5,0,0,-20)
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"RandomSpawnHighChance2")
		OSST CCC 2 A_Chase
		TNT1 AAA 0 A_Chase
		OSST DDD 2 A_Chase
		TNT1 AAA 0 A_Chase
		TNT1 A 0 A_SpawnItemEx("BigHoofStep",0,0,5,0,0,-20)
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"RandomSpawnHighChance2")
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter+1)
		TNT1 A 0 A_JumpIf(user_lcounter < 25,"ChaseLoop2")
		Goto See
	Melee:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		OSST EEEEFFFFGGG 1 A_FaceTarget
		OSST G 1 A_CustomMeleeAttack(random(100,500),"stoneimp/hit","None","Stun")
		TNT1 A 0 A_JumpIfInTargetLOS("Pullout",90,JLOSF_DEADNOJUMP,90)
		Goto NoPullout
	Pullout:
		TNT1 A 0 A_GiveToTarget("SlowDownMode",1)
		TNT1 A 0 A_GiveToTarget("HemHideweapon2",1)
		TNT1 A 0 A_GiveToTarget("HemTakeAmmo",1)
	NoPullout:
		OSST GFFEE 2
		TNT1 A 0 A_Jump(128,"ShadowRift")
		GoTo See
	Missile:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_ChangeFlag(THRUSPECIES,0)
		TNT1 A 0 A_GiveInventory("ResetMonsterInvul",1)
		TNT1 A 0 A_JumpIfHealthLower((ACS_NamedExecuteWithResult("Hem_SpawnHealth")*0.13),"Rage")
		TNT1 A 0 A_GiveInventory("ReturnToMissile",1)
		TNT1 A 0 A_JumpIfHealthLower((ACS_NamedExecuteWithResult("Hem_SpawnHealth")*0.33),"RandomSpawnHighChance")
		TNT1 A 0 A_JumpIfHealthLower((ACS_NamedExecuteWithResult("Hem_SpawnHealth")*0.66),"RandomSpawn")
	Missile2:
		TNT1 A 0 A_TakeInventory("ReturnToMissile",1)
		TNT1 A 0 A_JumpIfTargetInLOS("VeryFarRange",90,JLOSF_CLOSENOJUMP|JLOSF_DEADNOJUMP|JLOSF_TARGETLOS,0,1500)
		TNT1 A 0 A_JumpIfTargetInLOS("FarRange",90,JLOSF_CLOSENOJUMP|JLOSF_DEADNOJUMP|JLOSF_TARGETLOS,0,1000)
		TNT1 A 0 A_JumpIfTargetInLOS("LongRange",90,JLOSF_CLOSENOJUMP|JLOSF_DEADNOJUMP|JLOSF_TARGETLOS,0,800)
		TNT1 A 0 A_JumpIfTargetInLOS("NearRange",90,JLOSF_CLOSENOJUMP|JLOSF_DEADNOJUMP|JLOSF_TARGETLOS,0,500)
		TNT1 A 0 A_JumpIfTargetInLOS("Normal",90,JLOSF_DEADNOJUMP|JLOSF_TARGETLOS,500,0)
	Missile3:
		TNT1 A 0 A_Jump(128,"ObsidianTurrets","RandomSpawnHighChance2")
	Missile4:
		TNT1 A 0 A_MonsterRefire(0,"Chase")
	Normal:
		TNT1 A 0
		TNT1 A 0 A_SetUserVar("user_lcounter",0)
	NormalLoop:
		OSST EEEEFFFF 1 A_FaceTarget(45)
		OSST GGG 1 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("ObsidianPurpleFireball",82,0,random(6,12),CMF_TRACKOWNER)
		OSST RQP 4
		OSST QQQQQ 1 A_FaceTarget
		OSST RRR 1 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("ObsidianPurpleFireball",82,0,random(-12,-6),CMF_TRACKOWNER)
		OSST GFE 5
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter+1)
		TNT1 A 0 A_JumpIf(user_lcounter > 2,"NormalCA")
		TNT1 A 0 A_JumpIfTargetInLOS("NormalLoop",360,JLOSF_CLOSENOJUMP|JLOSF_DEADNOJUMP|JLOSF_TARGETLOS,500,80)
		TNT1 A 0 A_JumpIfTargetInLOS("Melee",360,JLOSF_DEADNOJUMP|JLOSF_TARGETLOS,100,0)
		TNT1 A 0 A_JumpIfTargetInLOS("NormalCA",360,JLOSF_DEADNOJUMP|JLOSF_TARGETLOS,1000,0)
		TNT1 A 0 A_Jump(160,"See")
	NormalCA:
		TNT1 A 0 A_Jump(60,"DarkFireballsCA")
		OSST EEEE 1 A_FaceTarget(45)
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST EEEE 1 A_FaceTarget
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST EEEE 1 A_FaceTarget
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST EEEE 1 A_FaceTarget
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST EEEE 1 A_FaceTarget
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST EEEE 1 A_FaceTarget
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST FFFF 1 A_FaceTarget
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST GGG 1 Bright A_FaceTarget
		TNT1 A 0 A_MonsterRefire(0,"NormalNV")
	NormalNV:
		TNT1 AAAAAAAAAAAAA 0 A_CustomMissile("ObsidianPurpleFireball",82,0,random(-4,4),CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-1.0,1.0))
		OSST RQP 4
		TNT1 A 0 A_JumpIfHealthLower((ACS_NamedExecuteWithResult("Hem_SpawnHealth")*0.25),"Teleport1")
		GoTo See
	NearRange:
		TNT1 A 0 A_Jump(256,"Comets","ObsidianTracers")
		Goto Normal
	LongRange:
		TNT1 A 0 A_Jump(256,"DarkFireBalls","Comets")
		Goto Normal
	FarRange:
		TNT1 A 0 A_Jump(256,"ShadowRiftSpread","DarkFireBalls")
		Goto Normal
	VeryFarRange:
		TNT1 A 0 A_Jump(256,"ObsidianStakesLongRange","ObsidianTurrets")
		Goto Normal
	Rage:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		TNT1 A 0 A_Jump(256,"DarkFireBalls","Comets","ShadowRiftSpread","ObsidianTracers","ObsidianTurrets","ObsidianStakesLongRange","AbyssalImps","Advisors")
		Goto See
	RandomSpawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(64,"AbyssalImps","Advisors")
		GoTo Missile2
	RandomSpawnHighChance:
		TNT1 A 0
		TNT1 A 0 A_Jump(128,"AbyssalImps","Advisors")
		GoTo Missile2
	RandomSpawnHighChance2:
		TNT1 A 0
		TNT1 A 0 A_Jump(128,"AbyssalImps","Advisors")
		GoTo Missile4
	ObsidianStakes:
		OSST E 1 Bright A_FaceTarget
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 A_ChangeFlag(THRUSPECIES,1)
		OSST EEEEE 4 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		TNT1 A 0 Radius_Quake(50,200,0,24,0)	
		OSST GGGGG 2 Bright A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ObsidianStakesSpawn",random(-256,256),random(-256,256),0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_ABSOLUTEPOSITION,128)
		TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ObsidianStakesSpawn",random(-256,256),random(-256,256),0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_ABSOLUTEPOSITION,128)
		TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ObsidianStakesSpawn",random(-256,256),random(-256,256),0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_ABSOLUTEPOSITION,128)
		OSST RRRRQQQQPPPP 2 Bright A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ObsidianStakesSpawn",random(-360,360),random(-360,360),0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_ABSOLUTEPOSITION,128)
		TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ObsidianStakesSpawn",random(-360,360),random(-360,360),0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_ABSOLUTEPOSITION,128)
		TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ObsidianStakesSpawn",random(-360,360),random(-360,360),0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_ABSOLUTEPOSITION,128)
		OSST FFFFFFFFFFF 2 Bright A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ObsidianStakesSpawn",random(-480,480),random(-480,480),0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_ABSOLUTEPOSITION|SXF_SETMASTER,128)
		TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ObsidianStakesSpawn",random(-480,480),random(-480,480),0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_ABSOLUTEPOSITION|SXF_SETMASTER,128)
		TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ObsidianStakesSpawn",random(-480,480),random(-480,480),0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_ABSOLUTEPOSITION|SXF_SETMASTER,128)
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		OSST FR 4 Bright A_FaceTarget
		OSST RRQQPP 2 Bright A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		TNT1 A 0 A_UnSetInvulnerable
		TNT1 A 0 A_JumpIfHealthLower((ACS_NamedExecuteWithResult("Hem_SpawnHealth")*0.25),"Teleport1")
		Goto See
	DarkFireballs:
		OSST EEEEFFFF 1 A_FaceTarget
		OSST GGG 1 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("AbyssalSatyrDarkFireball",82,0,random(6,12),CMF_TRACKOWNER)
		OSST RQP 4
		OSST QQQQQ 1 A_FaceTarget
		OSST RRR 1 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("AbyssalSatyrDarkFireball",82,0,random(-12,-6),CMF_TRACKOWNER)
		OSST GFE 5
		TNT1 A 0 A_Jump(160,"See")
	DarkFireballsCA:
		TNT1 A 0 A_SetInvulnerable
		OSST EEEE 1 A_FaceTarget
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST EEEE 1 A_FaceTarget
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST EEEE 1 A_FaceTarget
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST EEEE 1 A_FaceTarget
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST EEEE 1 A_FaceTarget
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST EEEE 1 A_FaceTarget
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST FFFF 1 A_FaceTarget
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST GGG 1 Bright A_FaceTarget
		TNT1 A 0 A_MonsterRefire(0,"DarkFireballsNV")
	DarkFireballsNV:
		TNT1 AAAAAAAAAAAAA 0 A_CustomMissile("AbyssalSatyrDarkFireball",82,0,random(-4,4),CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		OSST RQP 4
		TNT1 A 0 A_UnSetInvulnerable
		TNT1 A 0 A_JumpIfHealthLower((ACS_NamedExecuteWithResult("Hem_SpawnHealth")*0.25),"Teleport1")
		GoTo See
	Comets:
		OSST EEEEFFFF 1 A_FaceTarget(45)
		OSST GGG 1 Bright A_FaceTarget
		TNT1 AA 0 A_CustomMissile("ASComet",82,0,random(0,6),CMF_TRACKOWNER)
		OSST RQP 4
		OSST QQQQQ 1 A_FaceTarget
		OSST RRR 1 Bright A_FaceTarget
		TNT1 AA 0 A_CustomMissile("ASComet",82,0,random(-6,0),CMF_TRACKOWNER)
		OSST GFE 5
		TNT1 A 0 A_Jump(160,"See")
		TNT1 A 0 A_SetInvulnerable
		OSST EEEE 1 A_FaceTarget
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST EEEE 1 A_FaceTarget
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST EEEE 1 A_FaceTarget
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST EEEE 1 A_FaceTarget
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST EEEE 1 A_FaceTarget
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST EEEE 1 A_FaceTarget
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST FFFF 1 A_FaceTarget
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST GGG 1 Bright A_FaceTarget
		TNT1 A 0 A_MonsterRefire(0,"CometsNV")
	CometsNV:
		TNT1 AAAAAAAAAAAAA 0 A_CustomMissile("ASComet",82,0,random(-3,3),CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-1.0,1.0))
		OSST RQP 4
		TNT1 A 0 A_UnSetInvulnerable
		GoTo See
	ObsidianTracers:
		OSST EEEEFFFF 1 A_FaceTarget(45)
		OSST GGG 1 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("ObsidianTracer",82,0,-8,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		OSST RQP 4
		OSST QQQQQ 1 A_FaceTarget
		OSST RRR 1 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("ObsidianTracer",82,0,8,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		OSST GFE 5
		TNT1 A 0 A_Jump(160,"See")
		TNT1 A 0 A_SetInvulnerable
		OSST EEEE 1 A_FaceTarget
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST EEEE 1 A_FaceTarget
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST EEEE 1 A_FaceTarget
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST EEEE 1 A_FaceTarget
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST EEEE 1 A_FaceTarget
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST EEEE 1 A_FaceTarget
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST FFFF 1 A_FaceTarget
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST GGG 1 Bright A_FaceTarget
		TNT1 A 0 A_MonsterRefire(0,"ObsidianTracersNV")
	ObsidianTracersNV:
		TNT1 AAAAAA 0 A_CustomMissile("ObsidianTracer",82,0,random(-16,16),CMF_AIMDIRECTION|CMF_TRACKOWNER)
		OSST RQP 4
		TNT1 A 0 A_UnSetInvulnerable
		GoTo See
	ShadowRift:
		OSST EEEEFFFF 1 A_FaceTarget(45)
		OSST GGG 1 Bright A_FaceTarget
		TNT1 AA 0 A_CustomMissile("GroundShadowRift",82,0,random(4,15),CMF_AIMDIRECTION|CMF_TRACKOWNER)
		OSST RQP 4
		OSST QQQQQ 1 A_FaceTarget
		OSST RRR 1 Bright A_FaceTarget
		TNT1 AA 0 A_CustomMissile("GroundShadowRift",82,0,random(-15,-4),CMF_AIMDIRECTION|CMF_TRACKOWNER)
		OSST GFE 5
		GoTo See
	ShadowRiftSpread:
		OSST EEEEFFFF 1 A_FaceTarget(45)
		OSST GGG 1 Bright A_FaceTarget
		TNT1 AA 0 A_CustomMissile("GroundShadowRift",82,0,random(4,15),CMF_AIMDIRECTION|CMF_TRACKOWNER)
		OSST RQP 4
		OSST QQQQQ 1 A_FaceTarget
		OSST RRR 1 Bright A_FaceTarget
		TNT1 AA 0 A_CustomMissile("GroundShadowRift",82,0,random(-15,-4),CMF_AIMDIRECTION|CMF_TRACKOWNER)
		OSST GFE 5
		TNT1 A 0 A_SetInvulnerable
		OSST EEEE 1 A_FaceTarget
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST EEEE 1 A_FaceTarget
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST EEEE 1 A_FaceTarget
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST EEEE 1 A_FaceTarget
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST EEEE 1 A_FaceTarget
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST EEEE 1 A_FaceTarget
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST FFFF 1 A_FaceTarget
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST GGG 1 Bright A_FaceTarget
		TNT1 A 0 A_MonsterRefire(0,"ShadowRiftSpreadNV")
	ShadowRiftSpreadNV:
		TNT1 AAAAAAAAAAAAA 0 A_CustomMissile("GroundShadowRift",82,0,random(-22,22),CMF_AIMDIRECTION|CMF_TRACKOWNER)
		OSST RQP 4
		TNT1 A 0 A_UnSetInvulnerable
		GoTo See
	ObsidianTurrets:
		OSST GF 5 A_FaceTarget(45)
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 A_SetUserVar("user_lcounter",1)
	ObsidianTurretsCharge:
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST E 1 A_FaceTarget
		TNT1 A 0 A_VileTarget("ObsidianQuaker")
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter+1)
		TNT1 A 0 A_JumpIf(user_lcounter < 90,"ObsidianTurretsCharge")
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST EEEEEEEE 1 A_FaceTarget
		OSST E 7 A_VileTarget("ObsidianTurretSpawn")
		OSST E 1 A_UnSetInvulnerable
		TNT1 A 0 A_JumpIfHealthLower((ACS_NamedExecuteWithResult("Hem_SpawnHealth")*0.25),"Teleport1")
		GoTo See
	ObsidianStakesLongRange:
		OSST GF 5 A_FaceTarget(45)
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 A_SetUserVar("user_Scounter",0)
		TNT1 A 0 A_SetUserVar("user_lcounter",1)
	ObsidianStakesLongRangeCharge:
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST E 1 A_FaceTarget
		TNT1 A 0 A_VileTarget("ObsidianQuaker")
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter+1)
		TNT1 A 0 A_JumpIf(user_lcounter < 90,"ObsidianStakesLongRangeCharge")
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST EEEEEE 1 A_FaceTarget
		OSST E 1 A_MonsterRefire(8,"ObsidianStakesLongRangeEnd")
		OSST E 1 A_VileTarget("ObsidianStakesRangeSpawn")
	ObsidianStakesLongRangeEnd:
		OSST E 6
		OSST E 1 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		OSST E 1 A_UnSetInvulnerable
		TNT1 A 0 A_JumpIfHealthLower((ACS_NamedExecuteWithResult("Hem_SpawnHealth")*0.25),"Teleport1")
		GoTo See
	Advisors:
		OSST GF 7 A_FaceTarget(45)
		OSST E 1 A_SetInvulnerable
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST E 1 A_Facetarget
		TNT1 A 0 A_Recoil(15)
		OSST EEEEEE 1 A_FaceTarget
		OSST E 1 Bright A_CustomMissile("AdvisorSummoner",82,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		OSST E 4 Bright
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST FG 4
		OSST RQ 5
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST P 6
		TNT1 A 0 A_Facetarget
		OSST P 1 Bright A_CustomMissile("AdvisorSummoner",82,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		OSST P 4 Bright
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST Q 5
		OSST R 4 A_UnSetInvulnerable
		OSST R 1 A_JumpIfHealthLower((ACS_NamedExecuteWithResult("Hem_SpawnHealth")*0.25),"Teleport1")
		TNT1 A 0 A_JumpIfInventory("ReturnToChase",1,"ChaseReturn")
		TNT1 A 0 A_JumpIfInventory("ReturnToMissile",1,"Missile2")
		GoTo See
	AbyssalImps:
		OSST GF 7 A_FaceTarget(45)
		OSST E 1 A_SetInvulnerable
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST E 1 A_Facetarget
		TNT1 A 0 A_Recoil(15)
		OSST EEEEEE 1 A_Facetarget
		OSST E 1 Bright A_CustomMissile("AbyssalImpSummoner",82,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		OSST E 4 Bright
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST FG 4
		OSST RQ 5
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST P 6
		TNT1 A 0 A_Facetarget
		OSST P 1 Bright A_CustomMissile("AbyssalImpSummoner",82,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		OSST P 4 Bright
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST Q 5
		OSST R 4 A_UnSetInvulnerable
		OSST R 1 A_JumpIfHealthLower((ACS_NamedExecuteWithResult("Hem_SpawnHealth")*0.25),"Teleport1")
		TNT1 A 0 A_JumpIfInventory("ReturnToChase",1,"ChaseReturn")
		TNT1 A 0 A_JumpIfInventory("ReturnToMissile",1,"Missile2")
		GoTo See
	Pain.Crush:
		TNT1 A 0
		Goto Teleport1
	Pain.LegendaryGuruPlayer:
	Pain.Legendary:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(FRIENDLY,0)
		TNT1 A 0 ACS_NamedExecuteAlways("Hem_SetSpecies",0,4)
		TNT1 A 0 A_GiveInventory("MonsterInvulnerable",1)
		TNT1 A 0 A_GiveInventory("InfightingCheck",1)
		TNT1 A 0 A_CheckFlag(NOINFIGHTING,2)
		TNT1 A 0 A_Jump(200,"Rage")
	Pain.BFG9500Ball:
	Pain.BFGSplash:
	Pain.UpBFG9500Ball:
	Pain.UpBFGSplash:
	Pain.PlayerDevBall:
	Pain.PlayerDevBall2:
	Pain.BFG10K:
	Pain.PDTBFG:
	Pain.DTBFG10KBall:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(FRIENDLY,0)
		TNT1 A 0 ACS_NamedExecuteAlways("Hem_SetSpecies",0,4)
		Goto Teleport1
	Pain.NuclearFire:
	Pain.Explosion:
	Pain.Mine:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(FRIENDLY,0)
		TNT1 A 0 ACS_NamedExecuteAlways("Hem_SetSpecies",0,4)
		TNT1 A 0 A_SetUserVar("user_gotoshield",1)
		Goto Teleport1
	Pain:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		TNT1 A 0 A_ChangeFlag(FRIENDLY,0)
		TNT1 A 0 ACS_NamedExecuteAlways("Hem_SetSpecies",0,4)
		OSST H 7 A_Pain
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 300,"Shield")
		TNT1 A 0 A_JumpIfCloser(800,"ObsidianStakesRandom")
		TNT1 A 0 A_Jump(64,"ObsidianTurrets")
		Goto Teleport2
	ObsidianStakesRandom:
		TNT1 A 0
		TNT1 A 0 A_JumpIfTargetInLOS("ObsidianTurretsRandom",90,JLOSF_DEADNOJUMP|JLOSF_TARGETLOS)
		TNT1 A 0 A_Jump(138,"ObsidianStakes","ShadowRiftSpread")
		Goto Teleport2
	ObsidianTurretsRandom:
		TNT1 A 0 A_Jump(138,"ObsidianTurrets","ShadowRiftSpread")
		Goto Teleport2
	Teleport2:
		TNT1 A 0 A_JumpIfHealthLower((ACS_NamedExecuteWithResult("Hem_SpawnHealth")*0.25),"Teleport1")
		TNT1 A 0 A_Jump(128,"See")
		TNT1 A 0 A_JumpIfHealthLower((ACS_NamedExecuteWithResult("Hem_SpawnHealth")*0.70),"Teleport1")
		GoTo See
	PainSummon:
		TNT1 A 0
		TNT1 A 0 A_SetUserVar("user_Icounter",0)
		TNT1 A 0 A_Jump(128,"Advisors","AbyssalImps")
		TNT1 A 0 A_JumpIfHealthLower((ACS_NamedExecuteWithResult("Hem_SpawnHealth")*0.25),"Teleport1")
		GoTo See
	Teleport1:
		OSST H 1 A_UnSetShootable
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		TNT1 A 0 A_ChangeFlag(NOBLOCKMAP,1)
		TNT1 A 0 A_ChangeFlag(ThruSpecies,1)
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		OSST HHHHHHHHHH 1 A_FadeOut(0.1,0)
		TNT1 A 2 
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
		TNT1 A 2 A_PlayWeaponSound("boss/teleport")
		TNT1 AAAA 0 A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		TNT1 A 0 A_Facetarget
		OSST DDDDDDDDDD 1 A_FadeIn(0.1)
		TNT1 A 0 A_ChangeFlag(ThruSpecies,0)
		TNT1 A 0 A_ChangeFlag(NOBLOCKMAP,0)
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		OSST D 1 A_SetShootable
		TNT1 A 0 A_JumpIf(user_gotoshield != 0,"Shield")
		Goto See
	Shield:
		TNT1 A 0
		TNT1 A 0 A_SetUserVar("user_gotoshield",0)
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		TNT1 A 0 A_JumpIf(user_Scounter > 1,"ObsidianStakesLongRange")
		TNT1 A 0 A_SetUserVar("user_Scounter",user_Scounter+1)
		TNT1 A 0 A_SetUserVar("user_lcounter",525)
	DowntoFloor:
		TNT1 A 0 A_ChangeFlag(Thruactors,1)
		OSST H 1 Bright A_SpawnItem("AbyssalSatyrFlameSpawner",0,0,0,0)
		TNT1 A 0 A_CheckFloor("Shield2")
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter-1)
		TNT1 A 0 A_JumpIf(user_lcounter < 1,"Shield2")
		Loop
	Shield2:
		TNT1 A 0
		TNT1 A 0 A_Stop
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 A_UnSetShootable
		TNT1 A 0 A_ChangeFlag(Thruactors,0)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner",30,0,0,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner2",30,0,0,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,25)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner3",30,0,0,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,35)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner4",30,0,0,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,45)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner5",30,0,0,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,55)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner",30,0,25,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner2",30,0,25,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,25)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner3",30,0,25,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,35)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner4",30,0,25,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,45)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner5",30,0,25,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,55)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner",30,0,50,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner2",30,0,50,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,25)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner3",30,0,50,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,35)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner4",30,0,50,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,45)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner5",30,0,50,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,55)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner",30,0,75,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner2",30,0,75,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,25)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner3",30,0,75,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,35)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner4",30,0,75,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,45)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner5",30,0,75,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,55)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner",30,0,100,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner2",30,0,100,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,25)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner3",30,0,100,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,35)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner4",30,0,100,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,45)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner5",30,0,100,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,55)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner",30,0,125,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner2",30,0,125,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,25)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner3",30,0,125,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,35)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner4",30,0,125,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,45)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner5",30,0,125,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,55)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner",30,0,150,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner2",30,0,150,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,25)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner3",30,0,150,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,35)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner4",30,0,150,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,45)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner5",30,0,150,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,55)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner",30,0,175,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner2",30,0,175,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,25)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner3",30,0,175,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,35)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner4",30,0,175,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,45)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner5",30,0,175,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,55)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner",30,0,200,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner2",30,0,200,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,25)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner3",30,0,200,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,35)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner4",30,0,200,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,45)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner5",30,0,200,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,55)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner",30,0,225,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner2",30,0,225,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,25)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner3",30,0,225,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,35)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner4",30,0,225,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,45)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner5",30,0,225,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,55)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner",30,0,250,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner2",30,0,250,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,25)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner3",30,0,250,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,35)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner4",30,0,250,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,45)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner5",30,0,250,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,55)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner",30,0,275,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner2",30,0,275,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,25)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner3",30,0,275,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,35)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner4",30,0,275,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,45)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner5",30,0,275,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,55)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner",30,0,300,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner2",30,0,300,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,25)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner3",30,0,300,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,35)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner4",30,0,300,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,45)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner5",30,0,300,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,55)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner",30,0,325,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner2",30,0,325,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,25)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner3",30,0,325,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,35)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner4",30,0,325,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,45)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner5",30,0,325,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,55)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner",30,0,350,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner2",30,0,350,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,25)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner3",30,0,350,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,35)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner4",30,0,350,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,45)
		TNT1 A 0 A_CustomMissile("AbyssalShieldSpawner5",30,0,350,CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_CHECKTARGETDEAD,55)
		OSST G 149 Bright
		TNT1 A 0 Bright A_Blast(BF_DONTWARN|BF_NOIMPACTDAMAGE,255,255,30)
		"####" "#" 0 Bright A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) <= 0,2)
		"####" "#" 1 Bright
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		TNT1 A 0 A_SetShootable
		TNT1 A 0 A_UnSetInvulnerable
		TNT1 A 0 A_JumpIf(user_Icounter > 1,"PainSummon")
		TNT1 A 0 A_SetUserVar("user_Icounter",user_Icounter+1)
		Goto Missile
	Death:
		TNT1 A 0
		OSST H 5 A_Scream
		TNT1 A 0 A_KillChildren
		OSST HHHHHHHHHHHH 1 Bright A_CustomMissile("Kaboom26",random(20,100),random(30,-30),random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AAAA 0 A_CustomMissile("BigPurpleBloodCloud",random(10,100),0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		OSST IJKLMN 4
		TNT1 A 0 ACS_NamedExecuteAlways("Hem_LightOnMap",0,2,64)
		TNT1 A 0 A_Fall
		TNT1 A 0 A_SpawnItemEx("AbyssOrb",0,0,8,random(0,8),random(0,8),2,random(0,360),0,0)
		TNT1 A 0 A_SpawnItemEx("AbyssOrb",0,0,8,random(0,8),random(0,8),2,random(0,360),0,64)
		TNT1 A 0 A_SpawnItemEx("AbyssOrb",0,0,8,random(0,8),random(0,8),2,random(0,360),0,128)
		TNT1 A 0 A_SpawnItemEx("AbyssalCastOrb",0,0,8,random(0,8),random(0,8),2,random(0,360),0,0)
		TNT1 A 0 A_SpawnItemEx("AbyssalCastOrb",0,0,8,random(0,8),random(0,8),2,random(0,360),0,64)
		TNT1 A 0 A_SpawnItemEx("AbyssalCastOrb",0,0,8,random(0,8),random(0,8),2,random(0,360),0,128)
		TNT1 A 0 A_SpawnItemEx("UltraSphere",0,0,8,random(0,8),random(0,8),2,random(0,360),0,128)
		TNT1 A 0 A_SpawnItemEx("SpreadRuneItem",0,0,8,random(0,8),random(0,8),2,random(0,360),0,128)
		TNT1 A 0 A_SpawnItemEx("DemonicChalice",0,0,8,random(0,8),random(0,8),2,random(0,360),0,128)
		TNT1 A 0 A_SpawnItemEx("SkullOfPower",0,0,8,random(0,8),random(0,8),2,random(0,360),0,128)
		TNT1 A 0 A_SpawnItemEx("NemesisSuperSphere",0,0,8,random(0,8),random(0,8),2,random(0,360),0,0)
		TNT1 A 0 A_SpawnItemEx("NemesisArmorSphere",0,0,8,random(0,8),random(0,8),2,random(0,360),0,128)
		TNT1 A 0 A_SpawnItemEx("RingOfRegeneration",0,0,8,random(0,8),random(0,8),2,random(0,360),0,160)
		TNT1 A 0 A_SpawnItemEx("Damned sphere",0,0,8,random(0,8),random(0,8),2,random(0,360),0,224)
		TNT1 A 0 A_SpawnItemEx("Damned sphere",0,0,8,random(0,8),random(0,8),2,random(0,360),0,224)
		TNT1 A 0 A_SpawnItemEx("Damned sphere",0,0,8,random(0,8),random(0,8),2,random(0,360),0,224)
		TNT1 A 0 A_SpawnItemEx("Weakness sphere",0,0,8,random(0,8),random(0,8),2,random(0,360),0,224)
		TNT1 A 0 A_SpawnItemEx("Weakness sphere",0,0,8,random(0,8),random(0,8),2,random(0,360),0,224)
		TNT1 A 0 A_SpawnItemEx("Weakness sphere",0,0,8,random(0,8),random(0,8),2,random(0,360),0,224)
		TNT1 A 0 A_RemoveChildren
		OSST O 63000 CanRaise
		"####" "#" 5 A_FadeOut(0.1,1)
		Wait
	XDeath:
		TNT1 A 0
		OSST H 5 A_Scream
		DSTX ABC 4 A_CustomMissile("BigPurpleBloodCloud",random(10,100),0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		DSTX DEF 3 A_CustomMissile("BigPurpleBloodCloud",random(10,100),0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		DSTX GHI 2 A_CustomMissile("BigPurpleBloodCloud",random(10,100),0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AAAAAA 0 A_CustomMissile("BigPurpleBloodCloud",random(10,100),0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		DSTX J 1 A_KillChildren
		TNT1 AAAAA 0 A_CustomMissile("BigPurpleBloodCloud",random(10,100),0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		DSTX J 1
		TNT1 AAAA 0 A_CustomMissile("BigPurpleBloodCloud",random(10,100),0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		DSTX J 1 ACS_NamedExecuteAlways("Hem_LightOnMap",0,2,64)
		TNT1 AAA 0 A_CustomMissile("BigPurpleBloodCloud",random(10,100),0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		DSTX J 1 A_Fall
		TNT1 AA 0 A_CustomMissile("BigPurpleBloodCloud",random(10,100),0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		DSTX J 1 A_SpawnItemEx("NemesisSuperSphere",0,0,8,random(0,8),random(0,8),2,random(0,360),0,0)
		TNT1 A 0 A_SpawnItemEx("NemesisArmorSphere",0,0,8,random(0,8),random(0,8),2,random(0,360),0,128)
		TNT1 A 0 A_SpawnItemEx("Damned sphere",0,0,8,random(0,8),random(0,8),2,random(0,360),0,128)
		TNT1 A 0 A_SpawnItemEx("Damned sphere",0,0,8,random(0,8),random(0,8),2,random(0,360),0,128)
		TNT1 A 0 A_SpawnItemEx("Damned sphere",0,0,8,random(0,8),random(0,8),2,random(0,360),0,128)
		TNT1 A 0 A_SpawnItemEx("Weakness sphere",0,0,8,random(0,8),random(0,8),2,random(0,360),0,128)
		TNT1 A 0 A_SpawnItemEx("Weakness sphere",0,0,8,random(0,8),random(0,8),2,random(0,360),0,128)
		TNT1 A 0 A_SpawnItemEx("Weakness sphere",0,0,8,random(0,8),random(0,8),2,random(0,360),0,128)
		TNT1 A 0 A_CustomMissile("BigPurpleBloodCloud",random(10,100),0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		DSTX J 1 A_RemoveChildren
		TNT1 A 0 A_BossDeath
		DSTX J 63000 CanRaise
		"####" "#" 5 A_FadeOut(0.1,1)
		Wait
	}
}

Actor IsAnAbyssalSatyr : Inventory { Inventory.MaxAmount 1 }
Actor ReturnToMissile : Inventory { Inventory.MaxAmount 1 }
Actor ReturnToChase : Inventory { Inventory.MaxAmount 1 }

Actor AbyssalSatyrFlameSpawner : RedParticleSpawner
{
+NOTIMEFREEZE
+NOINTERACTION
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 1 Bright A_SpawnItemEx("AbyssalSatyrFlame",random(40,-40),random(40,-40),random(60,100),0,0,random(4,6),0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		Stop
	}
}

ACTOR AbyssalSatyrFlame
{
RenderStyle Add
Scale 0.8
+NOTIMEFREEZE
+NOINTERACTION
+FORCEXYBILLBOARD
States
	{
	Spawn:
		TNT1 A 1 Bright
		TNT1 A 0 Bright A_Jump(256,1,2,3,4)
		TNT1 AAA 1 Bright
		TNT1 A 0 Bright
		PMKE ABCDEFGHIJKL 2 Bright A_FadeOut(0.1,1)
		Wait
	}
}

ACTOR BigPurpleBloodCloud : PurpleBloodCloud
{
Speed 2
Scale 1.35
}

Actor ObsidianQuaker : RedParticleSpawner
{
-ClientsideOnly
+NOTIMEFREEZE
+FloorHugger
+NOEXPLODEFLOOR
+NOINTERACTION
+NONSHOOTABLE
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 1 Bright
		TNT1 A 0 Bright A_Quake(4,2,0,68)
		TNT1 A 0 Bright A_SpawnItemEx("HemPurpleParticleSpawner",0,0,1,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 10 Bright A_SpawnItemEx("SmokeFX4",random(-8,8),random(-8,8),0,random(-8,8),random(-8,8),random(-8,8),random(0,360))
		Stop
	}
}

Actor ObsidianTurretSpawn : RedParticleSpawner
{
-ClientsideOnly
-NoGravity
-NOINTERACTION
+NOTIMEFREEZE
+FLOORHUGGER
+FORCERADIUSDMG
+NONSHOOTABLE
+ThruSpecies
+DontHurtSpecies
+DontHarmSpecies
Species "AbyssalSatyr"
Damagetype "AbyssalSatyr"
Obituary "%o was impaled by The Abyssal Satyr."
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 12 Bright
		TNT1 A 0 Bright A_Quake(9,8,0,128,"None")
		TNT1 A 0 Bright A_Explode(random(100,250),96,0)
		TNT1 A 0 Bright A_PlaySound("StoneArmor/Destroy",CHAN_AUTO,1.5,0)
		TNT1 AAAAAA 0 A_SpawnItemEx("StoneBitsSpawner2",0,0,35,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 AAAA 0 A_CustomMissile("SmokeFX",10,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 A 15 Bright
		TNT1 A 1 A_JumpIfInventory("MarineKilled",1,"BloodySpawn")
		TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("Hem_CheckCelling_Z") == 1,"SpawnLow")
		TNT1 A 1 A_SpawnItemEx("ObsidianTurret",0,0,0,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_NOCHECKPOSITION)
		Stop
	SpawnLow:
		TNT1 A 1 A_SpawnItemEx("ObsidianTurretLow",0,0,0,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_NOCHECKPOSITION)
		Stop
	BloodySpawn:
		TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("Hem_CheckCelling_Z") == 1,"BloodySpawnLow")
		TNT1 A 1 A_SpawnItemEx("ObsidianTurretBloody",0,0,0,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_NOCHECKPOSITION)
		Stop
	BloodySpawnLow:
		TNT1 A 1 A_SpawnItemEx("ObsidianTurretBloodyLow",0,0,0,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_NOCHECKPOSITION)
		Stop
	}
}

Actor ObsidianStakesSpawn: RedParticleSpawner
{
-ClientsideOnly
-NoGravity
-NOINTERACTION
+NOTIMEFREEZE
+FLOORHUGGER
+FORCERADIUSDMG
+NONSHOOTABLE
+ThruSpecies
+DontHurtSpecies
+DontHarmSpecies
Species "AbyssalSatyr"
Damagetype "AbyssalSatyr"
Obituary "%o was impaled by The Abyssal Satyr."
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 1 Bright
		TNT1 A 0 Bright A_Jump(256,1,2,3,4,5,6)
		TNT1 AAAAA 1 Bright
		TNT1 A 12 Bright
		TNT1 A 0 Bright A_Quake(9,8,0,128,"None")
		TNT1 A 0 Bright A_Explode(random(100,250),96,0)
		TNT1 A 0 Bright A_PlaySound("StoneArmor/Destroy",CHAN_AUTO,1.5,0)
		TNT1 AAAAAA 0 A_SpawnItemEx("StoneBitsSpawner2",0,0,35,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,128)
		TNT1 AAAA 0 A_CustomMissile("SmokeFX",10,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 A 15 Bright
		TNT1 A 1 A_JumpIfInventory("MarineKilled",1,"BloodySpawn")
		TNT1 A 1 A_SpawnItemEx("ObsidianStake",0,0,0,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_NOCHECKPOSITION)
		Stop
	BloodySpawn:
		TNT1 A 1 A_SpawnItemEx("ObsidianStakeBloody",0,0,0,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_NOCHECKPOSITION)
		Stop
	}
}


Actor ObsidianStakesRangeSpawn
{
+NOTIMEFREEZE
+FloorHugger
+THRUACTORS
+NONSHOOTABLE
+DontHurtSpecies
+DontHarmSpecies
Species "AbyssalSatyr"
Damagetype "AbyssalSatyr"
States
	{
	Spawn:
		TNT1 A 5 Bright
		TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ObsidianStakesSpawn",random(-256,256),random(-256,256),0,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_NOCHECKPOSITION,128)
		TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ObsidianStakesSpawn",random(-256,256),random(-256,256),0,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_NOCHECKPOSITION,128)
		TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ObsidianStakesSpawn",random(-256,256),random(-256,256),0,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_NOCHECKPOSITION,128)
		TNT1 A 35 Bright
		TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ObsidianStakesSpawn",random(-360,360),random(-360,360),0,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_NOCHECKPOSITION,128)
		TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ObsidianStakesSpawn",random(-360,360),random(-360,360),0,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_NOCHECKPOSITION,128)
		TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ObsidianStakesSpawn",random(-360,360),random(-360,360),0,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_NOCHECKPOSITION,128)
		TNT1 A 35 Bright
		TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ObsidianStakesSpawn",random(-480,480),random(-480,480),0,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_NOCHECKPOSITION|SXF_SETMASTER,128)
		TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ObsidianStakesSpawn",random(-480,480),random(-480,480),0,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_NOCHECKPOSITION|SXF_SETMASTER,128)
		TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ObsidianStakesSpawn",random(-480,480),random(-480,480),0,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_NOCHECKPOSITION|SXF_SETMASTER,128)
		TNT1 A 1 Bright
		Stop
	}
}

Actor ObsidianTurret
{
Health 100
Height 128
Radius 10
Speed 0
FastSpeed 0
Mass 0x7FFFFFFF
+ISMONSTER
-COUNTKILL
+LOOKALLAROUND
+QUICKTORETALIATE
+FORCERADIUSDMG
+FloorClip
+SOLID
+NOTARGET
+NOBLOOD
+SHOOTABLE
+FLOORHUGGER
+MOVEWITHSECTOR
-INVULNERABLE
+ThruSpecies
+DontHurtSpecies
+DontHarmSpecies
Species "AbyssalSatyr"
Damagetype "AbyssalSatyr"
DamageFactor "SatanGuard", 0.0
DamageFactor "AbyssalSatyr", 0.0
Damagefactor "Acid", 0.0
Damagefactor "Fire", 0.001
Damagefactor "Poison", 0.0
Damagefactor "PoisonCloud", 0.0
Damagefactor "Electric", 0.001
Damagefactor "Disintegrate", 0.001
DamageFactor "Ice", 0.0
Damagefactor "VileFires", 0.0
Damagefactor "Heterodox", 0.0
Damagefactor "Damned", 0.0
DamageFactor "DemolisherEx", 0.0
Damagefactor "Rocket", 0.01
DamageFactor 0.15
Obituary "%o was splintered by an Obsidian Turret."
var int user_tsc;
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 1 A_UnSetInvulnerable
		TSPK V 4 A_SetUserVar("user_tsc",22)
		TSPK U 4 A_SetUserVar("user_tsc",user_tsc - 1)
		TSPK T 4 A_SetUserVar("user_tsc",user_tsc - 1)
		TSPK S 4 A_SetUserVar("user_tsc",user_tsc - 1)
		TSPK R 4 A_SetUserVar("user_tsc",user_tsc - 1)
		TSPK Q 4 A_SetUserVar("user_tsc",user_tsc - 1)
		TSPK P 4 A_SetUserVar("user_tsc",user_tsc - 1)
		TSPK O 4 A_SetUserVar("user_tsc",user_tsc - 1)
		TSPK N 4 A_SetUserVar("user_tsc",user_tsc - 1)
		TSPK M 4 A_SetUserVar("user_tsc",user_tsc - 1)
		TSPK L 4 A_SetUserVar("user_tsc",user_tsc - 1)
		TSPK K 4 A_SetUserVar("user_tsc",user_tsc - 1)
		TSPK J 4 A_SetUserVar("user_tsc",user_tsc - 1)
		TSPK I 4 A_SetUserVar("user_tsc",user_tsc - 1)
		TSPK H 4 A_SetUserVar("user_tsc",user_tsc - 1)
		TSPK G 4 A_SetUserVar("user_tsc",user_tsc - 1)
		TSPK F 4 A_SetUserVar("user_tsc",user_tsc - 1)
		TSPK E 4 A_SetUserVar("user_tsc",user_tsc - 1)
		TSPK D 4 A_SetUserVar("user_tsc",user_tsc - 1)
		TSPK C 4 A_SetUserVar("user_tsc",user_tsc - 1)
		TSPK B 4 A_SetUserVar("user_tsc",user_tsc - 1)
		TSPK A 4 A_SetUserVar("user_tsc",user_tsc - 1)
		TSPK AAAAAAAA 1 A_look
		Goto See
	See:
		TSPK A 18
		Goto Missile
	Missile:
		TSPK A 1 Bright A_SpawnItemEx("ObsidianFlare2",0,0,128,0,0,0,0,SXF_CLIENTSIDE,0)
		TSPK A 17 Bright
		TNT1 A 0 A_CustomMissile("AdvisorBall",128,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,150)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,180)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-150)
		TSPK A 1 Bright A_SpawnItemEx("ObsidianFlare2",0,0,128,0,0,0,0,SXF_CLIENTSIDE,0)
		TSPK A 5 Bright
		TNT1 A 0 A_CustomMissile("AdvisorBall",128,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,150)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,180)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-150)
		TSPK A 6 Bright
		TNT1 A 0 A_CustomMissile("AdvisorBall",128,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,150)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,180)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-150)
		TSPK A 1 Bright A_SpawnItemEx("ObsidianFlare2",0,0,128,0,0,0,0,SXF_CLIENTSIDE,0)
		TSPK A 5 Bright
		TNT1 A 0 A_CustomMissile("AdvisorBall",128,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,150)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,180)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-150)
		TSPK A 6 Bright
		TNT1 A 0 A_CustomMissile("AdvisorBall",128,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,150)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,180)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-150)
		TSPK A 1 Bright A_SpawnItemEx("ObsidianFlare2",0,0,128,0,0,0,0,SXF_CLIENTSIDE,0)
		TSPK A 5 Bright
		TNT1 A 0 A_CustomMissile("AdvisorBall",128,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,150)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,180)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-150)
		TSPK A 6 Bright
		TNT1 A 0 A_CustomMissile("AdvisorBall",128,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,150)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,180)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-150)
		TSPK A 1 Bright A_SpawnItemEx("ObsidianFlare2",0,0,128,0,0,0,0,SXF_CLIENTSIDE,0)
		TSPK A 5 Bright
		TNT1 A 0 A_CustomMissile("AdvisorBall",128,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,150)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,180)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-150)
		TSPK A 6 Bright
		TNT1 A 0 A_CustomMissile("AdvisorBall",128,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,150)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,180)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-150)
		TSPK A 1 Bright A_SpawnItemEx("ObsidianFlare2",0,0,128,0,0,0,0,SXF_CLIENTSIDE,0)
		TSPK A 14
		TSPK A 1 A_SetInvulnerable
		TSPK ABCDEFGHIJKLMNOPQRSTUV 4
		TNT1 A 1 A_Noblocking
		Stop
	Death:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 22,"frame22")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 21,"frame21")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 20,"frame20")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 19,"frame19")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 18,"frame18")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 17,"frame17")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 16,"frame16")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 15,"frame15")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 14,"frame14")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 13,"frame13")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 12,"frame12")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 11,"frame11")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 10,"frame10")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 9,"frame9")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 8,"frame8")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 7,"frame7")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 6,"frame6")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 5,"frame5")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 4,"frame4")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 3,"frame3")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 2,"frame2")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 1,"frame1")
		TNT1 A 0
	frame1:
		TSPK A 1
	frame2:
		TSPK B 1
	frame3:
		TSPK C 1
	frame4:
		TSPK D 1
	frame5:
		TSPK E 1
	frame6:
		TSPK F 1
	frame7:
		TSPK G 1
	frame8:
		TSPK H 1
	frame9:
		TSPK I 1
	frame10:
		TSPK J 1
	frame11:
		TSPK K 1
	frame12:
		TSPK L 1
	frame13:
		TSPK M 1
	frame14:
		TSPK N 1
	frame15:
		TSPK O 1
	frame16:
		TSPK P 1
	frame17:
		TSPK Q 1
	frame18:
		TSPK R 1
	frame19:
		TSPK S 1
	frame20:
		TSPK T 1
	frame21:
		TSPK U 1
	frame22:
		TSPK V 1
		TNT1 A 0 A_Quake(9,8,0,128,"None")
		TNT1 A 0 A_Explode(random(100,250),96,0)
		TNT1 A 0 A_Blast(BF_DONTWARN|BF_NOIMPACTDAMAGE,225,200,30)
		TNT1 A 0 A_PlaySound("StoneArmor/Destroy",0,1.5,0)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("StoneBitsSpawner2",0,random(-10,10),0,0,0,0,random(0,360),SXF_CLIENTSIDE,0)
		TNT1 AAAA 0 A_CustomMissile("SmokeFX",10,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 A 10 A_NoBlocking
		Stop
	}
}

Actor ObsidianTurretBloody : ObsidianTurret
{
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 1 A_UnSetInvulnerable
		TSP2 V 4 A_SetUserVar("user_tsc",22)
		TSP2 U 4 A_SetUserVar("user_tsc",user_tsc-1)
		TSP2 T 4 A_SetUserVar("user_tsc",user_tsc-1)
		TSP2 S 4 A_SetUserVar("user_tsc",user_tsc-1)
		TSP2 R 4 A_SetUserVar("user_tsc",user_tsc-1)
		TSP2 Q 4 A_SetUserVar("user_tsc",user_tsc-1)
		TSP2 P 4 A_SetUserVar("user_tsc",user_tsc-1)
		TSP2 O 4 A_SetUserVar("user_tsc",user_tsc-1)
		TSP2 N 4 A_SetUserVar("user_tsc",user_tsc-1)
		TSP2 M 4 A_SetUserVar("user_tsc",user_tsc-1)
		TSP2 L 4 A_SetUserVar("user_tsc",user_tsc-1)
		TSP2 K 4 A_SetUserVar("user_tsc",user_tsc-1)
		TSP2 J 4 A_SetUserVar("user_tsc",user_tsc-1)
		TSP2 I 4 A_SetUserVar("user_tsc",user_tsc-1)
		TSP2 H 4 A_SetUserVar("user_tsc",user_tsc-1)
		TSP2 G 4 A_SetUserVar("user_tsc",user_tsc-1)
		TSP2 F 4 A_SetUserVar("user_tsc",user_tsc-1)
		TSP2 E 4 A_SetUserVar("user_tsc",user_tsc-1)
		TSP2 D 4 A_SetUserVar("user_tsc",user_tsc-1)
		TSP2 C 4 A_SetUserVar("user_tsc",user_tsc-1)
		TSP2 B 4 A_SetUserVar("user_tsc",user_tsc-1)
		TSP2 A 4 A_SetUserVar("user_tsc",user_tsc-1)
		TSP2 AAAAAAAA 1 A_look
		Goto See
	See:
		TSP2 A 18
		Goto Missile
	Missile:
		TSP2 A 1 Bright A_SpawnItemEx("ObsidianFlare2",0,0,128,0,0,0,0,SXF_CLIENTSIDE,0)
		TSP2 A 17 Bright
		TNT1 A 0 A_CustomMissile("AdvisorBall",128,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,150)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,180)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-150)
		TSP2 A 1 Bright A_SpawnItemEx("ObsidianFlare2",0,0,128,0,0,0,0,SXF_CLIENTSIDE,0)
		TSP2 A 5 Bright
		TNT1 A 0 A_CustomMissile("AdvisorBall",128,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,150)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,180)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-150)
		TSP2 A 6 Bright
		TNT1 A 0 A_CustomMissile("AdvisorBall",128,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,150)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,180)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-150)
		TSP2 A 1 Bright A_SpawnItemEx("ObsidianFlare2",0,0,128,0,0,0,0,SXF_CLIENTSIDE,0)
		TSP2 A 5 Bright
		TNT1 A 0 A_CustomMissile("AdvisorBall",128,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,150)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,180)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-150)
		TSP2 A 6 Bright
		TNT1 A 0 A_CustomMissile("AdvisorBall",128,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,150)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,180)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-150)
		TSP2 A 1 Bright A_SpawnItemEx("ObsidianFlare2",0,0,128,0,0,0,0,SXF_CLIENTSIDE,0)
		TSP2 A 5 Bright
		TNT1 A 0 A_CustomMissile("AdvisorBall",128,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,150)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,180)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-150)
		TSP2 A 6 Bright
		TNT1 A 0 A_CustomMissile("AdvisorBall",128,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,150)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,180)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-150)
		TSP2 A 1 Bright A_SpawnItemEx("ObsidianFlare2",0,0,128,0,0,0,0,SXF_CLIENTSIDE,0)
		TSP2 A 5 Bright
		TNT1 A 0 A_CustomMissile("AdvisorBall",128,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,150)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,180)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-150)
		TSP2 A 6 Bright
		TNT1 A 0 A_CustomMissile("AdvisorBall",128,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,150)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,180)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",128,0,-150)
		TSP2 A 1 Bright A_SpawnItemEx("ObsidianFlare2",0,0,128,0,0,0,0,SXF_CLIENTSIDE,0)
		TSP2 A 14
		TSP2 A 1 A_SetInvulnerable
		TSP2 ABCDEFGHIJKLMNOPQRSTUV 4
		TNT1 A 1 A_Noblocking
		Stop
	Death:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 22,"frame22")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 21,"frame21")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 20,"frame20")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 19,"frame19")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 18,"frame18")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 17,"frame17")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 16,"frame16")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 15,"frame15")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 14,"frame14")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 13,"frame13")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 12,"frame12")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 11,"frame11")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 10,"frame10")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 9,"frame9")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 8,"frame8")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 7,"frame7")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 6,"frame6")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 5,"frame5")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 4,"frame4")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 3,"frame3")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 2,"frame2")
		TNT1 A 0
		TNT1 A 0 A_JumpIf(user_tsc == 1,"frame1")
		TNT1 A 0
	frame1:
		TSP2 A 1
	frame2:
		TSP2 B 1
	frame3:
		TSP2 C 1
	frame4:
		TSP2 D 1
	frame5:
		TSP2 E 1
	frame6:
		TSP2 F 1
	frame7:
		TSP2 G 1
	frame8:
		TSP2 H 1
	frame9:
		TSP2 I 1
	frame10:
		TSP2 J 1
	frame11:
		TSP2 K 1
	frame12:
		TSP2 L 1
	frame13:
		TSP2 M 1
	frame14:
		TSP2 N 1
	frame15:
		TSP2 O 1
	frame16:
		TSP2 P 1
	frame17:
		TSP2 Q 1
	frame18:
		TSP2 R 1
	frame19:
		TSP2 S 1
	frame20:
		TSP2 T 1
	frame21:
		TSP2 U 1
	frame22:
		TSP2 V 1
		TNT1 A 0 A_Quake(9,8,0,128,"None")
		TNT1 A 0 A_Explode(random(100,250),96,0)
		TNT1 A 0 A_Blast(BF_DONTWARN|BF_NOIMPACTDAMAGE,225,200,30)
		TNT1 A 0 A_PlaySound("StoneArmor/Destroy",0,1.5,0)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("StoneBitsSpawner2",0,random(-10,10),0,0,0,0,random(0,360),SXF_CLIENTSIDE)
		TNT1 AAAA 0 A_CustomMissile("SmokeFX",10,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 A 10 A_NoBlocking
		Stop
	}
}

Actor ObsidianTurretLow : ObsidianTurret
{
Height 50
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 1 A_UnSetInvulnerable
		TSPK V 4 A_SetUserVar("user_tsc",22)
		TSPK U 4 A_SetUserVar("user_tsc",user_tsc - 1)
		TSPK T 4 A_SetUserVar("user_tsc",user_tsc - 1)
		TSPK S 4 A_SetUserVar("user_tsc",user_tsc - 1)
		TSPK R 4 A_SetUserVar("user_tsc",user_tsc - 1)
		TSPK Q 4 A_SetUserVar("user_tsc",user_tsc - 1)
		TSPK P 4 A_SetUserVar("user_tsc",user_tsc - 1)
		TSPK O 4 A_SetUserVar("user_tsc",user_tsc - 1)
		TSPK N 4 A_SetUserVar("user_tsc",user_tsc - 1)
		//TSPK M 4 A_SetUserVar("user_tsc",user_tsc - 1)
		//TSPK L 4 A_SetUserVar("user_tsc",user_tsc - 1)
		//TSPK K 4 A_SetUserVar("user_tsc",user_tsc - 1)
		//TSPK J 4 A_SetUserVar("user_tsc",user_tsc - 1)
		//TSPK I 4 A_SetUserVar("user_tsc",user_tsc - 1)
		//TSPK H 4 A_SetUserVar("user_tsc",user_tsc - 1)
		//TSPK G 4 A_SetUserVar("user_tsc",user_tsc - 1)
		//TSPK F 4 A_SetUserVar("user_tsc",user_tsc - 1)
		//TSPK E 4 A_SetUserVar("user_tsc",user_tsc - 1)
		//TSPK D 4 A_SetUserVar("user_tsc",user_tsc - 1)
		//TSPK C 4 A_SetUserVar("user_tsc",user_tsc - 1)
		//TSPK B 4 A_SetUserVar("user_tsc",user_tsc - 1)
		//TSPK A 4 A_SetUserVar("user_tsc",user_tsc - 1)
		TSPK NNNNNNNN 1 A_look
		Goto See
	See:
		TSPK N 18
		Goto Missile
	Missile:
		TSPK N 1 Bright A_SpawnItemEx("ObsidianFlare2",0,0,53,0,0,0,0,SXF_CLIENTSIDE,0)
		TSPK N 17 Bright
		TNT1 A 0 A_CustomMissile("AdvisorBall",53,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,150)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,180)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-150)
		TSPK N 1 Bright A_SpawnItemEx("ObsidianFlare2",0,0,53,0,0,0,0,SXF_CLIENTSIDE,0)
		TSPK N 5 Bright
		TNT1 A 0 A_CustomMissile("AdvisorBall",53,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,150)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,180)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-150)
		TSPK N 6 Bright
		TNT1 A 0 A_CustomMissile("AdvisorBall",53,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,150)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,180)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-150)
		TSPK N 1 Bright A_SpawnItemEx("ObsidianFlare2",0,0,53,0,0,0,0,SXF_CLIENTSIDE,0)
		TSPK N 5 Bright
		TNT1 A 0 A_CustomMissile("AdvisorBall",53,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,150)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,180)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-150)
		TSPK N 6 Bright
		TNT1 A 0 A_CustomMissile("AdvisorBall",53,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,150)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,180)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-150)
		TSPK N 1 Bright A_SpawnItemEx("ObsidianFlare2",0,0,53,0,0,0,0,SXF_CLIENTSIDE,0)
		TSPK N 5 Bright
		TNT1 A 0 A_CustomMissile("AdvisorBall",53,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,150)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,180)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-150)
		TSPK N 6 Bright
		TNT1 A 0 A_CustomMissile("AdvisorBall",53,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,150)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,180)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-150)
		TSPK N 1 Bright A_SpawnItemEx("ObsidianFlare2",0,0,53,0,0,0,0,SXF_CLIENTSIDE,0)
		TSPK N 5 Bright
		TNT1 A 0 A_CustomMissile("AdvisorBall",53,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,150)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,180)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-150)
		TSPK N 6 Bright
		TNT1 A 0 A_CustomMissile("AdvisorBall",53,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,150)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,180)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-150)
		TSPK N 1 Bright A_SpawnItemEx("ObsidianFlare2",0,0,53,0,0,0,0,SXF_CLIENTSIDE,0)
		TSPK N 14
		TSPK N 1 A_SetInvulnerable
		//TSPK ABCDEFGHIJKLM
		TSPK NOPQRSTUV 4
		TNT1 A 1 A_Noblocking
		Stop
	}
}

Actor ObsidianTurretBloodyLow : ObsidianTurretBloody
{
Height 50
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 1 A_UnSetInvulnerable
		TSP2 V 4 A_SetUserVar("user_tsc",22)
		TSP2 U 4 A_SetUserVar("user_tsc",user_tsc-1)
		TSP2 T 4 A_SetUserVar("user_tsc",user_tsc-1)
		TSP2 S 4 A_SetUserVar("user_tsc",user_tsc-1)
		TSP2 R 4 A_SetUserVar("user_tsc",user_tsc-1)
		TSP2 Q 4 A_SetUserVar("user_tsc",user_tsc-1)
		TSP2 P 4 A_SetUserVar("user_tsc",user_tsc-1)
		TSP2 O 4 A_SetUserVar("user_tsc",user_tsc-1)
		TSP2 N 4 A_SetUserVar("user_tsc",user_tsc-1)
		//TSP2 M 4 A_SetUserVar("user_tsc",user_tsc-1)
		//TSP2 L 4 A_SetUserVar("user_tsc",user_tsc-1)
		//TSP2 K 4 A_SetUserVar("user_tsc",user_tsc-1)
		//TSP2 J 4 A_SetUserVar("user_tsc",user_tsc-1)
		//TSP2 I 4 A_SetUserVar("user_tsc",user_tsc-1)
		//TSP2 H 4 A_SetUserVar("user_tsc",user_tsc-1)
		//TSP2 G 4 A_SetUserVar("user_tsc",user_tsc-1)
		//TSP2 F 4 A_SetUserVar("user_tsc",user_tsc-1)
		//TSP2 E 4 A_SetUserVar("user_tsc",user_tsc-1)
		//TSP2 D 4 A_SetUserVar("user_tsc",user_tsc-1)
		//TSP2 C 4 A_SetUserVar("user_tsc",user_tsc-1)
		//TSP2 B 4 A_SetUserVar("user_tsc",user_tsc-1)
		//TSP2 A 4 A_SetUserVar("user_tsc",user_tsc-1)
		TSP2 NNNNNNNN 1 A_look
		Goto See
	See:
		TSP2 N 18
		Goto Missile
	Missile:
		TSP2 N 1 Bright A_SpawnItemEx("ObsidianFlare2",0,0,53,0,0,0,0,SXF_CLIENTSIDE,0)
		TSP2 N 17 Bright
		TNT1 A 0 A_CustomMissile("AdvisorBall",53,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,150)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,180)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-150)
		TSP2 N 1 Bright A_SpawnItemEx("ObsidianFlare2",0,0,53,0,0,0,0,SXF_CLIENTSIDE,0)
		TSP2 N 5 Bright
		TNT1 A 0 A_CustomMissile("AdvisorBall",53,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,150)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,180)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-150)
		TSP2 N 6 Bright
		TNT1 A 0 A_CustomMissile("AdvisorBall",53,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,150)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,180)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-150)
		TSP2 N 1 Bright A_SpawnItemEx("ObsidianFlare2",0,0,53,0,0,0,0,SXF_CLIENTSIDE,0)
		TSP2 N 5 Bright
		TNT1 A 0 A_CustomMissile("AdvisorBall",53,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,150)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,180)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-150)
		TSP2 N 6 Bright
		TNT1 A 0 A_CustomMissile("AdvisorBall",53,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,150)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,180)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-150)
		TSP2 N 1 Bright A_SpawnItemEx("ObsidianFlare2",0,0,53,0,0,0,0,SXF_CLIENTSIDE,0)
		TSP2 N 5 Bright
		TNT1 A 0 A_CustomMissile("AdvisorBall",53,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,150)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,180)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-150)
		TSP2 N 6 Bright
		TNT1 A 0 A_CustomMissile("AdvisorBall",53,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,150)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,180)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-150)
		TSP2 N 1 Bright A_SpawnItemEx("ObsidianFlare2",0,0,53,0,0,0,0,SXF_CLIENTSIDE,0)
		TSP2 N 5 Bright
		TNT1 A 0 A_CustomMissile("AdvisorBall",53,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,150)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,180)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-150)
		TSP2 N 6 Bright
		TNT1 A 0 A_CustomMissile("AdvisorBall",53,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,0)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,150)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,180)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-30)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-60)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-90)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-120)
		TNT1 A 0 A_CustomMissile("TurretBouncers",53,0,-150)
		TSP2 N 1 Bright A_SpawnItemEx("ObsidianFlare2",0,0,53,0,0,0,0,SXF_CLIENTSIDE,0)
		TSP2 N 14
		TSP2 N 1 A_SetInvulnerable
		//TSP2 ABCDEFGHIJKLM
		TSP2 NOPQRSTUV 4
		TNT1 A 1 A_Noblocking
		Stop
	}
}

ACTOR ObsidianFlare : BlueSphereFlare
{
Alpha 1.0
Scale 0.82
Renderstyle Add
+Thruactors
+NONSHOOTABLE
States
	{
	Spawn:
		TNT1 A 0
		L2NP A 1 Bright
		L2NP AAAAAAAAAA 1 Bright A_FadeOut(0.18,1)
		Stop
	}
}

ACTOR ObsidianFlare2 : ObsidianFlare
{
States
	{
	Spawn:
		TNT1 A 0
		L2NP A 10 Bright
		L2NP AAAAAAAAAAAAAA 1 Bright A_FadeOut(0.1,1)
		Stop
	}
}

Actor AdvisorSummoner : ExileCaster
{
Height 65
Radius 22
Speed 25
+THRUACTORS
+NOTIMEFREEZE
States
	{
	Spawn:
		TNT1 AAAAA 1
		TNT1 A 0 A_Die
	Death:
		TNT1 A 1
		TNT1 A 1 A_SpawnItemEx("ObsidianFlare2",random(-2,2),random(-2,2),random(4,9),random(-3,3),random(-3,3),random(3,8),random(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 1 A_PlaySound("AdvisorTeleport",CHAN_WEAPON,1.0,0)
		TNT1 AAAA 1 A_SpawnItemEx("PurpleParticleSpawner",random(-2,2),random(-2,2),random(4,9),random(-3,3),random(-3,3),random(3,8),random(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 1 A_SpawnItemEx("Advisor",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS|SXF_SETMASTER)
		Stop
	}
}

Actor AbyssalImpSummoner : ExileCaster
{

Height 56
Radius 40
Speed 25
+THRUACTORS
+NOTIMEFREEZE
States
	{
	Spawn:
		TNT1 AAAAAAA 1
		TNT1 A 0 A_Die
	Death:
		TNT1 AAAA 0 A_SpawnItemEx("HellionSmokeSpawner",random(-2,2),random(-2,2),random(4,9),random(-3,3),random(-3,3),random(3,8),random(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 1 A_PlaySound("hellion/smokeloop",CHAN_WEAPON,1.0,1)
		TNT1 AAAA 1 A_SpawnItemEx("HellionSmokeSpawner",random(-2,2),random(-2,2),random(4,9),random(-3,3),random(-3,3),random(3,8),random(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 AAAA 1 A_SpawnItemEx("PurpleParticleSpawner",random(-2,2),random(-2,2),random(4,9),random(-3,3),random(-3,3),random(3,8),random(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 1 A_SpawnItemEx("AbyssalImp",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS|SXF_SETMASTER)
		TNT1 A 5
		TNT1 AAA 0 A_StopSound(CHAN_WEAPON)
		Stop
	}
}

Actor Advisor
{
Monster
Health 250
Radius 22
Height 65
Mass 100
Speed 6
FloatSpeed 4
PainChance 110
-COUNTKILL
+FLOAT
+NOGRAVITY
+NOBLOOD
+NOFEAR
+NOTARGET
+NOINFIGHTING
+NOTARGETSWITCH
+THRUSPECIES
+DONTHURTSPECIES
+DONTHARMSPECIES
+DONTHARMCLASS
Species "AbyssalSatyr"
DamageType "AbyssalSatyr"
DamageFactor "PDTBFG", 0.25
DamageFactor "PDTBFGTracer", 0.25
DamageFactor "PlayerDevBall", 0.125
DamageFactor "PlayerDevBall2", 0.125
DamageFactor "PlayerDTBFGRailgunSlug", 0.125
DamageFactor "PlayerDevTracer", 0.125
DamageFactor "Legendary", 0.25
DamageFactor "Legendary1", 0.25
DamageFactor "LegendaryPlayer", 0.3
DamageFactor "LegendaryGuruPlayer", 0.3
//No Infighting
Damagefactor "AbyssalSatyr", 0.0
DamageFactor "SatanGuard", 0.0
Damagefactor "VileFires", 0.0
Damagefactor "Heterodox", 0.0
Damagefactor "Damned", 0.0
DamageFactor 0.75
DropItem "AbyssOrb", 8, 1
DropItem "LifeEssence", 96, 16
DropItem "ArmorBonusMax", 96, 16
DropItem "NewShell", 16, 12
SeeSound "Advisor/See"
ActiveSound "Advisor/Active"
AttackSound ""
PainSound "Advisor/Pain"
DeathSound "Advisor/Death"
Obituary "%o was frightened to death by an Advisor."
Tag "Advisor"
var int user_lcounter;
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_SetUserVar("user_lcounter",100)
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
	SpawnLoop:
		ADVS A 10 A_Look
		TNT1 A 0 A_JumpIf(user_lcounter < 1,"Vanish")
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter-1)
		Loop
	See:
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_Jump(60,"Bob")
		TNT1 A 0 A_Jump(40,"Blur")
		ADVS AA 1 A_Chase
		TNT1 A 0 A_JumpIfInTargetLOS("Blur",360,JLOSF_DEADNOJUMP,1000)
		ADVS AA 1 A_Chase
		TNT1 A 0 A_JumpIfInTargetLOS("Blur",360,JLOSF_DEADNOJUMP,1000)
		ADVS BB 1 A_Chase
		TNT1 A 0 A_JumpIfInTargetLOS("Blur",360,JLOSF_DEADNOJUMP,1000)
		ADVS BB 1 A_Chase
		TNT1 A 0 A_Jump(10,"Blur")
	Bob:
		ADVS A 2 A_Weave(0,random(-3.0,3.0),0,8)
		TNT1 A 0 A_SpawnItem("AdvisorBlur")
		TNT1 A 0 A_JumpIfInTargetLOS("Blur",360,JLOSF_DEADNOJUMP,1000)
		TNT1 A 0 A_Chase("","")
		ADVS A 2 A_Weave(0,3,0,8)
		TNT1 A 0 A_SpawnItem("AdvisorBlur")
		TNT1 A 0 A_Chase
		ADVS A 2 A_Weave(0,3,0,8)
		TNT1 A 0 A_SpawnItem("AdvisorBlur")
		TNT1 A 0 A_JumpIfInTargetLOS("Blur",360,JLOSF_DEADNOJUMP,1000)
		TNT1 A 0 A_Chase("","")
		ADVS A 2 A_Weave(0,random(-3.0,3.0),0,8)
		TNT1 A 0 A_JumpIfInTargetLOS("Blur",360,JLOSF_DEADNOJUMP,1000)
		TNT1 A 0 A_Chase("","")
		TNT1 A 0 A_SpawnItem("AdvisorBlur")
		ADVS A 2 A_Weave(0,7,0,8)
		TNT1 A 0 A_JumpIfInTargetLOS("Blur",360,JLOSF_DEADNOJUMP,1000)
		TNT1 A 0 A_Chase("","")
		TNT1 A 0 A_SpawnItem("AdvisorBlur")
		ADVS B 2 A_Weave(0,3,0,8)
		TNT1 A 0 A_JumpIfInTargetLOS("Blur",360,JLOSF_DEADNOJUMP,1000)
		TNT1 A 0 A_Chase("","")
		TNT1 A 0 A_SpawnItem("AdvisorBlur")
		ADVS B 2 A_Weave(0,3,0,8)
		TNT1 A 0 A_Chase
		TNT1 A 0 A_SpawnItem("AdvisorBlur")
		ADVS B 2 A_Weave(0,3,0,8)
		TNT1 A 0 A_Chase
		TNT1 A 0 A_SpawnItem("AdvisorBlur")
		ADVS B 2 A_Weave(0,random(-3.0,3.0),0,8)
		TNT1 A 0 A_SpawnItem("AdvisorBlur")
		TNT1 A 0 A_JumpIfInTargetLOS("Blur",360,JLOSF_DEADNOJUMP,1000)
		TNT1 A 0 A_Chase("","")
		ADVS B 2 A_Weave(0,3,0,8)
		TNT1 A 0 A_JumpIfInTargetLOS("Blur",360,JLOSF_DEADNOJUMP,1000)
		TNT1 A 0 A_Chase("","")
		TNT1 A 0 A_JumpIf(user_lcounter < 1,"Vanish")
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter-1)
		GoTo See
	Blur:
		TNT1 A 0 A_Jump(128,"Right","Back","Forward")
		ADVS A 1 ThrustThing(angle*256/360+192, 12, 0, 0)
		GoTo Blurr
	Right:
		ADVS A 1 ThrustThing(angle*256/360+64, 12, 0, 0)
		GoTo Blurr
	Back:
		ADVS A 1 A_Recoil(14)
		GoTo Blurr
	Forward:
		ADVS A 1 A_Recoil(-14)
		GoTo Blurr
	Blurr:
		ADVS A 1 A_SpawnItem("AdvisorBlur")
		TNT1 A 0 A_Wander
		ADVS A 1 A_SpawnItem("AdvisorBlur")
		TNT1 A 0 A_Wander
		ADVS A 1 A_SpawnItem("AdvisorBlur")
		TNT1 A 0 A_Wander
		ADVS A 1 A_SpawnItem("AdvisorBlur")
		TNT1 A 0 A_Wander
		TNT1 A 0 A_JumpIfInTargetLOS("Missile",360,JLOSF_DEADNOJUMP,1000)
		ADVS A 1 A_SpawnItem("AdvisorBlur")
		TNT1 A 0 A_Wander
		TNT1 A 0 A_JumpIfInTargetLOS("Missile",360,JLOSF_DEADNOJUMP,1000)
		ADVS A 1 A_SpawnItem("AdvisorBlur")
		TNT1 A 0 A_Wander
		TNT1 A 0 A_JumpIfInTargetLOS("Missile",360,JLOSF_DEADNOJUMP,1000)
		ADVS A 1 A_SpawnItem("AdvisorBlur")
		TNT1 A 0 A_Wander
		TNT1 A 0 A_JumpIfInTargetLOS("Missile",360,JLOSF_DEADNOJUMP,1000)
		ADVS A 1 A_SpawnItem("AdvisorBlur")
		TNT1 A 0 A_Wander
		TNT1 A 0 A_JumpIfInTargetLOS("Missile",360,JLOSF_DEADNOJUMP,1000)
		ADVS A 1 A_SpawnItem("AdvisorBlur")
		TNT1 A 0 A_Wander
		TNT1 A 0 A_JumpIfInTargetLOS("Missile",360,JLOSF_DEADNOJUMP,1000)
		ADVS A 1 A_SpawnItem("AdvisorBlur")
		TNT1 A 0 A_Wander
		TNT1 A 0 A_JumpIfInTargetLOS("Missile",360,JLOSF_DEADNOJUMP,1000)
		ADVS A 1 A_SpawnItem("AdvisorBlur")
		TNT1 A 0 A_Wander
		TNT1 A 0 A_Stop
		TNT1 A 0 A_JumpIf(user_lcounter < 1,"Vanish")
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter-1)
		GoTo See
	WrongTarget:
		TNT1 A 0
		TNT1 A 0 A_ClearTarget
		TNT1 A 0 A_ChangeFlag(FRIENDLY,0)
		TNT1 A 0 ACS_NamedExecuteAlways("Hem_SetSpecies",0,4)
		Goto See
	Missile:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInTargetInventory("IsAnAbyssalSatyr",1,"WrongTarget")
		TNT1 A 0 A_JumpIfTargetInLOS("GoCloser",90,JLOSF_CLOSENOJUMP|JLOSF_DEADNOJUMP|JLOSF_TARGETLOS,0,2000)
		ADVS AAAAA 1 A_FaceTarget(45)
		ADVS DDDDDEEEEEFF 1 Bright A_FaceTarget
		ADVS F 1 Bright A_CustomMissile("AdvisorBall",45,0,0,CMF_TRACKOWNER)
		ADVS F 2 Bright
		ADVS EDAA 5
		GoTo See
	GoCloser:
		TNT1 A 0
		TNT1 A 0 A_FaceTarget
		ADVS ABAB 4 A_Recoil(-20)
		TNT1 A 0 A_Jump(128,"See")
		TNT1 A 0 A_JumpIfTargetInLOS("Missile",90,JLOSF_DEADNOJUMP|JLOSF_TARGETLOS)
		Goto Blur
	Pain:
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		ADVS C 3 A_Pain
		ADVS C 5
		TNT1 A 0 A_Jump(48,"Missile")
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_Jump(128,"Blur")
		GoTo See
	Vanish:
		TNT1 A 0
		ADVS C 2 A_FadeOut(0.1,1)
		Wait
	XDeath:
	Death:
		TNT1 A 0 Bright
		ADVS G 5 Bright A_Scream
		TNT1 A 0 Bright A_PlaySound("Advisor/Purge",0,1.0,0)
		TNT1 A 0 Bright A_SpawnItemEx("PurpleParticleSpawner",0,0,1,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 AAAA 0 A_CustomMissile("Kaboom8",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AAAA 0 A_CustomMissile("SmokeFX4",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		ADVS H 5 Bright A_NoBlocking
		ADVS IJKL 4 Bright
		ADVS MNOP 3
		ADVS P 1 A_FadeOut(0.1,1)
		Wait
	}
}

Actor AdvisorBall
{
Projectile
Height 5
Radius 5
Speed 23
FastSpeed 25
Renderstyle Add
Bouncetype Hexen
Bouncecount 3
Bouncefactor 1.3
WallBounceFactor 1.3
ReactionTime 175
Damage 3
+ForceXYBillboard
+HexenBounce
+SEEKERMISSILE
+THRUSPECIES
+MTHRUSPECIES
+DONTHURTSPECIES
+DONTHARMSPECIES
Damagetype "AbyssalSatyr"
SeeSound "Advisor/Attack"
DeathSound "HellionTracerHit"
States
	{
	Spawn:
		SBS4 ABC 1 Bright A_SpawnItemEx("AdvisorBallTail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SeekerMissile(15,3)
		TNT1 A 0 A_Countdown
		Loop
	Death:
		TNT1 A 0
		SBS4 A 1 Bright A_SpawnItem("AdvisorBallDeath")
		Stop
	XDeath:
		TNT1 A 0
		SBS4 A 1 Bright A_SpawnItem("AdvisorBallDeath")
		TNT1 A 0 A_Explode(18,58,0)
		TNT1 A 0 A_SpawnItemEx("PurpleParticleSpawner",0,0,1,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 AAA 0 A_CustomMissile("Kaboom8",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AAAA 0 A_CustomMissile("SmokeFX4",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 A 1
		Stop
	}
}

Actor AdvisorBlur
{
Height 2
Radius 2
Speed 0
Scale 0.9
RENDERSTYLE Translucent
ALPHA 0.75
+MISSILE
+NOINTERACTION
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_CheckSight("Toaster")
		ADVS A 4
		ADVS A 2 A_FadeOut(0.14,1)
		Wait
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

Actor TurretBouncers
{
Projectile
Height 8
Radius 6
Speed 32
FastSpeed 38
Scale 0.25
Renderstyle Add
Alpha 1.0
Bouncetype Hexen
BounceCount 5
BounceFactor 1.3
WallBounceFactor 1.3
ReactionTime 263
Damage (random(3,5)*random(1,6))
+HEXENBOUNCE
+RANDOMIZE
+FORCEXYBILLBOARD
+THRUSPECIES
+MTHRUSPECIES
+DONTHURTSPECIES
+DONTHARMSPECIES
Damagetype "AbyssalSatyr"
SeeSound "Shadow/attack"
DeathSound "imp/shotx"
States
	{
	Spawn:
		MCRG CD 1 Bright A_SpawnItemEx("TurretBouncerTail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 Bright A_Countdown
		Loop
	Death:
		TNT1 A 0 Bright
		TNT1 A 1 Bright A_SpawnItemEx("TurretBouncerDeath",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		Stop
	XDeath:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_SpawnItemEx("TurretBouncerDeath",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 Bright A_SpawnItemEx("PurpleParticleSpawner",0,0,1,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 AAA 0 Bright A_CustomMissile("Kaboom8",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AAAA 0 Bright A_CustomMissile("SmokeFX4",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 A 1 Bright
		Stop
	}
}

Actor TurretBouncerTail : ImpBallTrail
{
+NONETID
Scale 0.18
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		MCRG CDCDCDDDDDD 1 Bright A_FadeOut(0.1,1)
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

Actor AdvisorBallTail : ImpBallTrail
{
+NONETID
Scale 0.8
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		SBS4 ABCABCCCCCC 1 Bright A_FadeOut(0.1,1)
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

Actor AdvisorBallDeath
{
Renderstyle Add
+MISSILE
+NOINTERACTION
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		XXXZ AB 4 Bright
		XXXZ CCCCDDDEEEE 1 Bright A_FadeOut(0.1,1)
		Stop
	}
}

Actor TurretBouncerDeath
{
Renderstyle Add
+MISSILE
+NOINTERACTION
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		XXXZ AB 4 Bright
		XXXZ CCCCDDDEEEE 1 Bright A_FadeOut(0.1,1)
		Stop
	}
}

Actor ObsidianPurpleFireball : PurpleFireShot
{
+Thruspecies
Damage (random(30,50))
Species ""
Species "AbyssalSatyr"
Damagetype ""
Damagetype "AbyssalSatyr"
}

ACTOR ObsidianTracer
{
PROJECTILE
Height 48
Radius 8
Speed 25
RENDERSTYLE Normal
ReactionTime 26
Damage (random(12,36))
+RIPPER
-NOGRAVITY
+FLOORHUGGER
+SEEKERMISSILE
+THRUSPECIES
+MTHRUSPECIES
+DONTHURTSPECIES
+DONTHARMSPECIES
Damagetype "AbyssalSatyr"
DeathSound "weapons/stab"
States
	{
	Spawn:
		TNT1 AAAAAAAA 1 Bright A_CustomMissile("Impaler",0,0,0,CMF_TRACKOWNER)
		Goto Homer
	Homer:
		TNT1 AAAAA 1 Bright A_CustomMissile("Impaler",0,0,0,CMF_TRACKOWNER)
		TNT1 A 0 Bright A_Playsound("SpineLaunch",CHAN_WEAPON,1.0,0)
		TNT1 A 0 Bright A_Countdown
		TNT1 A 0 Bright A_SeekerMissile(20,10)
		Loop
	Death:
		TNT1 A 2 Bright
		Stop
	}
}

ACTOR Impaler
{
PROJECTILE
Height 1
Radius 0
Speed 0
RENDERSTYLE Normal
Damage (0)
-NOGRAVITY
+FLOORHUGGER
+NOEXPLODEFLOOR
+FORCERADIUSDMG
+THRUSPECIES
+MTHRUSPECIES
+DONTHURTSPECIES
+DONTHARMSPECIES
Damagetype "AbyssalSatyr"
Obituary "%o was ripped by The Abyssal Satyr."
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_Playsound("SpineHit",CHAN_BODY,1.0,0)
		SPIK ABCDE 3 Bright
		TNT1 A 0 Bright A_Explode(random(10,80),64,0)
		SPIK DCBA 3 Bright
		Stop
	}
}
	 
Actor GroundShadowRift
{ 
Projectile
Height 8
Radius 13
Speed 25
FastSpeed 31
Bouncetype "Hexen"
BounceCount 8
BounceFactor 1.5
WallBounceFactor 1.5
MinmissileChance 1
Damage (0)
+ALWAYSFAST
+LOOKALLAROUND
+QUICKTORETALIATE
+NOTARGET
+DONTBLAST
+THRUACTORS
+FLOORHUGGER
+HEXENBOUNCE
+NODAMAGETHRUST
+FORCERADIUSDMG
+DONTHURTSPECIES
+DONTHARMSPECIES
+DONTHARMCLASS
Species "AbyssalSatyr"
Damagetype "AbyssalSatyr"
var int user_counter;
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_RearrangePointers(AAPTR_DEFAULT, AAPTR_TARGET, AAPTR_DEFAULT)
		TNT1 A 0 Bright A_SetUserVar("user_counter",67)
		TNT1 A 0 Bright A_PlaySound("hellion/smokeloop",CHAN_VOICE,1.0,1) 
	SpawnLoop:
		HESK A 1 Bright A_SpawnItem("ShadowRiftFX")
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,128,0,360,2)
		TNT1 A 0 Bright A_Jump(256,3)
		TNT1 A 0 Bright A_RearrangePointers(AAPTR_MASTER, AAPTR_DEFAULT, AAPTR_DEFAULT)
		TNT1 A 0 Bright A_Explode(Random(3,5),256)
		HESK B 1 Bright A_SpawnItem("ShadowRiftFX")
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,128,0,360,2)
		TNT1 A 0 Bright A_Jump(256,3)
		TNT1 A 0 Bright A_RearrangePointers(AAPTR_MASTER, AAPTR_DEFAULT, AAPTR_DEFAULT)
		TNT1 A 0 Bright A_Explode(Random(3,5),256)
		HESK C 1 Bright A_SpawnItem("ShadowRiftFX")
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,128,0,360,2)
		TNT1 A 0 Bright A_Jump(256,3)
		TNT1 A 0 Bright A_RearrangePointers(AAPTR_MASTER, AAPTR_DEFAULT, AAPTR_DEFAULT)
		TNT1 A 0 Bright A_Explode(Random(3,5),256)
		TNT1 A 0 Bright A_JumpIf(user_counter < 1,"Death")
		TNT1 A 0 Bright A_SetUserVar("user_counter",user_counter - 1)
		Loop
	Death:
		HESK A 1 Bright
		TNT1 AAAAAAAAA 0 Bright A_SpawnItem("ShadowRiftFX")
		TNT1 A 1 Bright A_PlaySound("HellionTracerFire",CHAN_VOICE,1.0,0)
		Stop
		/*
	XDeath:
		TNT1 A 0 Bright
		HESK A 1 Bright A_Explode(Random(20,45),128)
		TNT1 AAAAAAAAA 0 Bright A_SpawnItem("ShadowRiftFX")
		TNT1 A 1 Bright A_PlaySound("HellionTracerFire",CHAN_VOICE,1.0,0)
		Stop
		*/
	}
}

ACTOR ShadowRiftFX : RedParticleSpawner
{
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 A_SpawnItemEx("HellionSmoke",random(12,-12),random(12,-12),random(12,20),0,0,random(8,12),0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 1 A_SpawnItemEx("HellionSmoke2",random(24,-24),random(24,-24),random(2,10),0,0,random(2,6),0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		Stop
	}
}

ACTOR ASComet : Comet
{
Scale 0.95
Speed 30
FastSpeed 36
+DONTHURTSPECIES
+DONTHARMSPECIES
Species ""
Species "SatanGuard"
Damagetype ""
Damagetype "AbyssalSatyr"
States
	{
	Spawn:
		ZCMT AAAABBBBCCCC 1 Bright A_SpawnItemEx("ASCometTail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		Loop
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_Explode(300,220,0)
		TNT1 A 0 Bright A_SpawnItemEx("PurpleParticleSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		ZCMT DE 3 Bright
		TNT1 A 1 Bright A_SpawnItemEx("ASCometDeath",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		Stop
	}
}

ACTOR ASCometTail : CometTail
{
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 2 Bright
		ZCMT DEFGHI 2 Bright
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR ASCometDeath : CometDeath
{
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 AAA 0 A_CustomMissile("Kaboom25",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))	
		TNT1 AAA 0 A_CustomMissile("SmokeFX2",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		ZCMT JKLMN 3 Bright A_FadeOut(0.1,1)
		Stop
	}
}

ACTOR AbyssalImp
{
Monster
Health 800
Height 56
Radius 40//20
//RenderRadius 40
Mass 100
Speed 8
PainChance 50
MeleeDamage 15
BloodColor "Black"
+NOFEAR
-COUNTKILL
+Float
+AVOIDMELEE
+NoGravity
+FLOORCLIP
+MISSILEMORE
+MISSILEEVENMORE
+QUICKTORETALIATE
+DONTHURTSPECIES
+DONTHARMSPECIES
+DONTHARMCLASS
+DONTGIB
+NORADIUSDMG
+NOTARGET
+NOINFIGHTING
Species "AbyssalSatyr"
DamageType "AbyssalSatyr"
DamageFactor "PDTBFG", 0.25
DamageFactor "PDTBFGTracer", 0.25
DamageFactor "PlayerDevBall", 0.125
DamageFactor "PlayerDevBall2", 0.125
DamageFactor "PlayerDTBFGRailgunSlug", 0.125
DamageFactor "PlayerDevTracer", 0.125
DamageFactor "LegendaryPlayer", 0.3
DamageFactor "LegendaryGuruPlayer", 0.3
//No Infighting
Damagefactor "AbyssalSatyr", 0.0
DamageFactor "SatanGuard", 0.0
Damagefactor "Imps", 0.0
Damagefactor "VileFires", 0.0
Damagefactor "Heterodox", 0.0
Damagefactor "Damned", 0.0
DropItem "AbyssOrb", 8, 1
DropItem "LifeEssence", 96, 16
DropItem "ArmorBonusMax", 96, 16
DropItem "NewShell", 16, 12
SeeSound "legimp/sight"
PainSound "legimp/pain"
DeathSound "legimp/death"
ActiveSound "legimp/active"
MeleeSound "imp/melee"
Obituary "%o was slaughtered by an Abyssal Imp."
HitObituary "%o was ripped into bloody pieces by a Abyssal Imp."
var int user_lcounter;
Tag "\cmAbyssal Imp\c-"
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_SetUserVar("user_lcounter",100)
		Goto SpawnLoop
	SpawnLoop:
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		ABBN A 10 Bright A_Look
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		ABBN Q 10 Bright A_Look
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_JumpIf(user_lcounter < 1,"Vanish")
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter-1)
		Loop
	Idle:
		TNT1 A 0
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		ABBN A 10 Bright A_Look
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		ABBN Q 10 Bright A_Look
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_JumpIf(user_lcounter < 1,"Vanish")
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter-1)
		Loop
	See:
		TNT1 A 0
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		ABBN AA 3 Bright A_Chase
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		ABBN BB 3 Bright A_Chase
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		ABBN CC 3 Bright A_Chase
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		ABBN DD 3 Bright A_Chase
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_JumpIf(user_lcounter < 1,"Vanish")
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter-1)
		TNT1 A 0 A_Jump(30,"Teleport1")
		TNT1 A 0 A_Jump(62,"Rush")
		TNT1 A 0 A_Jump(50,"AirDodge")
		Loop
	AirDodge:
		TNT1 A 0
		TNT1 A 0 A_Jump(255,"Right","Left","Back","BackLeftRange","BackRightRange")
		GoTo See
	Right:
		TNT1 A 0
		TNT1 A 0 ThrustThing(angle*256/360+64,30,0,0)
		ABBN A 5 Bright
		GoTo See
	Left:
		TNT1 A 0
		TNT1 A 0 ThrustThing(angle*256/360+192,30,0,0)
		ABBN A 5 Bright
		GoTo See
	Back:
		TNT1 A 0
		TNT1 A 0 ThrustThing(angle*256/360+128,30,0,0)
		ABBN A 5 Bright
		GoTo See
	BackLeftRange:
		TNT1 A 0
		TNT1 A 0 ThrustThing(angle*256/360+random(133,187),30,0,0)
		ABBN A 5 Bright
		GoTo See
	BackRightRange:
		TNT1 A 0
		TNT1 A 0 ThrustThing(angle*256/360+random(69,123),30,0,0)
		ABBN A 5 Bright 
		GoTo See
	Melee:
		ABBN EEEEEEFFFFFF 1 Bright A_FaceTarget
		ABBN F 5 Bright A_MeleeAttack
		Goto See
	WrongTarget:
		TNT1 A 0
		TNT1 A 0 A_ClearTarget
		TNT1 A 0 A_ChangeFlag(FRIENDLY,0)
		TNT1 A 0 ACS_NamedExecuteAlways("Hem_SetSpecies",0,4)
		Goto See		
	Missile:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInTargetInventory("IsAnAbyssalSatyr",1,"WrongTarget")
		TNT1 A 0 A_SetShootable
		TNT1 A 0 A_UnsetInvulnerable
		TNT1 A 0 A_SetTranslucent(1)
		TNT1 A 0 A_Jump(128,"TrailBouncers")
		Goto Normal
	Normal:
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		ABBN E 5 A_FaceTarget
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		ABBN E 5 A_FaceTarget
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		ABBN E 5 A_FaceTarget
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		ABBN E 5 A_FaceTarget
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		ABBN E 5 A_FaceTarget
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		ABBN E 5 A_FaceTarget
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		ABBN FFFFFF 1 A_FaceTarget
		TNT1 A 0 A_CustomMissile("AbyssalImpFireball",47,0,0,CMF_TRACKOWNER)
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		ABBM F 5
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		ABBN FFFFFF 1 A_FaceTarget
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_CustomMissile("AbyssalImpFireball",47,0,0,CMF_TRACKOWNER)
		ABBM F 5
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		ABBN FFFFFF 1 A_FaceTarget
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_CustomMissile("AbyssalImpFireball",47,0,0,CMF_TRACKOWNER)
		ABBM F 5
		ABBN FFFFFF 1 A_FaceTarget
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_CustomMissile("AbyssalImpFireball",47,0,0,CMF_TRACKOWNER)
		ABBM F 5
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		ABBN FFFFFF 1 A_FaceTarget
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_CustomMissile("AbyssalImpFireball",47,0,0,CMF_TRACKOWNER)
		ABBM F 5
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		ABBN FFFFFF 1 A_FaceTarget
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_CustomMissile("AbyssalImpFireball",47,0,0,CMF_TRACKOWNER)
		ABBM F 5
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		ABBN FFFFFF 1 A_FaceTarget
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_CustomMissile("AbyssalImpFireball",47,0,0,CMF_TRACKOWNER)
		ABBM F 5
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		ABBN FFFFFF 1 A_FaceTarget
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_CustomMissile("AbyssalImpFireball",47,0,0,CMF_TRACKOWNER)
		ABBM F 5
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		ABBN FFFFFF 1 A_FaceTarget
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_CustomMissile("AbyssalImpFireball",47,0,0,CMF_TRACKOWNER)
		ABBM F 35
		TNT1 A 0 A_Jump(64,"TrailBouncers")
		GoTo See
	TrailBouncers:
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		ABBN E 5 A_FaceTarget
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		ABBN E 5 A_FaceTarget
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		ABBN E 5 A_FaceTarget
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		ABBN E 5 A_FaceTarget
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		ABBN E 5 A_FaceTarget
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		ABBN E 5 A_FaceTarget
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		ABBN FFFFF 1 A_FaceTarget
		TNT1 AA 0 A_CustomMissile("GroundShadowRift",0,0,random(-15,15),CMF_AIMDIRECTION|CMF_TRACKOWNER)
		ABBM F 40
		GoTo See
	Rush:
		TNT1 A 0 A_SpawnItemEx("AbyssalImpGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		ABBN A 1 Bright A_Chase
		TNT1 A 0 A_SpawnItemEx("AbyssalImpGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		ABBN A 1 Bright A_Chase
		TNT1 A 0 A_SpawnItemEx("AbyssalImpGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		ABBN A 1 Bright A_Chase
		TNT1 A 0 A_SpawnItemEx("AbyssalImpGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		ABBN A 1 Bright A_Chase
		TNT1 A 0 A_SpawnItemEx("AbyssalImpGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		ABBN A 1 Bright A_Chase
		TNT1 A 0 A_SpawnItemEx("AbyssalImpGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		ABBN A 1 Bright A_Chase
		TNT1 A 0 A_SpawnItemEx("AbyssalImpGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		ABBN A 1 Bright A_Chase
		TNT1 A 0 A_SpawnItemEx("AbyssalImpGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		ABBN A 1 Bright A_Chase
		TNT1 A 0 A_Jump(84,"See")
		Loop
	Teleport1:
		ABBN A 1 A_UnSetShootable
		TNT1 AAAA 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		ABBN AAAAAAAAAA 1 A_FadeOut(0.1,0)
		TNT1 A 2 
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 Bright A_Wander
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 Bright A_Wander
		TNT1 A 2 A_PlayWeaponSound("hellion/smokeloop")
		TNT1 AAAA 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		ABBN AAAAAAAAAA 1 A_FadeIn(0.1)
		ABBN A 1 A_SetShootable
		Goto See		
	Pain.Crush:
		TNT1 A 0
		TNT1 A 0 A_Jump(60,"Teleport1")
	Pain:
		TNT1 A 0
		TNT1 A 0 A_Jump(50,"Teleport1")
		ABBN H 2 Bright
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		ABBN H 7 Bright A_Pain
		TNT1 A 0 A_SpawnItem("HellionSmokeSpawner",0,0,0,0)
		Goto See
	Vanish:
		TNT1 A 0
		ABBN D 2 A_FadeOut(0.1,1)
		Wait
	Death:
		TNT1 A 0
		ABBN I 6 A_ScreamAndUnblock
		ABBN JKLMN 6
		ABBN N 2 A_FadeOut(0.1,1)
		Wait
	}
}

ACTOR AbyssalImpGhost
{
PROJECTILE
Scale 1.1
Radius 20
Height 56
Speed 0
Alpha 0.7
RENDERSTYLE Translucent
+NOINTERACTION
+CLIENTSIDEONLY
+NONETID
States
{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_CheckSight("Toaster")
		TNT1 A 1 Bright
		ABBN A 2 A_FadeOut(0.2,1)
		Wait
	Toaster:
		TNT1 A 1 Bright
		Stop		
	}
}

ACTOR AbyssalImpFireball : HeterodoxBall
{
Species ""
Species "AbyssalSatyr"
Damagetype ""
Damagetype "AbyssalSatyr"
States
	{
	Spawn:
		TNT1 A 0 Bright A_Seekermissile(12,1)
		TNT1 AA 0 Bright A_CStaffMissileSlither
		NEBL AB 1 Bright A_SpawnItemEx("HeterodoxBallTrail",0,0,RANDOM(-3,3),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 Bright A_CountDown
		Loop
	}
}

Actor AbyssalSatyrDarkFireball : HeterodoxBall
{
+NOTIMEFREEZE
Species ""
Species "AbyssalSatyr"
Damagetype ""
Damagetype "AbyssalSatyr"
States
	{
	Spawn:
		NEBL A 1 Bright A_SpawnItemEx("HeterodoxBallTrail",0,0,RANDOM(-3,3),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 Bright A_Weave(3,0,1.0,0.0)
		NEBL B 1 Bright A_SpawnItemEx("HeterodoxBallTrail",0,0,RANDOM(-3,3),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 Bright A_Weave(3,0,1.0,0.0)
		TNT1 A 0 Bright A_Seekermissile(5,17)
		TNT1 A 0 Bright A_CountDown
		Loop
	XDeath:
		TNT1 A 0 Bright
		TNT1 A 0 Bright ACS_NAmedExecuteAlways("Hem_DmgInvul",0,AAPTR_TRACER,1)
		Goto Super::XDeath
	}
}

Actor AbyssalShieldSpawner
{
Speed 75
Height 1
Radius 1
+NOCLIP
+THRUACTORS
+REFLECTIVE
+NOTIMEFREEZE
+BLOODLESSIMPACT
States
	{
	Spawn:
		TNT1 AAAAAAAAAA 0 Bright
		GoTo Death
	Death:
		TNT1 A 1 A_SpawnItemEx("AbyssalShield",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		Stop
	}
}

Actor AbyssalShieldSpawner2 : AbyssalShieldSpawner
{
States
	{
	Spawn:
		TNT1 AAAAAA 0 Bright
		GoTo Death
	}
}

Actor AbyssalShieldSpawner3 : AbyssalShieldSpawner
{
States
	{
	Spawn:
		TNT1 AAAA 0 Bright
		GoTo Death
	}
}

Actor AbyssalShieldSpawner4 : AbyssalShieldSpawner
{
States
	{
	Spawn:
		TNT1 AA 0 Bright
		GoTo Death
	}
}

Actor AbyssalShieldSpawner5 : AbyssalShieldSpawner
{
States
	{
	Spawn:
		TNT1 A 0 Bright
		GoTo Death
	}
}

Actor AbyssalShield
{
Height 55
Radius 55
Mass 0x7FFFFFFF
Scale 3.5
Renderstyle Add
Alpha 1.0
Reactiontime 37
+NOCLIP
+DONTRIP
+NOGRAVITY
+NODAMAGE
+REFLECTIVE
+INVULNERABLE
-FLOAT
+SOLID
+NOBLOOD
+NOTARGET
+SHOOTABLE
+NOTIMEFREEZE
+DONTHARMSPECIES
+DONTHARMCLASS
Species "AbyssalSatyr"
DamageType "AbyssalSatyr"
DeathSound "Monster/hadsit"
States
	{
	Spawn:
		APBL A 2 Bright
		APBL B 2 Bright
		TNT1 A 0 Bright A_CountDown
		Loop
	Death:
		ENRS A 2 Bright
		ENRS A 1 Bright A_Explode(125,130,0)
		TNT1 A 0 Bright A_Scream
		TNT1 AAAAAAAA 0 Bright A_CustomMissile("KaboomAby2",17,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AAAAAA 0 Bright A_CustomMissile("KaboomAby",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))	
		TNT1 AAAAAA 0 Bright A_CustomMissile("LegendarySmokeFX4",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AAAA 0 Bright A_SpawnItemEx("PurpleParticleSpawner",0,0,17,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 1 Bright A_SpawnItemEx("LNCometDeath",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		Stop
	}
}

ACTOR KaboomAby : Kaboom11
{
Speed 2
Scale 1
+NOTIMEFREEZE
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		FXPP AABBCDEFGHIJKLM 2 Bright A_FadeOut(0.05,1)
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR KaboomAby2 : KaboomAby
{
Speed 1
Scale 0.9
+NOTIMEFREEZE
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		FXPP AABBCDEFGHIJKLM 1 Bright A_FadeOut(0.05,1)
		Stop
	}
}

Actor ObsidianStake
{
Health 13
Height 128
Radius 10
Speed 0
Mass 0x7FFFFFFF
-COUNTKILL
+SOLID
+FloorClip
+NOTARGET
+NOBLOOD
+SHOOTABLE
+FLOORHUGGER
+MOVEWITHSECTOR
-INVULNERABLE
+NOTIMEFREEZE
+ThruSpecies
+DontHurtSpecies
+DontHarmSpecies
Species "AbyssalSatyr"
Damagetype "AbyssalSatyr"
DamageFactor "SatanGuard", 0.0
DamageFactor "AbyssalSatyr", 0.0
Damagefactor "Acid", 0.0
Damagefactor "Fire", 0.001
Damagefactor "Poison", 0.0
Damagefactor "PoisonCloud", 0.0
Damagefactor "Electric", 0.001
Damagefactor "Disintegrate", 0.001
DamageFactor "Ice", 0.0
Damagefactor "VileFires", 0.0
Damagefactor "Heterodox", 0.0
Damagefactor "Damned", 0.0
DamageFactor "DemolisherEx", 0.0
Damagefactor "Rocket", 0.01
DamageFactor 0.15
Obituary "%o was splintered by an Obsidian Spike."
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 1 A_SetInvulnerable
		TSPK VUTSRQPONMLKJIHGFEDCBA 1
		Goto Missile
	Missile:
		TNT1 A 0 A_UnSetInvulnerable
		TSPK A 35
		TSPK A 35
		TSPK A 35
		TSPK A 35
		TSPK A 35
		Goto Death
	Death:
		TNT1 A 0 A_PlaySound("StoneArmor/Destroy",0,1.5,0)
		TSPK A 1 A_SpawnItemEx("StoneBitsSpawner2",random(-40,40),random(-40,40),0,0,0,0,random(0,360),SXF_CLIENTSIDE,128)
		TSPK BCD 1
		TSPK E 1 A_SpawnItemEx("StoneBitsSpawner2",random(-40,40),random(-40,40),0,0,0,0,random(0,360),SXF_CLIENTSIDE,128)
		TSPK FGH 1
		TSPK I 1 A_SpawnItemEx("StoneBitsSpawner2",random(-40,40),random(-40,40),0,0,0,0,random(0,360),SXF_CLIENTSIDE,128)
		TSPK JKL 1
		TSPK M 1 A_SpawnItemEx("StoneBitsSpawner2",random(-40,40),random(-40,40),0,0,0,0,random(0,360),SXF_CLIENTSIDE,128)
		TSPK NOP 1
		TSPK Q 1 A_SpawnItemEx("StoneBitsSpawner2",random(-40,40),random(-40,40),0,0,0,0,random(0,360),SXF_CLIENTSIDE,128)
		TSPK RST 1
		TSPK UV 1 A_SpawnItemEx("StoneBitsSpawner2",random(-40,40),random(-40,40),0,0,0,0,random(0,360),SXF_CLIENTSIDE,128)
		TNT1 AAAA 0 A_CustomMissile("SmokeFX",10,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 A 1 A_NoBlocking
		Stop
	}
}

Actor ObsidianStakeBloody : ObsidianStake
{
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 1 A_SetInvulnerable
		TSP2 VUTSRQPONMLKJIHGFEDCBA 1
		Goto Missile
	Missile:
		TNT1 A 0 A_UnSetInvulnerable
		TSP2 A 35
		TSP2 A 35
		TSP2 A 35
		TSP2 A 35
		TSP2 A 35
		Goto Death
	Death:
		TNT1 A 0 A_PlaySound("StoneArmor/Destroy",0,1.5,0)
		TSP2 A 1 A_SpawnItemEx("StoneBitsSpawner2",random(-40,40),random(-40,40),0,0,0,0,random(0,360),SXF_CLIENTSIDE,128)
		TSP2 BCD 1
		TSP2 E 1 A_SpawnItemEx("StoneBitsSpawner2",random(-40,40),random(-40,40),0,0,0,0,random(0,360),SXF_CLIENTSIDE,128)
		TSP2 FGH 1
		TSP2 I 1 A_SpawnItemEx("StoneBitsSpawner2",random(-40,40),random(-40,40),0,0,0,0,random(0,360),SXF_CLIENTSIDE,128)
		TSP2 JKL 1
		TSP2 M 1 A_SpawnItemEx("StoneBitsSpawner2",random(-40,40),random(-40,40),0,0,0,0,random(0,360),SXF_CLIENTSIDE,128)
		TSP2 NOP 1
		TSP2 Q 1 A_SpawnItemEx("StoneBitsSpawner2",random(-40,40),random(-40,40),0,0,0,0,random(0,360),SXF_CLIENTSIDE,128)
		TSP2 RST 1
		TSP2 UV 1 A_SpawnItemEx("StoneBitsSpawner2",random(-40,40),random(-40,40),0,0,0,0,random(0,360),SXF_CLIENTSIDE,128)
		TNT1 AAAA 0 A_CustomMissile("SmokeFX",10,0,random(0,360),2,random(0,360))
		TNT1 A 1 A_NoBlocking
		Stop
	}
}

Actor SlaveAdvisor : Advisor
{
Health 1500
Painchance "PlayerPhase", 0
Painchance "Player", 0
Painchance "Players", 0
+FRIENDLY
+LookAllAround
Species ""
Species "Player"
DamageType ""
Damagetype "PlayerPhase"
DamageFactor "PDTBFG", 0.25
DamageFactor "PDTBFGTracer", 0.25
DamageFactor "PlayerDevBall", 0.125
DamageFactor "PlayerDevBall2", 0.125
DamageFactor "PlayerDTBFGRailgunSlug", 0.125
DamageFactor "PlayerDevTracer", 0.125
DamageFactor "Legendary", 0.25
DamageFactor "Legendary1", 0.25
DamageFactor "LegendaryPlayer", 0.3
DamageFactor "LegendaryGuruPlayer", 0.3
DamageFactor 0.75
//No Infighting
Damagefactor "PlayerPhase", 0.0
Damagefactor "AbyssalSatyr", 0.0
DamageFactor "SatanGuard", 0.0
Damagefactor "VileFires", 0.0
Damagefactor "Heterodox", 0.0
Damagefactor "Damned", 0.0
Damagefactor "Player", 0.0
Damagefactor "Players", 0.0
Damagefactor "Explosion", 0.0
DropItem ""
DropItem "LifeEssence", 256, 16
DropItem "ArmorBonusMax", 256, 16
Tag "Summoned Slave Advisor"
States
	{
	Missile:
		TNT1 A 0
		TNT1 A 0 Healthing(15)
		TNT1 A 0 A_JumpIfTargetInLOS("GoCloser",90,JLOSF_CLOSENOJUMP|JLOSF_DEADNOJUMP|JLOSF_TARGETLOS,0,2000)
		ADVS AAAAA 1 A_FaceTarget(45)
		ADVS DDDDDEEEEEFF 1 Bright A_FaceTarget
		ADVS F 1 Bright A_CustomMissile("SlaveAdvisorBall",45,0,0,CMF_TRACKOWNER)
		ADVS F 2 Bright
		ADVS EDAA 5
		GoTo See
	}
}

Actor SlaveAdvisor2 : SlaveAdvisor
{
Health 1600
}

Actor SlaveAdvisorBall : AdvisorBall
{
Damage (6*random(4,8))
Species ""
Species "Player"
Damagetype ""
Damagetype "PlayerPhase"
}

Actor AbyssalSlaveSpawner : ExileCaster
{
Speed 20
+THRUACTORS
States
	{
	Spawn:
		TNT1 AAAAA 1
		TNT1 A 0 A_Die
		Goto Death
	Death:
		TNT1 A 1
		TNT1 A 1 A_SpawnItemEx("ObsidianFlare2",random(-2,2),random(-2,2),random(4,9),random(-3,3),random(-3,3),random(3,8),random(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 1 A_PlaySound("AdvisorTeleport",CHAN_WEAPON,1.0,0)
		TNT1 AAAA 1 A_SpawnItemEx("PurpleParticleSpawner",random(-2,2),random(-2,2),random(4,9),random(-3,3),random(-3,3),random(3,8),random(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 1 A_SpawnItemEx("SlaveAdvisor",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS|SXF_SETMASTER)
		Stop
	}
}

Actor AbyssalSlaveSpawner2 : AbyssalSlaveSpawner
{
States
	{
	Spawn:
		TNT1 AAAAA 1
		TNT1 A 0 A_Die
		Goto Death
	Death:
		TNT1 A 1
		TNT1 A 1 A_SpawnItemEx("ObsidianFlare2",random(-2,2),random(-2,2),random(4,9),random(-3,3),random(-3,3),random(3,8),random(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 1 A_PlaySound("AdvisorTeleport",CHAN_WEAPON,1.0,0)
		TNT1 AAAA 1 A_SpawnItemEx("PurpleParticleSpawner",random(-2,2),random(-2,2),random(4,9),random(-3,3),random(-3,3),random(3,8),random(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 1 A_SpawnItemEx("SlaveAdvisor2",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS|SXF_SETMASTER)
		Stop
	}
}

Actor DesertHornet~ 30339
{
States
	{
	Spawn:
		TNT1 A 1
		Stop
	}
}