Actor Exos
{
Monster
Health 4500
WoundHealth 500
GibHealth 1000
Height 110
Radius 40
Mass 1000
Speed 16
MinMissileChance 160
Painchance "SS", 0
Painchance "Crush", 256
Painchance "Mine", 256
Painchance "BFG9500Ball", 256
Painchance "CustomSpray", 256
PainChance "PlayerDevBall", 256
PainChance "PlayerDevBall2", 256
PainChance "BFG10K", 256
PainChance "DBFG10K", 256
PainChance "PlayerDBFG10K", 256
PainChance "PlayerDBFG10K2", 256
PainChance "PDTBFG", 256
PainChance "DTBFG10KBall", 256
PainChance "NuclearFire", 128
PainChance 20
+NOFEAR
+BOSS
+BOSSDEATH
+NOICEDEATH
+NORADIUSDMG
+DONTMORPH
+NOTARGET
-NOINFIGHTING
+ALWAYSFAST
+MISSILEMORE
+QUICKTORETALIATE
+TELESTOMP
+NOTELEFRAG
+NOBLOOD
+FLOORCLIP
+NEVERRESPAWN
+DONTHARMSPECIES
+DONTHURTSPECIES
+DONTHARMCLASS
Species "Cybers"
Damagetype "Exos"
Damagefactor "Acid", 0.1
Damagefactor "Fire", 0.01
Damagefactor "Poison", 0.0
Damagefactor "PoisonCloud", 0.0
Damagefactor "Electric", 0.01
Damagefactor "Disintegrate", 0.1
Damagefactor "Mine", 0.1
Damagefactor "Explosion", 0.1
Damagefactor "NuclearFire", 0.01
DamageFactor "Extreme", 0.01
DamageFactor "Ice", 0.05
DamageFactor "FreezerBurn", 0.05
DamageFactor "CustomSpray", 0.01
DamageFactor "BFG9500Ball", 0.01
DamageFactor "PDTBFG", 0.03
DamageFactor "PDTBFGTracer", 0.03
DamageFactor "PyroShot", 0.01
DamageFactor "PDTPuff", 0.01
DamageFactor "BFGSplash", 0.0
DamageFactor "BFGSpray", 0.0
DamageFactor "DBFG10K", 0.015
DamageFactor "DBFG10K2", 0.015
DamageFactor "PlayerDBFG10K", 0.015
DamageFactor "PlayerDBFG10K2", 0.015
DamageFactor "DBFG", 0.015
DamageFactor "DBFG2", 0.015
DamageFactor "Player", 0.01
DamageFactor "PlayerPyro", 0.01
DamageFactor "PlayerDBFG", 0.015
DamageFactor "PlayerDBFG2", 0.015
DamageFactor "PlayerBHole", 0.05
DamageFactor "Players", 0.02
DamageFactor "PlayerDevBall", 0.02
DamageFactor "PlayerDevBall2", 0.02
DamageFactor "PlayerDBFG10K", 0.015
DamageFactor "PlayerDevTracer", 0.02
DamageFactor "PlayerHellfire", 0.25
DamageFactor "PlayerDTBFGRailgunSlug", 0.02
DamageFactor "Legendary", 0.015
DamageFactor "LegendaryPlayer", 0.015
DamageFactor "SuperWeapon", 0.0
DamageFactor "LegendaryGuruPlayer", 0.015
DamageFactor "SatanGuard", 0.01
DamageFactor "AbyssalSatyr", 0.01
Damagefactor "Moloch", 0.01
Damagefactor "Melee", 0.05
Damagefactor 0.35
//No Infighting
DamageFactor "RST", 0.0
DamageFactor "MiniRocket", 0.0
DamageFactor "SS", 0.0
DamageFactor "Exos", 0.0
DamageFactor "ZombieDev", 0.0
DamageFactor "Legendary1", 0.0
DamageFactor "LegendaryGuru", 0.0
DamageFactor "UltimateLegendary", 0.0
DamageFactor "Terminator", 0.0
DamageFactor "Nobles", 0.0
DamageFactor "VileFires", 0.0
DamageFactor "DarkBruiserBFG10K", 0.0
DamageFactor "DarkBruiserRailgunSlug", 0.0
DamageFactor "Cybers", 0.0
DamageFactor "Hell", 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 "NobleComet", 0.0
DamageFactor "CacoComet", 0.0
DamageFactor "CadaverRocket", 0.0
DamageFactor "HellComet", 0.0
DamageFactor "HFCyber", 0.0
DropItem "BossLifeEssence", 256, 125
DropItem "NemesisArmorBonusMax", 256, 40
DropItem "PureRage", 128
DropItem "PureRage", 128
DropItem "ArmorCharge", 128, 4
DropItem "PortableMedCellPack", 128, 1
DropItem "HealthFlask", 128, 4
DropItem "BulletBox" 128, 400
DropItem "BulletMag" 128, 12
DropItem "DemonAmmoBox", 128
DropItem "Missile" 96, 25
DropItem "AmmoPack", 196, 2
DropItem "MineAmmo", 128, 1
DropItem "DemonicChalice", 32, 1
DropItem "SkullOfPower", 32, 1
SEESOUND "Exos/See"
ACTIVESOUND "Exos/Active"
PAINSOUND "Exos/Pain"
DEATHSOUND "Exos/Die"
MeleeSound ""
Obituary "%o was exterminated by the Exos."
Tag "Exos"
var int user_music;
var int user_currenthp;
var int user_lcounter;
var int user_rush;
var int user_pcount;
var int user_missile;
States
	{
	Spawn:
		EXOS A 1
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		TNT1 A 0 A_SetUserVar("user_pcount",0)
		TNT1 A 0 A_SetUserVar("user_lcounter",0)
		Goto SpawnLoop1
	SpawnLoop1:
		EXOS A 10 A_Look
		TNT1 A 0 A_JumpIf(user_currenthp > ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"),"Idle")
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter+1)
		TNT1 A 0 A_JumpIf(user_lcounter < 34,"SpawnLoop1")
		EXOS A 1 A_Jump(150,"SpawnLoop2")
		TNT1 A 0 A_CustomMissile("HemBeholderSpawner",20,0,-90,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		EXOS A 1 A_Jump(16,"SpawnLoop2")
		TNT1 A 0 A_CustomMissile("HemBeholderSpawner",20,0,-45,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		EXOS A 1 A_Jump(16,"SpawnLoop2")
		TNT1 A 0 A_CustomMissile("HemBeholderSpawner",20,0,45,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		EXOS A 1 A_Jump(16,"SpawnLoop2")
		TNT1 A 0 A_CustomMissile("HemBeholderSpawner",20,0,90,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		Goto SpawnLoop2
	SpawnLoop2:
		EXOS 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_CheckFlag(FRIENDLY,2)
		TNT1 A 0 A_JumpIfInventory("HemWasRaised",1,"Vanish")
		TNT1 A 0 A_SetSolid
		TNT1 A 0 A_ChangeFlag(NOBLOCKMAP,0)
		TNT1 A 0 A_SetShootable
		TNT1 A 0 A_UnSetInvulnerable
		TNT1 A 0 A_SetTranslucent(1)
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_SetUserVar("user_pcount",0)
		Goto IdleLoop
	IdleLoop:
		EXOS AA 6 A_Wander
		TNT1 A 0 A_Look
		EXOS BB 6 A_Wander
		TNT1 A 0 A_Look
		TNT1 A 0 HealThing(2)
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		TNT1 A 0 A_SpawnItemEx("ExosStep",0,0,5,0,0,-20)
		EXOS CC 6 A_Wander
		TNT1 A 0 A_Look
		EXOS DD 6 A_Wander
		TNT1 A 0 A_Look
		TNT1 A 0 HealThing(2)
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		TNT1 A 0 A_SpawnItemEx("ExosStep",0,0,5,0,0,-20)
		Loop
	See:
		TNT1 A 0
		TNT1 A 0 A_CheckFlag(FRIENDLY,2)
		TNT1 A 0 A_JumpIfInventory("HemWasRaised",1,"Vanish")
		TNT1 A 0 A_SetSolid
		TNT1 A 0 A_ChangeFlag(NOBLOCKMAP,0)
		TNT1 A 0 A_SetShootable
		TNT1 A 0 A_UnSetInvulnerable
		TNT1 A 0 A_SetTranslucent(1)
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_JumpIf(user_music == 1,3)
		TNT1 A 0 ACS_NamedExecuteAlways("StartMonsterMusic",0,81)
		TNT1 A 0 A_SetUserVar("user_music",1)
		TNT1 A 0
		Goto SeeLoop
	SeeLoop:
		EXOS AABB 4 A_Chase
		TNT1 A 0 A_SpawnItemEx("ExosStep",0,0,5,0,0,-20)
		EXOS CCDD 4 A_Chase
		TNT1 A 0 A_Jump(128,2)
		TNT1 A 0 A_JumpIfHealthLower((ACS_NamedExecuteWithResult("Hem_SpawnHealth")*0.30),"Teleport1")
		TNT1 AA 0
		TNT1 A 0 A_SpawnItemEx("ExosStep",0,0,5,0,0,-20)
		Loop
	See2:
		TNT1 A 0
		TNT1 A 0 A_CheckFlag(FRIENDLY,2)
		TNT1 A 0 A_JumpIfInventory("HemWasRaised",1,"Vanish")
		TNT1 A 0 A_SetSolid
		TNT1 A 0 A_ChangeFlag(NOBLOCKMAP,0)
		TNT1 A 0 A_SetShootable
		TNT1 A 0 A_UnSetInvulnerable
		TNT1 A 0 A_SetTranslucent(1)
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_SetUserVar("user_lcounter",10+random(-5,5))
		Goto SeeLoop2
	SeeLoop2:
		EXOS A 4 A_Chase("","")
		TNT1 A 0 A_JumpIfInTargetLOS("Teleport2",360,JLOSF_DEADNOJUMP,1000)
		EXOS A 4 A_Chase("","")
		TNT1 A 0 A_JumpIfInTargetLOS("Teleport2",360,JLOSF_DEADNOJUMP,1000)
		EXOS B 4 A_Chase("","")
		TNT1 A 0 A_JumpIfInTargetLOS("Teleport2",360,JLOSF_DEADNOJUMP,1000)
		EXOS B 4 A_Chase("","")
		TNT1 A 0 A_JumpIfInTargetLOS("Teleport2",360,JLOSF_DEADNOJUMP,1000)
		TNT1 A 0 A_SpawnItemEx("ExosStep",0,0,5,0,0,-20)
		EXOS C 4 A_Chase("","")
		TNT1 A 0 A_JumpIfInTargetLOS("Teleport2",360,JLOSF_DEADNOJUMP,1000)
		EXOS C 4 A_Chase("","")
		TNT1 A 0 A_JumpIfInTargetLOS("Teleport2",360,JLOSF_DEADNOJUMP,1000)
		EXOS D 4 A_Chase("","")
		TNT1 A 0 A_JumpIfInTargetLOS("Teleport2",360,JLOSF_DEADNOJUMP,1000)
		EXOS D 4 A_Chase("","")
		TNT1 A 0 A_JumpIfInTargetLOS("Teleport2",360,JLOSF_DEADNOJUMP,1000)
		TNT1 A 0 A_SpawnItemEx("ExosStep",0,0,5,0,0,-20)
		TNT1 A 0 A_JumpIf(user_lcounter < 1,"See")
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter-1)
		Loop
	Melee:
	Missile:
		TNT1 AAA 0
		TNT1 A 0 A_SetSolid
		TNT1 A 0 A_ChangeFlag(NOBLOCKMAP,0)
		TNT1 A 0 A_SetShootable
		TNT1 A 0 A_UnSetInvulnerable
		TNT1 A 0 A_SetTranslucent(1)
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_SetUserVar("user_missile",0)
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_JumpIfTargetInLOS("Rockets",90,JLOSF_CLOSENOJUMP|JLOSF_DEADNOJUMP|JLOSF_TARGETLOS,0,500)
		Goto ChainGuns
	ChainGuns:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("ProjHitCheck",1)
		TNT1 A 0 A_TakeInventory("ProjMissCheck",1)
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_CustomMissile("hit-testing",55,0,0,CMF_TRACKOWNER|CMF_CHECKTARGETDEAD)
		EXOS EEEE 1 A_FaceTarget
		TNT1 A 0 A_SetUserVar("user_lcounter",50)
		TNT1 A 0 A_JumpIfInventory("ProjHitCheck",1,"ChainGunsLoop")
		TNT1 A 0 A_JumpIfInventory("ProjMissCheck",1,"MissileMiss")
		Goto MissileMiss2
	ChainGunsLoop:
		TNT1 A 0 A_PlaySound("hitler/fire",CHAN_WEAPON,1.0,0)
		EXOS F 1 Bright A_CustomBulletAttack(4.3,2.6,1,100+random(-10,1),"ExosBulletPuff",0,CBAF_NORANDOM)
		TNT1 A 0 A_CustomMissile("MonsterExplosiveTracer2",77,23,Random(5,-5),0)
		EXOS E 1 A_SpawnItemEx("RifleCasing",35,23,76,Random(2,6),0,Random(1,3),Random(-30,-35),128)
		TNT1 A 0 A_PlaySound("hitler/fire",CHAN_WEAPON,1.0,0)
		EXOS F 1 Bright A_CustomBulletAttack(4.3,2.6,1,100+random(-10,1),"ExosBulletPuff",0,CBAF_NORANDOM)
		TNT1 A 0 A_CustomMissile("MonsterExplosiveTracer2",77,23,Random(5,-5),0)
		EXOS E 1 A_SpawnItemEx("RifleCasing",35,23,76,Random(2,6),0,Random(1,3),Random(-40,-45),128)
		TNT1 A 0 A_PlaySound("hitler/fire",CHAN_WEAPON,1.0,0)
		EXOS F 1 Bright A_CustomBulletAttack(4.3,2.6,1,100+random(-10,1),"ExosBulletPuff",0,CBAF_NORANDOM)
		TNT1 A 0 A_CustomMissile("MonsterExplosiveTracer2",77,23,Random(5,-5),0)
		EXOS E 1 A_SpawnItemEx("RifleCasing",35,23,76,Random(2,6),0,Random(1,3),Random(-40,-45),128)
		TNT1 A 0 A_JumpIf(user_lcounter < 1,"Rockets")
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter-1)
		TNT1 A 0 A_MonsterRefire(0,"See")
		Loop
	MissileMiss:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"Pain.Mine","See2","See2")
		Goto See
	MissileMiss2:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"Rockets","See")
		Goto See
	Rockets:
		TNT1 A 0
		TNT1 A 0 A_Jump(96,"Rockets2","Rockets3")
		EXOS G 4 A_FaceTarget
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 A_ChangeFlag(Reflective,1)
		TNT1 A 0 Bright A_SpawnItemEx("HemLineSpawner")
		EXOS H 4 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("ExosMiniRocket",79,-15,0,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("ExosMiniRocket",79,15,0,CMF_TRACKOWNER)
		TNT1 A 0 Bright A_SpawnItemEx("HemLineSpawner")
		EXOS H 4 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("ExosMiniRocket",79,-15,0,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("ExosMiniRocket",79,15,0,CMF_TRACKOWNER)
		TNT1 A 0 Bright A_SpawnItemEx("HemLineSpawner")
		EXOS G 4 Bright A_FaceTarget
		TNT1 A 0 Bright A_SpawnItemEx("HemLineSpawner")
		EXOS H 4 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("ExosMiniRocket",79,-15,0,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("ExosMiniRocket",79,15,0,CMF_TRACKOWNER)
		TNT1 A 0 Bright A_SpawnItemEx("HemLineSpawner")
		EXOS H 4 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("ExosMiniRocket",79,-15,0,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("ExosMiniRocket",79,15,0,CMF_TRACKOWNER)
		TNT1 A 0 Bright A_SpawnItemEx("HemLineSpawner")
		EXOS G 4 Bright
		TNT1 A 0 Bright A_SpawnItemEx("HemLineSpawner")
		TNT1 A 0 A_ChangeFlag(Reflective,0)
		TNT1 A 0 A_UnsetInvulnerable
		EXOS G 4 A_JumpIfTargetInLOS("ChainGuns",90,JLOSF_DEADNOJUMP|JLOSF_TARGETLOS)
		Goto See
	Rockets2:
		EXOS G 4 A_FaceTarget
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 A_ChangeFlag(Reflective,1)
		TNT1 A 0 Bright A_SpawnItemEx("HemLineSpawner")
		EXOS H 4 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("ExosMissile",79,-15,0,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("ExosMissile",79,15,0,CMF_TRACKOWNER)
		TNT1 A 0 Bright A_SpawnItemEx("HemLineSpawner")
		EXOS H 4 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("ExosMissile",79,-15,0,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("ExosMissile",79,15,0,CMF_TRACKOWNER)
		TNT1 A 0 Bright A_SpawnItemEx("HemLineSpawner")
		EXOS G 4 Bright A_FaceTarget
		TNT1 A 0 Bright A_SpawnItemEx("HemLineSpawner")
		EXOS H 4 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("ExosMissile",79,-15,0,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("ExosMissile",79,15,0,CMF_TRACKOWNER)
		TNT1 A 0 Bright A_SpawnItemEx("HemLineSpawner")
		EXOS H 4 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("ExosMissile",79,-15,0,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("ExosMissile",79,15,0,CMF_TRACKOWNER)
		TNT1 A 0 Bright A_SpawnItemEx("HemLineSpawner")
		EXOS G 4 Bright
		TNT1 A 0 Bright A_SpawnItemEx("HemLineSpawner")
		TNT1 A 0 A_ChangeFlag(Reflective,0)
		TNT1 A 0 A_UnsetInvulnerable
		EXOS G 4 A_JumpIfTargetInLOS("ChainGuns",90,JLOSF_DEADNOJUMP|JLOSF_TARGETLOS)
		Goto See
	Rockets3:
		EXOS G 4 A_FaceTarget
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 A_ChangeFlag(Reflective,1)
		TNT1 A 0 Bright A_SpawnItemEx("HemLineSpawner")
		EXOS H 4 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("PyroRocket",79,-15,0,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("PyroRocket",79,15,0,CMF_TRACKOWNER)
		TNT1 A 0 Bright A_SpawnItemEx("HemLineSpawner")
		EXOS H 4 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("PyroRocket",79,-15,0,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("PyroRocket",79,15,0,CMF_TRACKOWNER)
		TNT1 A 0 Bright A_SpawnItemEx("HemLineSpawner")
		EXOS G 4 Bright A_FaceTarget
		TNT1 A 0 Bright A_SpawnItemEx("HemLineSpawner")
		EXOS H 4 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("PyroRocket",79,-15,0,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("PyroRocket",79,15,0,CMF_TRACKOWNER)
		TNT1 A 0 Bright A_SpawnItemEx("HemLineSpawner")
		EXOS H 4 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("PyroRocket",79,-15,0,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("PyroRocket",79,15,0,CMF_TRACKOWNER)
		TNT1 A 0 Bright A_SpawnItemEx("HemLineSpawner")
		EXOS G 4 Bright
		TNT1 A 0 Bright A_SpawnItemEx("HemLineSpawner")
		TNT1 A 0 A_ChangeFlag(Reflective,0)
		TNT1 A 0 A_UnsetInvulnerable
		EXOS G 4 A_JumpIfTargetInLOS("ChainGuns",90,JLOSF_DEADNOJUMP|JLOSF_TARGETLOS)
		Goto See
	Teleport1:
		EXOS G 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 Bright A_SpawnItemEx("HemDarkLineSpawner")
		TNT1 A 0 A_PlaySound("Exos/TeleportIn",CHAN_AUTO,1.0,0)
		EXOS GGGGGGGGGG 1 Bright A_FadeOut(0.1,0)
		TNT1 A 2
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 Bright A_Wander
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 Bright A_Wander
		TNT1 A 2 A_PlaySound("Exos/TeleportOut",CHAN_AUTO,1.0,0)
		TNT1 AAAA 0 Bright A_SpawnItemEx("HemDarkLineSpawner")
		TNT1 A 0 A_Facetarget
		EXOS GGGGGGGGGG 1 Bright 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)
		TNT1 A 0 A_ChangeFlag(FRIGHTENED,0)
		TNT1 A 0 A_ChangeFlag(LOOKALLAROUND,0)
		EXOS G 1 A_SetShootable
		TNT1 A 0 A_JumpIf(user_missile == 1,"Missile")
		Goto See
	Teleport2:
		EXOS G 1 A_UnSetShootable
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		TNT1 A 0 A_TakeInventory("ProjHitCheck",1)
		TNT1 A 0 A_TakeInventory("ProjMissCheck",1)
		TNT1 AAAA 0 Bright A_SpawnItemEx("HemDarkLineSpawner")
		TNT1 A 0 A_PlaySound("Exos/TeleportIn",CHAN_AUTO,1.0,0)
		EXOS GGGGGGGGGG 1 Bright A_FadeOut(0.1,0)
		TNT1 A 2
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 Bright A_Wander
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 Bright A_Wander
		TNT1 A 2 A_PlaySound("Exos/TeleportOut",CHAN_AUTO,1.0,0)
		TNT1 AAAA 0 Bright A_SpawnItemEx("HemDarkLineSpawner")
		TNT1 A 0 A_CustomMissile("hit-testing",55,0,0,CMF_TRACKOWNER|CMF_CHECKTARGETDEAD)
		EXOS GGGGGGGGGG 1 Bright A_FadeIn(0.1)
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		EXOS G 1 A_SetShootable
		TNT1 A 0 A_JumpIfInventory("ProjHitCheck",1,"ChainGunsLoop")
		Goto See2
	Wound:
		"####" "#" 0
		"####" "#" 8 A_ChangeFlag(NOPAIN,1)
		"####" "#" 8 A_Pain
		"####" "#" 0 A_JumpIfInventory("Tic",3,"Bleeding")
		"####" "#" 0 A_GiveInventory("Tic",1)
		"####" "#" 0 A_ClassBossHealth
		"####" "#" 0 A_SetUserVar("user_missile",1)
		Goto See
	Pain.Crush:
		"####" "#" 0
		"####" "#" 0 A_ChangeFlag(NOPAIN,1)
		Goto Teleport1
	Bleeding:
		"####" "#" 0
		"####" "#" 0 A_ChangeFlag(NOBLOOD,0)
		"####" "#" 0 A_SetUserVar("user_missile",1)
		Goto Pain2
	Pain.BFG10K:
	Pain.Mine:
		"####" "#" 0
		"####" "#" 0 A_ChangeFlag(NOPAIN,1)
		"####" "#" 0 A_ChangeFlag(FRIGHTENED,1)
		"####" "#" 0 A_ChangeFlag(LOOKALLAROUND,1)
		"####" "#" 0 A_SetUserVar("user_missile",1)
		"####" "#" 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) <= 0,2)
		"####" "#" 1 HealThing(((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))*0.75)+1)
		"####" "#" 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		Goto Teleport1
	Pain:
		TNT1 A 0
		EXOS I 7 A_ChangeFlag(NOPAIN,1)
		EXOS I 8 A_Pain
	Pain2:
		"####" "#" 0
		"####" "#" 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) <= 0,2)
		"####" "#" 1 HealThing(((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))*0.75)+1)
		"####" "#" 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		"####" "#" 0 A_JumpIf(user_pcount > 10,"NoPcIncr")
		"####" "#" 0 A_SetUserVar("user_pcount",user_pcount+1)
	NoPcIncr:
		TNT1 A 0 A_Jump(256-(20*user_pcount),"See")
		TNT1 A 0 A_JumpIfHealthLower((ACS_NamedExecuteWithResult("Hem_SpawnHealth")*0.70),"Teleport1")
		Goto See
	Death:
		EXOS I 4 A_Scream
		EXOS J 4 A_Fall
		TNT1 A 0 A_TakeInventory("Tic",999999)
		EXOS KLMN 4
		TNT1 A 0 A_SpawnItemEx("ExosGib2",0,0,8,random(0,8),random(0,8),2,random(0,360),SXF_TRANSFERPOINTERS|SXF_SETMASTER,0)
		TNT1 A 0 A_SpawnItemEx("ExosGib3",0,0,8,random(0,8),random(0,8),2,random(0,360),SXF_TRANSFERPOINTERS|SXF_SETMASTER,0)
		TNT1 A 0 A_SpawnItemEx("ExosGib4",0,0,8,random(0,8),random(0,8),2,random(0,360),SXF_TRANSFERPOINTERS|SXF_SETMASTER,0)
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(298) == 1,2)
		TNT1 A 0 A_Jump(96,3)
		TNT1 A 0 A_SpawnItemEx("Improved Minigun",0,0,8,random(0,8),random(0,8),2,random(0,360),0,0)
		TNT1 A 0 A_Jump(256,3)
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("ExosGib5",0,0,8,random(0,8),random(0,8),2,random(0,360),SXF_TRANSFERPOINTERS|SXF_SETMASTER,0)
		TNT1 A 0
		TNT1 A 0 A_PlaySound("Exos/Gib3",CHAN_BODY,1.0,0)
		EXOS PQ 4
		TNT1 A 0 A_BossDeath
		EXOS R 63000 CanRaise
		Stop
	XDeath:
		TNT1 A 0
		EXOS I 4 A_Scream
		EXOS J 4 A_Fall
		TNT1 A 0 A_BossDeath
		TNT1 A 0 A_TakeInventory("Tic",999999)
		EXOS KSMN 4
		TNT1 AA 0 A_SpawnItemEx("GibbedGenerator",0,0,0,0,0,0,0,128,0)
		TNT1 AAA 0 A_CustomMissile("SmokeFX",0,0,random(0,360),2,random(0,360))
		TNT1 AAA 0 A_CustomMissile("Kaboom19",random(22,53),0,random(0,360),2,random(0,360))
		TNT1 AAAA 0 A_SpawnItemEx("Debris",0,0,0,Random(4,-4),Random(4,-4),Random(4,8),0,128)
		TNT1 A 0 A_SpawnItemEx("ExosGib",0,0,8,random(0,8),random(0,8),2,random(0,360),SXF_TRANSFERPOINTERS|SXF_SETMASTER,0)
		TNT1 A 0 A_SpawnItemEx("ExosGib2",0,0,8,random(0,8),random(0,8),2,random(0,360),SXF_TRANSFERPOINTERS|SXF_SETMASTER,0)
		TNT1 A 0 A_SpawnItemEx("ExosGib3",0,0,8,random(0,8),random(0,8),2,random(0,360),SXF_TRANSFERPOINTERS|SXF_SETMASTER,0)
		TNT1 A 0 A_SpawnItemEx("ExosGib4",0,0,8,random(0,8),random(0,8),2,random(0,360),SXF_TRANSFERPOINTERS|SXF_SETMASTER,0)
		TNT1 A 0 A_SpawnItemEx("NemesisArmor",0,0,0,random(0,8),random(0,8),2,random(0,360),0,96)
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(298) == 1,2)
		TNT1 A 0 A_Jump(96,3)
		TNT1 A 0 A_SpawnItemEx("Improved Minigun",0,0,8,random(0,8),random(0,8),2,random(0,360),0,0)
		TNT1 A 0 A_Jump(256,3)
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("ExosGib5",0,0,8,random(0,8),random(0,8),2,random(0,360),SXF_TRANSFERPOINTERS|SXF_SETMASTER,0)
		TNT1 A 0
		TNT1 A 0 A_PlaySound("Exos/Gib3",CHAN_BODY,1.0,0)
		EXOS PQQ 4 A_FadeOut(0.6,1)
		Stop
	Raise:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("VileHealEffect",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_UnsetShootable
		TNT1 A 0 A_GiveInventory("HemWasRaised",1)
		EXOS RQPNMLK 4
		Goto See
	Vanish:
		TNT1 A 0
		EXOS A 4
		EXOS G 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 Bright A_SpawnItemEx("HemDarkLineSpawner")
		TNT1 A 0 A_PlaySound("Exos/TeleportIn",CHAN_AUTO,1.0,0)
		EXOS GGGGGGGGGGGGGGGGGGGG 1 Bright A_FadeOut(0.1,1)
		Stop
	}
}

Actor ExosGib
{
Projectile
Mass 50
Height 10
Radius 10
Speed 0
Bouncecount 2
BounceFactor 0.7
WallBounceFactor 0.75
BounceType "Doom"
+DOOMBOUNCE
+BOUNCEONWALLS
+BOUNCEONFLOORS
+BOUNCEONACTORS
+MOVEWITHSECTOR
-NOGRAVITY
+CLIENTSIDEONLY
BounceSound "Exos/Gib1"
WallBounceSound "Exos/Gib1"
States
	{
	Spawn:
		EXOS S 1
		Loop
	Death:
		EXOS S 31500
		Stop
	}
}

Actor ExosGib2 : ExosGib
{
States
	{
	Spawn:
		EXOS T 1
		Loop
	Death:
		EXOS T 31500
		Stop
	}
}

Actor ExosGib3 : ExosGib
{
States
	{
	Spawn:
		EXOS U 1
		Loop
	Death:
		EXOS U 31500
		Stop
	}
}

Actor ExosGib4 : ExosGib
{
States
	{
	Spawn:
		EXOS V 1
		Loop
	Death:
		EXOS V 31500
		Stop
	}
}

Actor ExosGib5 : ExosGib
{
States
	{
	Spawn:
		EXOS W 1
		Loop
	Death:
		EXOS W 31500
		Stop
	}
}

Actor ExosBulletPuff : ModdedBulletPuff
{
+THRUSPECIES
+EXTREMEDEATH
Species ""
Species "Exos"
DamageType ""
DamageType "Exos"
}

Actor ExosMissile : SSMissile
{
Species ""
Species "Exos"
DamageType ""
DamageType "Exos"
}

Actor ExosMiniRocket : ZMiniRocket
{
+THRUSPECIES
Damage (random(15,25))
Species ""
Species "Exos"
DamageType ""
DamageType "Exos"
}

ACTOR PyroRocket : Rocket
{
Speed 26
Damage (random(20,25))
Species ""
Species "Exos"
DamageType ""
DamageType "Fire"
SeeSound "rocket/fire"
+DontHarmSpecies
+THRUSPECIES
-ROCKETTRAIL
States
	{
	Spawn:
		TNT1 A 0 Bright A_CustomMissile("MissileTrail",Random(4,6),Random(-2,2)) 
		TNT1 A 0 Bright A_CustomMissile("ProjectileTrailParticleOrange",Random(4,6),Random(-2,2)) 
		MIS2 A 1 Bright
		Loop
	Death:
		TNT1 A 0 Bright
		TNT1 AAA 0 Bright A_SpawnItemEx("ExosFlamethrowerShot",0,0,0,random(0,8),random(0,8),2,random(0,360),SXF_TRANSFERPOINTERS|SXF_SETMASTER,0)
		TNT1 A 0 Bright A_SpawnItemEx("OrangeParticleSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 AAA 0 Bright A_CustomMissile("Kaboom3",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AAA 0 Bright A_CustomMissile("SmokeFX2",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AAAA 0 Bright A_SpawnItemEx("Debris",0,0,0,Random(4,-4),Random(4,-4),Random(4,8),0,128)
		TNT1 A 0 Bright A_Explode(random(120,130),128,0)
		TNT1 A 1 Bright A_SpawnItem("RocketEx")
		TNT1 AAA 1 Bright A_SpawnItemEx("ExosFlamethrowerShot",0,0,0,random(0,8),random(0,8),2,random(0,360),SXF_TRANSFERPOINTERS|SXF_SETMASTER,0)
		Stop
	}
}

Actor ExosFlamethrowerShot : BaseFireSpawner
{
Damage (random(55,65))
Species "Exos"
DamageType "Exos"
States
	{
	Death:
		TNT1 AAA 0 Bright A_StopSound(CHAN_BODY)
		TNT1 A 0 Bright A_Stop
		TNT1 A 0 Bright A_NoGravity
		TNT1 A 0 Bright A_SpawnItemEx("OrangeParticleSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 AA 0 Bright A_CustomMissile("Kaboom69",0,0,random(0,360),2,random(0,360))
		TNT1 AA 0 Bright A_CustomMissile("SmokeFX7",0,0,random(0,360),2,random(0,360))
		TNT1 A 0 Bright A_SpawnItemEx("ExosFlare",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS|SXF_SETMASTER)
		TNT1 AAAA 0 Bright A_SpawnItemEx("ExosFlare",0,0,0,random(2,4),random(2,4),2,random(0,360),SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS|SXF_SETMASTER,128)
		FRTM CDE 3 Bright
		Stop
	}
}

Actor ExosFlare : BaseFireFlare
{
Species "Exos"
DamageType "Exos"
Obituary "%o was burned down on fire of rockets a Exos."
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_SetUserVar("user_firedamage",65)
		TNT1 A 0 Bright A_Die
		Goto Death
	}
}

Actor HemBeholder
{
Monster
Health 100
Height 18
Radius 25
Mass 50
Speed 8
FloatSpeed 8
FastSpeed 8
PainChance 256
-COUNTKILL
+Notarget
+Noinfighting
+Float
+FloatBob
+NoGravity
+FloorClip
+Missilemore
+Missileevenmore
+ALWAYSFAST
+NoFear
+AVOIDMELEE
+ThruSpecies
+AMBUSH
+DONTHARMSPECIES
+DONTHURTSPECIES
+DONTHARMCLASS
Species "Cybers"
Damagetype "Exos"
Damagefactor "Exos", 0.0
SeeSound "HemBeholder/See"
ActiveSound "HemBeholder/Act"
PainSound ""
DeathSound "HemBeholder/Die"
Tag "Beholder"
States
	{
	Spawn:
		TNT1 A 1
		TNT1 A 0 ThrustThingZ(0,13,0,1)
		Goto Idle
	Idle:
		ANPR A 2 A_Wander
		TNT1 A 0 A_Look
		Loop
	See:
		ANPR A 2 A_Chase
		Loop
	Melee:
	Missile:
		ANPR AA 1 A_Facetarget
		ANPR A 1 A_GiveToTarget("HemMonstersAlerter",1)
		TNT1 A 0 A_GiveInventory("HemMonstersAlerter",1,AAPTR_MASTER)
		TNT1 A 0 A_AlertMonsters
		ANPR AAAAAAAAAAAAAAAAAA 1 A_Facetarget
		Goto RunAway
	RunAway:
		TNT1 A 0 A_ChangeFlag(NoFear,0)
		TNT1 A 0 A_ChangeFlag(FRIGHTENED,1)
		ANPR AAAAAAA 1 A_Chase("","")
		ANPR AAAAAAA 1 A_Chase("","")
		ANPR AAAAAAA 1 A_Chase("","")
		ANPR AAAAAAA 1 A_Chase("","")
		ANPR AAAAAAA 1 A_Chase("","")
		ANPR AAAAAAA 1 A_Chase("","")
		ANPR AAAAAAA 1 A_Chase("","")
		ANPR AAAAAAA 1 A_Chase("","")
		ANPR AAAAAAA 1 A_Chase("","")
		ANPR AAAAAAA 1 A_Chase("","")
		ANPR AAAAAAA 1 A_Chase("","")
		ANPR AAAAAAA 1 A_Chase("","")
		ANPR AAAAAAA 1 A_Chase("","")
		ANPR AAAAAAA 1 A_Chase("","")
		ANPR AAAAAAA 1 A_Chase("","")
		TNT1 A 0 A_SpawnItemEx("TeleportFog",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		ANPR AAAA 1 A_FadeOut(0.5,1)
		Stop
	Pain:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		TNT1 A 0 A_ChangeFlag(NOFEAR,0)
		TNT1 A 0 A_ChangeFlag(FRIGHTENED,1)
		ANPR AAAAAAA 1 A_Chase("","")
		ANPR AAAAAAA 1 A_Chase("","")
		ANPR AAAAAAA 1 A_Chase("","")
		ANPR AAAAAAA 1 A_Chase("","")
		ANPR AAAAAAA 1 A_Chase("","")
		ANPR AAAAAAA 1 A_Chase("","")
		ANPR AAAAAAA 1 A_Chase("","")
		ANPR AAAAAAA 1 A_Chase("","")
		ANPR AAAAAAA 1 A_Chase("","")
		ANPR AAAAAAA 1 A_Chase("","")
		ANPR AAAAAAA 1 A_Chase("","")
		ANPR AAAAAAA 1 A_Chase("","")
		ANPR AAAAAAA 1 A_Chase("","")
		ANPR AAAAAAA 1 A_Chase("","")
		ANPR AAAAAAA 1 A_Chase("","")
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_ChangeFlag(NOFEAR,1)
		TNT1 A 0 A_ChangeFlag(FRIGHTENED,0)
		Goto Idle
	Death:
		ANPR B 4 A_Scream
		TNT1 A 0 A_Gravity
		TNT1 A 0 A_ChangeFlag(FloatBOB,0)
		ANPR CD 4
		TNT1 A 0 A_ChangeFlag(SOLID,0)
		TNT1 A 0 A_ChangeFlag(THRUACTORS,1)
		TNT1 A 0 A_TakeInventory("Tic",999999)
		Goto Fall
	Fall:
		ANPR D 1 A_CheckFloor("Land")
		TNT1 A 0 A_JumpIfInventory("Tic",525,"Land")
		TNT1 A 0 A_GiveInventory("Tic",1)
		Loop
	Land:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(CORPSE,1)
		TNT1 A 0 A_ChangeFlag(SOLID,0)
		TNT1 A 0 A_ChangeFlag(THRUACTORS,0)
		TNT1 A 0 A_ChangeFlag(MOVEWITHSECTOR,1)
		TNT1 A 0 A_PlaySound("HemBeholder/Crash",CHAN_BODY,1.0,0)
		ANPR E 4 A_Fall
		ANPR F 525
		ANPR FFFFFFFFFFFFFFFFFFFF 5 A_FadeOut(0.1,1)
		Stop
	}
}

Actor HemBeholderSpawner : ShadowSlaveSpawner
{
+THRUACTORS
+SERVERSIDEONLY
States
	{
	Spawn:
		TNT1 A 5
		Goto Death
	Death:
		TNT1 A 1 A_Stop
		TNT1 A 5 A_SpawnItemEx("TeleportFog",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
		TNT1 A 1 A_SpawnItemEx("HemBeholder",0,0,0,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_TRANSFERPOINTERS|SXF_SETMASTER)
		Stop
	}
}

Actor "hit-testing" : FastProjectile
{
Height 1
Radius 1
Speed 1000
Renderstyle None
Damage (0)
+NODAMAGETHRUST
+BLOODLESSIMPACT
+SEEKERMISSILE
+MTHRUSPECIES
+DONTREFLECT
+HITTRACER
States
	{
	Spawn:
		TNT1 A 1
		Loop
	Death:
		TNT1 A 0
		TNT1 A 1 A_GiveToTarget("ProjMissCheck",1)
		Stop
	Crash:
	XDeath:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("Hem_TargetAsEnemy") == false,"Miss")
		TNT1 A 1 A_GiveToTarget("ProjHitCheck",1)
		Stop
	Miss:
		TNT1 A 0
		TNT1 A 1 A_GiveToTarget("ProjMissCheck",1)
		Stop
	}
}