//TODO:
//Music order

ACTOR Medeus : TSIMinionBossBase //Beat him and he'll give you his weed powers
{
//Creator: Fluffy
//Origin: Nexus Infinity
//Sprite: XEDU
//Title: "Medeus"
Health 6800
Radius 20
Height 56
Mass 100000
Speed 10
PainChance 10
MeleeRange 90
Scale 0.8
DamageFactor "CurseComet", 0.0
DamageFactor "NobleComet", 0.0
DamageFactor "HelementalComet", 0.0
DamageFactor "SoulToxic", 0.0
DamageFactor "BombBreath", 0.0
DropItem "BossLifeEssence" 256 25
DropItem "BossArmorBonusMax" 256 1
DropItem "GreaterDemonicEnergy" 128 200
DropItem "SkullOfPower" 128
DropItem "DemonicChalice" 128
DropItem "OccultSpellbook" 256
DropItem "HellStaff" 256
DropItem "ChaosEssence" 256
SeeSound "medeus/see"
PainSound "medeus/pain" 
DeathSound "medeus/death"
ActiveSound "medeus/active"
MeleeSound ""
Obituary "%o was killed by no other than the Sorcerer of madness, Medeus."
Species "Nobles"
Tag "\c[m5]Medeus \c[a6]The Sacrosanct Sorcerer\c-"
+FLOORCLIP
+COUNTKILL
-NOKILLSCRIPTS
var int user_music;
var int user_missile;
var int user_staffthrown;
States
{
 Spawn:
   TNT1 A 0 NoDelay Thing_ChangeTid(0,ACS_NamedExecuteWithResult("Hem_GetTID"))
   TNT1 AAAA 0 A_SpawnItemEx("MasterLightningSpawnerSmallGreen",0,0,0,0,0,0,0,SXF_SETMASTER)
   TNT1 A 0 A_PlaySound("electric/loop",5,1.0,TRUE)
 Idle:
   TNT1 A 0 A_JumpIfInventory("MarineKilled",1,"Taunt")
   XEDU A 10 A_Look
   XEDU B 10 A_Look
   Loop
 Taunt:
   TNT1 A 0 A_PlaySound("Medeus/Taunt",CHAN_VOICE,1.0,FALSE,ATTN_NONE)
   TNT1 A 0 A_TakeInventory("MarineKilled",1)
 See:
   TNT1 A 0 A_JumpIf(user_music == 1,3)
   TNT1 A 0 ACS_NamedExecuteAlways("StartMonsterMusic",0,2074)
   TNT1 A 0 A_SetUserVar("user_music",1)
   TNT1 A 0 A_JumpIfInventory("MarineKilled",1,"Taunt")
   XEDU AAAAABBBBB 1 A_Chase("","")
   TNT1 A 0 A_SpawnItemEx("FootStep2",0,0,2,0,0,-20)
   TNT1 A 0 A_JumpIfTargetInLOS("Strafing")
   XEDU CCCCCDDDDD 1 A_Chase("","")
   TNT1 A 0 A_SpawnItemEx("FootStep2",0,0,2,0,0,-20)
   TNT1 A 0 A_JumpIfTargetInLOS("Strafing")
   TNT1 A 0 A_Jump(40,"Teleport")
   Loop
 Strafing:
   TNT1 A 0 A_Chase("Missile","Missile",CHF_FASTCHASE)
   TNT1 A 0 A_SpawnitemEx("MedeusGhostA")
   XEDU AA 1 A_GiveInventory("SpecOpsStrafing",1)
   TNT1 A 0 A_SpawnitemEx("MedeusGhostA")
   TNT1 A 0 A_Chase("Missile","Missile")
   XEDU AAA 1 A_GiveInventory("SpecOpsStrafing",1)
   TNT1 A 0 A_SpawnitemEx("MedeusGhostB")
   TNT1 A 0 A_Chase("Missile","Missile")
   XEDU BB 1 A_GiveInventory("SpecOpsStrafing",1)
   TNT1 A 0 A_SpawnitemEx("MedeusGhostB")
   TNT1 A 0 A_Chase("Missile","Missile")
   TNT1 A 0 A_Jump(36,"Teleport")
   XEDU BBB 1 A_GiveInventory("SpecOpsStrafing",1)
   TNT1 A 0 A_SpawnItemEx("FootStep2",0,0,2,0,0,-20)
   TNT1 A 0 A_CheckSight("See")
   TNT1 A 0 A_Chase("Missile","Missile",CHF_FASTCHASE)
   TNT1 A 0 A_SpawnitemEx("MedeusGhostC")
   XEDU CC 1 A_GiveInventory("SpecOpsStrafing",1)
   TNT1 A 0 A_SpawnitemEx("MedeusGhostC")
   TNT1 A 0 A_Chase("Missile","Missile")
   XEDU CCC 1 A_GiveInventory("SpecOpsStrafing",1)
   TNT1 A 0 A_SpawnitemEx("MedeusGhostD")
   TNT1 A 0 A_Chase("Missile","Missile")
   XEDU DD 1 A_GiveInventory("SpecOpsStrafing",1)
   TNT1 A 0 A_SpawnitemEx("MedeusGhostD")
   TNT1 A 0 A_Chase("Missile","Missile")
   XEDU DDD 1 A_GiveInventory("SpecOpsStrafing",1)
   TNT1 A 0 A_SpawnItemEx("FootStep2",0,0,2,0,0,-20)
   TNT1 A 0 A_Jump(36,"Teleport")
   TNT1 A 0 A_CheckSight("See")
   Loop
 Teleport:
   TNT1 A 0 A_SetInvulnerable
   TNT1 A 0 A_ChangeFlag(NOPAIN,1)
   TNT1 A 0 A_SpawnItemEx("MedeusGreenShield",0,0,0,0,0,0,0,SXF_SETMASTER,0,tid+2)
   XEDU K 9 A_SetAngle(Angle+Random(0,360))
   TNT1 A 0 A_SetUserVar(user_staffthrown,1)
   TNT1 A 0 A_PlaySound("tsi/throwhand",CHAN_BODY)
   TNT1 A 0 A_Jump(164,3)
   TNT1 A 0 A_SpawnItemEx("MedeusTeleportStaff",32,0,30,45,0,0,0,0,0,tid+1)
   TNT1 A 0 A_Jump(255,2)
   TNT1 A 0 A_SpawnItemEx("MedeusTeleportStaff",32,0,30,45,0,Random(0,40),0,0,0,tid+1)
   TNT1 A 0 ACS_NamedExecuteAlways("MedeusStaff",0)
   XEDU N 1
   Wait
 TeleportFinished:
   TNT1 A 0 A_SetUserVar(user_staffthrown,0)
   TNT1 A 0 A_PlaySound("tsi/teleport2",7)
   XEDU SRQPO 4 Bright
   XEDU L 8 A_ChangeFlag(NOPAIN,0)
   TNT1 A 0 A_UnSetInvulnerable
   Goto See
 Missile:
   TNT1 A 0 A_Jump(38,"SPEEN")
   TNT1 A 0 A_Jump(255,"ChaosSuperLightning","ProjectileSpam","Thunder","BigLightningAttackOrsmth","Spark")
 ChaosSuperLightning:
   TNT1 A 0 A_PlaySound("medeus/attack",CHAN_VOICE,1.0,FALSE,ATTN_NONE)
   TNT1 A 0 A_Playsound("Spellbook/Charge2",CHAN_WEAPON)
   TNT1 A 0 A_ChangeFlag(NOPAIN,1)
   XEDU E 5 Bright A_FaceTarget
   TNT1 A 0 A_SpawnItem("OverseerBrainSFX",0,0,0,0)
   TNT1 A 0 A_SpawnItem("ChaosSuperLightningFX5",40,60,0,0)
   XEDU F 4 Bright A_FaceTarget
   TNT1 A 0 A_SpawnItem("OverseerBrainSFX",0,0,0,0)
   TNT1 A 0 A_SpawnItem("ChaosSuperLightningFX5",40,60,0,0)
   XEDU F 4 Bright A_FaceTarget
   TNT1 A 0 A_SpawnItem("OverseerBrainSFX",0,0,0,0)
   TNT1 A 0 A_SpawnItem("ChaosSuperLightningFX4",40,60,0,0)
   XEDU F 4 Bright A_FaceTarget
   TNT1 A 0 A_SpawnItem("OverseerBrainSFX",0,0,0,0)
   TNT1 A 0 A_SpawnItem("ChaosSuperLightningFX4",40,60,0,0)
   XEDU F 4 Bright A_FaceTarget
   TNT1 A 0 A_SpawnItem("OverseerBrainSFX",0,0,0,0)
   TNT1 A 0 A_SpawnItem("ChaosSuperLightningFX3",40,60,0,0)
   XEDU F 4 Bright A_FaceTarget
   TNT1 A 0 A_SpawnItem("OverseerBrainSFX",0,0,0,0)
   TNT1 A 0 A_SpawnItem("ChaosSuperLightningFX3",40,60,0,0)
   XEDU F 4 Bright A_FaceTarget
   TNT1 A 0 A_SpawnItem("OverseerBrainSFX",0,0,0,0)
   TNT1 A 0 A_SpawnItem("ChaosSuperLightningFX2",40,60,0,0)
   XEDU F 4 Bright A_FaceTarget
   TNT1 A 0 A_SpawnItem("OverseerBrainSFX",0,0,0,0)
   TNT1 A 0 A_SpawnItem("ChaosSuperLightningFX2",40,60,0,0)
   XEDU F 4 Bright A_FaceTarget
   TNT1 A 0 A_SpawnItem("OverseerBrainSFX",0,0,0,0)
   TNT1 A 0 A_SpawnItem("ChaosSuperLightningFX",40,60,0,0)
   XEDU F 4 Bright A_FaceTarget
   TNT1 A 0 A_SpawnItem("OverseerBrainSFX",0,0,0,0)
   TNT1 A 0 A_SpawnItem("ChaosSuperLightningFX",40,60,0,0)
   XEDU F 4 Bright A_FaceTarget
   TNT1 A 0 A_SpawnItem("OverseerBrainSFX",0,0,0,0)
   TNT1 A 0 A_SpawnItem("ChaosSuperLightningFX",40,60,0,0)
   XEDU F 4 Bright A_FaceTarget
   TNT1 A 0 A_SpawnItem("OverseerBrainSFX",0,0,0,0)
   TNT1 A 0 A_SpawnItem("ChaosSuperLightningFX",40,60,0,0)
   XEDU F 4 Bright A_FaceTarget
   TNT1 A 0 A_ChangeFlag(NOPAIN,0)
   TNT1 A 0 A_PlaySound("comet/launch",CHAN_WEAPON)
   TNT1 A 0 A_PlaySound("legsoul/attack2",6)
   XEDU G 8 Bright A_CustomMissile("ChaosSuperLightningProj",43,0,0,0,0)
   Goto See
 SPEEN:
   TNT1 A 0 A_PlaySound("medeus/attack",CHAN_VOICE,1.0,FALSE,ATTN_NONE)
   TNT1 A 0 A_Playsound("medeus/charge",CHAN_BODY,1.0,FALSE,ATTN_NONE)
   TNT1 A 0 A_ChangeFlag(NOPAIN,1)
   TNT1 A 0 A_SetUserVar(user_missile,0)
 SPEENPREPARE:
   XEDU K 1 A_GiveInventory("SpecOpsStrafing",1)
   XEDU K 1 A_SpawnItemEx("OverseerBrainSFX",0,0,-30,0,0,0,0,0,128)
   XEDU K 1 A_GiveInventory("SpecOpsStrafing",1)
   XEDU K 1 A_SpawnItemEx("OverseerBrainSFX",0,0,-30,0,0,0,0,0,128)
   XEDU K 1 A_GiveInventory("SpecOpsStrafing",1)
   XEDU K 1 A_SpawnItemEx("OverseerBrainSFX",0,0,-30,0,0,0,0,0,128)
   XEDU K 1 A_GiveInventory("SpecOpsStrafing",1)
   XEDU K 1 A_SpawnItemEx("OverseerBrainSFX",0,0,-30,0,0,0,0,0,128)
   XEDU K 1 A_GiveInventory("SpecOpsStrafing",1)
   XEDU K 1 A_SpawnItemEx("OverseerBrainSFX",0,0,-30,0,0,0,0,0,128)
   XEDU K 1 A_GiveInventory("SpecOpsStrafing",1)
   XEDU K 1 A_SpawnItemEx("OverseerBrainSFX",0,0,-30,0,0,0,0,0,128)
   XEDU K 1 A_GiveInventory("SpecOpsStrafing",1)
   XEDU K 1 A_SpawnItemEx("OverseerBrainSFX",0,0,-30,0,0,0,0,0,128)
   XEDU K 1 A_GiveInventory("SpecOpsStrafing",1)
   XEDU K 1 A_SpawnItemEx("OverseerBrainSFX",0,0,-30,0,0,0,0,0,128)
   XEDU K 1 A_GiveInventory("SpecOpsStrafing",1)
   XEDU K 1 A_SpawnItemEx("OverseerBrainSFX",0,0,-30,0,0,0,0,0,128)
   TNT1 A 0 A_JumpIf(user_missile >= 4,2)
   TNT1 A 0 A_SetUserVar(user_missile,user_missile+1)
   Loop
   TNT1 A 0 A_SetUserVar(user_missile,0)
   TNT1 A 0 A_ChangeFlag(NOPAIN,0)
 SPEENLOOP:
   TNT1 A 0 A_SpawnItemEx("OverseerBrainSFX",0,0,-30,0,0,0,0,0,128)
   TNT1 A 0 A_SetAngle(Angle+30+Random(1,6))
   TNT1 A 0 A_GiveInventory("MedeusStrafing",1)
   TNT1 A 0 A_Jump(180,3)
   TNT1 A 0 A_PlaySound("comet/launch",CHAN_WEAPON)
   TNT1 A 0 A_PlaySound("legsoul/attack2",6)
   TNT1 A 0 A_JumpIfInventory("MarineKilled",1,"Taunt")
   XEDU L 1 Bright A_CustomMissile("ChaosSuperLightningProj",50,20,0,CMF_AIMDIRECTION,(pitch+random(-5,5)))
   TNT1 A 0 A_JumpIf(user_missile >= 150,"See")
   TNT1 A 0 A_SetUserVar(user_missile,user_missile+1)
   Loop
 ProjectileSpam:
   TNT1 A 0 A_Stop
   XEDU I 5 A_FaceTarget
   TNT1 A 0 A_SetUserVar(user_missile,0)
 ProjectileSpamLoop:
   TNT1 A 0 A_FaceTarget
   TNT1 A 0 A_Jump(128,3)
   TNT1 A 0 A_CustomMissile("MedeusAcidBig",50,-17,0)
   TNT1 A 0 A_Jump(255,3)
   TNT1 A 0 A_CustomMissile("MedeusAcidSmall",50,-17,frandom(-20,20),CMF_OFFSETPITCH,frandom(-5,5))
   TNT1 A 0 A_CustomMissile("MedeusAcidSmall",50,-17,frandom(-20,20),CMF_OFFSETPITCH,frandom(-5,5))
   TNT1 A 0 A_JumpIfInventory("MarineKilled",1,"Taunt")
   XEDU J 3 Bright A_CustomMissile("ChaosLightning",50,-17,random(-3,3),0,random(-3,3))
   TNT1 A 0 A_SpidRefire
   TNT1 A 0 A_JumpIf(user_missile >= 125,"See")
   TNT1 A 0 A_SetUserVar(user_missile,user_missile+Random(1,2))
   Loop
 Thunder:
   TNT1 A 0 A_Playsound("Spellbook/Charge",CHAN_WEAPON)
   TNT1 A 0 A_SetUserVar(user_missile,0)
   TNT1 A 0 A_ChangeFlag(NOPAIN,1)
 ThunderPrepare:
   XEDU K 1 A_GiveInventory("SpecOpsStrafing",1)
   XEDU K 1 A_SpawnItemEx("OverseerBrainSFX",0,0,-30,0,0,0,0,0,128)
   XEDU K 1 A_GiveInventory("SpecOpsStrafing",1)
   XEDU K 1 A_SpawnItemEx("OverseerBrainSFX",0,0,-30,0,0,0,0,0,128)
   XEDU K 1 A_GiveInventory("SpecOpsStrafing",1)
   XEDU K 1 A_SpawnItemEx("OverseerBrainSFX",0,0,-30,0,0,0,0,0,128)
   XEDU K 1 A_GiveInventory("SpecOpsStrafing",1)
   XEDU K 1 A_SpawnItemEx("OverseerBrainSFX",0,0,-30,0,0,0,0,0,128)
   XEDU K 1 A_GiveInventory("SpecOpsStrafing",1)
   XEDU K 1 A_SpawnItemEx("OverseerBrainSFX",0,0,-30,0,0,0,0,0,128)
   XEDU K 1 A_GiveInventory("SpecOpsStrafing",1)
   XEDU K 1 A_SpawnItemEx("OverseerBrainSFX",0,0,-30,0,0,0,0,0,128)
   XEDU K 1 A_GiveInventory("SpecOpsStrafing",1)
   XEDU K 1 A_SpawnItemEx("OverseerBrainSFX",0,0,-30,0,0,0,0,0,128)
   XEDU K 1 A_GiveInventory("SpecOpsStrafing",1)
   XEDU K 1 A_SpawnItemEx("OverseerBrainSFX",0,0,-30,0,0,0,0,0,128)
   XEDU K 1 A_GiveInventory("SpecOpsStrafing",1)
   XEDU K 1 A_SpawnItemEx("OverseerBrainSFX",0,0,-30,0,0,0,0,0,128)
   TNT1 A 0 A_JumpIf(user_missile >= 1,2)
   TNT1 A 0 A_SetUserVar(user_missile,user_missile+1)
   Loop
   TNT1 A 0 A_SetUserVar(user_missile,0)
   TNT1 A 0 A_ChangeFlag(NOPAIN,0)
 ThunderLoop:
   TNT1 A 0 A_PlaySound("Spellbook/Fire1")
   TNT1 A 0 A_JumpIfInventory("MarineKilled",1,"Taunt")
   XEDU JJJJ 1 Bright A_CustomRailgun(random(2,4)*5,-17,NONE,NONE,RGF_SILENT|RGF_NOPIERCING,1,30,"OverseerRailPuff",0,0,0,0,2.0,0,"OverseerRailParticle",0)
   TNT1 A 0 A_JumpIf(user_missile >= 15,"See")	 
   TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
   TNT1 A 0 A_SpidRefire
   Loop
 BigLightningAttackOrsmth:
   TNT1 A 0 A_PlaySound("medeus/attack",CHAN_VOICE,1.0,FALSE,ATTN_NONE)
   TNT1 A 0 A_Playsound("medeus/charge",CHAN_BODY,1.0,FALSE,ATTN_NONE)
   TNT1 A 0 A_ChangeFlag(NOPAIN,1)
   TNT1 A 0 A_SetUserVar(user_missile,0)
 BigLightningAttackPrepare:
   XEDU K 1 A_GiveInventory("SpecOpsStrafing",1)
   TNT1 A 0 A_CustomRailgun(0,20,NONE,NONE,RGF_SILENT|RGF_NOPIERCING,1,0,"OverseerRailPuff",0,0,0,0,2.0,0,"OverseerRailParticle",10)
   XEDU K 1 A_SpawnItemEx("HQLightningBigGreen",Random(-20,20),Random(-20,20),Random(-30,30),0,0,0,0,0,128)
   TNT1 A 0 A_CustomRailgun(0,20,NONE,NONE,RGF_SILENT|RGF_NOPIERCING,1,0,"OverseerRailPuff",0,0,0,0,2.0,0,"OverseerRailParticle",10)
   TNT1 A 0 A_JumpIf(user_missile >= 35,2)
   TNT1 A 0 A_SetUserVar(user_missile,user_missile+1)
   Loop
   TNT1 A 0 A_CheckSight("See")
   TNT1 A 0 A_ChangeFlag(NOPAIN,0)
   TNT1 A 0 A_Jump(128,"MagicalHowitzer")
 BigLightningAttackFire:
   TNT1 A 0 A_PlaySound("ThunderCannon/Fire",1)
   XEDU I 10 Bright A_CustomMissile("SOverseerGaussAnnihilator",34) //It's joever
   Goto See
 MagicalHowitzer:
   TNT1 A 0 A_PlaySound("ThunderCannon/Fire",1)
   XEDU I 10 Bright A_CustomMissile("MedeusMagicalHowitzer",34)
   Goto See
 Spark:
   TNT1 A 0 A_Stop
   TNT1 A 0 A_PlaySound("medeus/attack",CHAN_VOICE,1.0,FALSE,ATTN_NONE)
   TNT1 A 0 A_Playsound("Spellbook/Charge2",CHAN_BODY,1.0,FALSE,ATTN_NONE)
   TNT1 A 0 A_ChangeFlag(NOPAIN,1)
   TNT1 A 0 A_SetUserVar(user_missile,0)
 SparkPrepare:
   TNT1 A 0 A_FaceTarget
   XEDU K 1 A_SpawnItemEx("HQLightningBigGreen",Random(-40,40),Random(-40,40),Random(-30,60),0,0,0,0,0,128)
   TNT1 A 0 A_JumpIf(user_missile >= 35,2)
   TNT1 A 0 A_SetUserVar(user_missile,user_missile+1)
   Loop
   TNT1 A 0 A_SetUserVar(user_missile,0)
   TNT1 A 0 A_ChangeFlag(NOPAIN,0)
 SparkLoop:
   TNT1 A 0 A_FaceTarget
   XEDU L 1 Bright A_CustomMissile("MedeusLaserBeam",60,20)
   TNT1 A 0 A_SpidRefire
   TNT1 A 0 A_JumpIf(user_missile >= 60,"See")
   TNT1 A 0 A_SetUserVar(user_missile,user_missile+Random(1,2))
   Loop
 Pain:
   XEDU H 3
   XEDU H 3 A_Pain
   TNT1 A 0 A_Jump(92,"Teleport")
   TNT1 A 0 A_Jump(128,"Missile")
   Goto See
 Death:
   TNT1 A 0 A_RemoveChildren(1)
   XEDU H 3 A_SpawnItemEx("MedeusGreenShield",0,0,0,0,0,0,0,SXF_SETMASTER)
   XEDU H 40 A_Pain
   TNT1 A 0 A_PlaySound("medeus/cannotbe",CHAN_VOICE)
   XEDU AABBAABBAABBAABB 7 A_FaceTarget
   TNT1 A 0 A_PlaySound("medeusfriend/accept",CHAN_VOICE)
   XEDU AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 5 A_FaceTarget //150
   TNT1 AAA 0 A_StopSound(5)
   TNT1 A 0 A_RemoveChildren(1)
   TNT1 A 0 A_SpawnitemEx("MedeusAccept",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS,0,tid)
   Stop
 Death2:
   TNT1 A 0 A_RemoveChildren(1)
   TNT1 AAA 0 A_StopSound(5)
   TNT1 A 0 A_SpawnitemEx("MedeusMagicalHowitzerExplosion",0,0,30)
   XEDU T 7 A_Scream
   XEDU U 7
   XEDU V 7 A_NoBlocking
   XEDU WXY 4
   XEDU "Z" -1
   Stop
  Null:
    TNT1 A 0 A_RemoveChildren(1)
	TNT1 A 1
	Stop
   }
}

Actor MedeusBoss : Medeus
{
Tag "\c[m5]Medeus \c[a6]The Sacrosanct Sorcerer\c-"
-COUNTKILL
+NOKILLSCRIPTS
States
{
 Spawn:
   TNT1 A 0
   TNT1 AAAA 0 A_SpawnItemEx("MasterLightningSpawnerSmallGreen",0,0,0,0,0,0,0,SXF_SETMASTER)
   TNT1 A 0 A_PlaySound("electric/loop",5,1.0,TRUE)
 Idle:
   TNT1 A 0 A_JumpIfInventory("MarineKilled",1,"Taunt")
   XEDU A 10 A_Look
   XEDU B 10 A_Look
   Loop
 Death:
   XEDU H 3 A_SpawnItemEx("MedeusGreenShield",0,0,0,0,0,0,0,SXF_SETMASTER)
   XEDU H 40 A_Pain
   TNT1 A 0 A_PlaySound("medeus/cannotbe",CHAN_VOICE)
   XEDU AABBAABBAABB 7 A_FaceTarget
   TNT1 A 0 A_RemoveChildren(1)
   TNT1 A 0 A_PlaySound("medeus/return",CHAN_VOICE)
   TNT1 A 0 A_SetUserVar(user_missile,0)
   TNT1 A 0 A_PlaySound("medeus/finalteleport",7)
 DisappearLoop:
   TNT1 A 0 A_SpawnItemEx("ArmorparticleGreen",random(-12,12),random(-12,12),random(0,70),random(-1,1),random(-1,1),random(-1,1),Random(0,360))
   XEDU L 1 A_SpawnItemEx("HQLightningBigGreen",Random(-20,20),Random(-20,20),Random(-30,30),0,0,0,0,0,128)
   TNT1 A 0 A_JumpIf(user_missile >= 105,2)
   TNT1 A 0 A_SetUserVar(user_missile,user_missile+1)
   Loop
   XEDU L 47 Bright A_SpawnItemEx("MedeusFinalPortal",0,0,40)
   TNT1 AAA 0 A_StopSound(7)
   TNT1 A 0 A_SpawnItemEx("TSIFLareGreen",0,0,40)
   TNT1 A 0 A_SpawnItemEx("BossLifeEssence",0,0,8,random(1,8),0,2,random(0,360))
   TNT1 A 0 A_SpawnItemEx("BossLifeEssence",0,0,8,random(1,8),0,2,random(0,360))
   TNT1 A 0 A_SpawnItemEx("BossArmorBonusMax",0,0,8,random(1,8),0,2,random(0,360))
   TNT1 A 0 A_SpawnItemEx("BossArmorBonusMax",0,0,8,random(1,8),0,2,random(0,360))
   TNT1 A 0 A_SpawnItemEx("GreaterDemonicEnergy",0,0,8,random(1,8),0,2,random(0,360))
   TNT1 A 0 A_SpawnItemEx("SkullOfPower",0,0,8,random(1,8),0,2,random(0,360))
   TNT1 A 0 A_SpawnItemEx("DemonicChalice",0,0,8,random(1,8),0,2,random(0,360))
   TNT1 A 0 A_SpawnItemEx("OccultSpellbook",0,0,8,random(1,8),0,2,random(0,360))
   TNT1 A 0 A_SpawnItemEx("HellStaff",0,0,8,random(1,8),0,2,random(0,360))
   TNT1 A 0 A_SpawnItemEx("DoomsphereDust",0,0,8,random(1,8),0,2,random(0,360),0,32)
   Stop
   }
}

ACTOR MedeusTeleportStaff
{
Projectile
Radius 60 //30
Height 70 //56
Speed 10
Damage 3
Alpha 1
Scale 1.25
SeeSound ""
DeathSound ""
RenderStyle Translucent
+SKYEXPLODE
//+THRUACTORS
States
{
  Spawn:
	TXT5 A 1 Bright A_SpawnItemEx("MedeusTeleGlitter",0,Random(-130,-50),Random(-12,-7),Random(-2,-5),Random(-2,2),Random(-5,5),0,0,64)
	Loop
  Death:
    TNT1 A 35
	Stop
	}
}

Actor MedeusAccept : SwitchableDecoration
{
Radius 20
Height 56
Mass 1000000
Speed 0
Damage 0
Health 0x7FFFFFFF
Scale 0.8
Species "Nobles"
DamageType "Explosion"
Obituary "%o died from Medeus sudden explosion."
Tag "\c[m5]Medeus \c[a6]The Sacrosanct Sorcerer\c-"
+DROPOFF
+FLOORCLIP
-SHOOTABLE
+SOLID
+FRIENDLY
+NODAMAGE
+USESPECIAL
+FORCERADIUSDMG
var int user_counter;
Activation THINGSPEC_Activate
States
{
  Spawn:
    TNT1 A 0 NoDelay A_SpawnItemEx("MedeusPointer",0,0,80,0,0,0,0,0,0,tid+10)
	TNT1 A 0 A_RearrangePointers(AAPTR_DEFAULT, AAPTR_TARGET, AAPTR_DEFAULT)
	TNT1 A 0 A_PlaySound("magic/loop",5,1.0,TRUE)
	TNT1 A 0 A_PlaySound("medeusfriend/need",CHAN_VOICE)
	TNT1 A 0 A_SetUserVar(user_counter,0)
  SpawnLoop:
    TNT1 A 0 A_SpawnItemEx("HQLightningSmallGreen",random(-12,12),random(-12,12),random(15,40),0,0,0,0,0,168)
	TNT1 A 0 A_SpawnItemEx("LightGreenSpark",random(-12,12),random(-12,12),random(15,70),random(-2,2),random(-2,2),Random(2,5),Random(0,360),0,128)
    XEDU I 1 A_FaceMaster
    TNT1 A 0 A_JumpIf(user_counter >= 420,"Disappear")
    TNT1 A 0 A_SetUserVar(user_counter,user_counter+1)
	Loop
  Disappear:
    TNT1 AAA 0 A_StopSound(5)
	TNT1 A 0 A_ChangeFlag(USESPECIAL,0)
	TNT1 A 0 A_ChangeFlag(SOLID,0)
	TNT1 A 0 A_ChangeFlag(FLOORCLIP,0)
	TNT1 A 0 A_ChangeFlag(NOGRAVITY,1)
	TNT1 A 0 ACS_NamedExecuteAlways("RemoveMedeusPointer",0)
    TNT1 A 0 A_PlaySound("medeus/businesselsewhere",CHAN_VOICE)
	XEDU IIIIIIIIIIIIIIIIIIIIIIIIIIIIII 3 A_FaceMaster
	TNT1 A 0 ThrustThingZ(0,5,0,0)
	TNT1 A 0 A_SetUserVar(user_counter,0)
	TNT1 A 0 A_PlaySound("medeus/finalteleport",7)
  DisappearLoop:
    TNT1 A 0 A_SpawnItemEx("ArmorparticleGreen",random(-12,12),random(-12,12),random(0,70),random(-1,1),random(-1,1),random(-1,1),Random(0,360))
	XEDU L 1 A_SpawnItemEx("HQLightningBigGreen",Random(-20,20),Random(-20,20),Random(-30,30),0,0,0,0,0,128)
	TNT1 A 0 A_JumpIf(user_counter >= 175,2)
    TNT1 A 0 A_SetUserVar(user_counter,user_counter+1)
	Loop
    TNT1 A 0 A_Stop
	XEDU L 47 Bright A_SpawnItemEx("MedeusFinalPortal",0,0,40)
	TNT1 A 0 A_SpawnItemEx("TSIFLareGreen",0,0,40)
	TNT1 A 0 A_SpawnItemEx("BossLifeEssence",0,0,8,random(1,8),0,2,random(0,360))
	TNT1 A 0 A_SpawnItemEx("BossLifeEssence",0,0,8,random(1,8),0,2,random(0,360))
	TNT1 A 0 A_SpawnItemEx("BossArmorBonusMax",0,0,8,random(1,8),0,2,random(0,360))
	TNT1 A 0 A_SpawnItemEx("BossArmorBonusMax",0,0,8,random(1,8),0,2,random(0,360))
	TNT1 A 0 A_SpawnItemEx("GreaterDemonicEnergy",0,0,8,random(1,8),0,2,random(0,360))
	TNT1 A 0 A_SpawnItemEx("SkullOfPower",0,0,8,random(1,8),0,2,random(0,360))
	TNT1 A 0 A_SpawnItemEx("DemonicChalice",0,0,8,random(1,8),0,2,random(0,360))
	TNT1 A 0 A_SpawnItemEx("OccultSpellbook",0,0,8,random(1,8),0,2,random(0,360))
	TNT1 A 0 A_SpawnItemEx("HellStaff",0,0,8,random(1,8),0,2,random(0,360))
	TNT1 A 0 A_SpawnItemEx("DoomsphereDust",0,0,8,random(1,8),0,2,random(0,360),0,32)
	Stop
  Active:
    TNT1 A 0 A_SpawnitemEx("MedeusPowerCircle")
	TNT1 AAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ArmorparticleGreen",random(-12,12),random(-12,12),random(0,70),random(-1,1),random(-1,1),random(-1,1),Random(0,360))
    TNT1 AAA 0 A_StopSound(5)
	TNT1 AAA 0 A_StopSound(CHAN_VOICE)
	TNT1 A 0 A_PlaySound("nemesisremilia/protection",6)
	TNT1 A 0 A_ChangeFlag(USESPECIAL,0)
	TNT1 A 0 ACS_NamedExecuteAlways("RemoveMedeusPointer",0)
	XEDU IIIIIIIIIIIIIIIIIIIIIIIIIIIIII 3 Bright A_FaceMaster
	TNT1 A 0 Radius_Quake(6,200,0,80,0)
	TNT1 A 0 A_PlaySound("worlds/quake",7)
	TNT1 A 0 A_SetUserVar(user_counter,0)
  LightningLoop:
	XEDU I 1 Bright A_FaceMaster
    TNT1 A 0 A_SpawnItemEx("GreenLightning",Random(-400,400),Random(-400,400),-1000,0,0,0,0,0,250)
	TNT1 A 0 A_JumpIf(user_counter >= 175,2)
    TNT1 A 0 A_SetUserVar(user_counter,user_counter+1)
	Loop
    TNT1 A 0 A_SpawnItemEx("MedeusGreenShield",0,0,0,0,0,0,0,0,0,tid)
	XEDU KKK 3 Bright A_FaceMaster
	TNT1 A 0 A_RearrangePointers(AAPTR_MASTER, AAPTR_NULL, AAPTR_NULL)
    TNT1 A 0 A_PlaySound("tsi/throwhand",CHAN_BODY)
	TNT1 A 0 A_CustomMissile("MedeusTeleportStaff2",30,32,0,CMF_AIMDIRECTION)
    XEDU N 1 Bright A_SpawnItemEx("ArmorparticleGreen",random(-12,12),random(-12,12),random(0,56),random(-1,1),random(-1,1),random(-1,1),Random(0,360),0,128)
	Wait
  FriendFinish:
    TNT1 A 0 A_PlaySound("tsi/teleport2",7)
	TNT1 A 1
	Stop
	}
}

Actor MedeusFinalPortal : NemesisFragmentPortal
{
Scale 0.8
Alpha 1
+NOBLOCKMAP
States
{
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_PlaySound("MReimu/TeleportOut",7)
	BSC6 JIHG 2 Bright
	TNT1 A 0 A_PlaySound("tsi/openblueportal",6)
	BSC6 FEDCBA 1 Bright
	TNT1 A 0 A_SetScale(0.5,0.5)
	BSC6 KLM 2 Bright
	BSC6 NOPQR 3 Bright
	BSC6 S 5 Bright
	BSC6 RQPONML 1 Bright
  Looping:
    TNT1 AAA 0 A_StopSound(6)
    TNT1 A 0 A_FadeOut(0.12)
	TNT1 A 0 A_SetScale(scalex-0.05,scaley-0.05)
    BSC6 K 1 Bright
    TNT1 A 0 A_FadeOut(0.12)
	TNT1 A 0 A_SetScale(scalex-0.05,scaley-0.05)
    BSC6 K 1 Bright
    TNT1 A 0 A_FadeOut(0.12)
	TNT1 A 0 A_SetScale(scalex-0.05,scaley-0.05)
    BSC6 K 1 Bright
    TNT1 A 0 A_FadeOut(0.12)
	TNT1 A 0 A_SetScale(scalex-0.05,scaley-0.05)
    BSC6 K 1 Bright
    TNT1 A 0 A_FadeOut(0.12)
	TNT1 A 0 A_SetScale(scalex-0.05,scaley-0.05)
    BSC6 K 1 Bright
    TNT1 A 0 A_FadeOut(0.12)
	TNT1 A 0 A_SetScale(scalex-0.05,scaley-0.05)
    BSC6 K 1 Bright
    TNT1 A 0 A_FadeOut(0.12)
	TNT1 A 0 A_SetScale(scalex-0.05,scaley-0.05)
    BSC6 K 1 Bright
    TNT1 A 0 A_FadeOut(0.12)
	TNT1 A 0 A_SetScale(scalex-0.05,scaley-0.05)
    BSC6 K 1 Bright
    Stop
	}
}

Actor MedeusFinalPortalWhite : MedeusFinalPortal
{
States
{
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_PlaySound("MReimu/TeleportOut",7)
	MRC2 JIHG 2 Bright
	TNT1 A 0 A_PlaySound("tsi/openblueportal",6)
	MRC2 FEDCBA 1 Bright
	TNT1 A 0 A_SetScale(0.5,0.5)
	BSC7 ABC 2 Bright
	BSC7 DEFGH 3 Bright
	BSC7 I 5 Bright
	BSC7 HGFEDAB 1 Bright
  Looping:
    TNT1 AAA 0 A_StopSound(6)
    TNT1 A 0 A_FadeOut(0.12)
	TNT1 A 0 A_SetScale(scalex-0.05,scaley-0.05)
    BSC7 K 1 Bright
    TNT1 A 0 A_FadeOut(0.12)
	TNT1 A 0 A_SetScale(scalex-0.05,scaley-0.05)
    BSC7 K 1 Bright
    TNT1 A 0 A_FadeOut(0.12)
	TNT1 A 0 A_SetScale(scalex-0.05,scaley-0.05)
    BSC7 K 1 Bright
    TNT1 A 0 A_FadeOut(0.12)
	TNT1 A 0 A_SetScale(scalex-0.05,scaley-0.05)
    BSC7 K 1 Bright
    TNT1 A 0 A_FadeOut(0.12)
	TNT1 A 0 A_SetScale(scalex-0.05,scaley-0.05)
    BSC7 K 1 Bright
    TNT1 A 0 A_FadeOut(0.12)
	TNT1 A 0 A_SetScale(scalex-0.05,scaley-0.05)
    BSC7 K 1 Bright
    TNT1 A 0 A_FadeOut(0.12)
	TNT1 A 0 A_SetScale(scalex-0.05,scaley-0.05)
    BSC7 K 1 Bright
    TNT1 A 0 A_FadeOut(0.12)
	TNT1 A 0 A_SetScale(scalex-0.05,scaley-0.05)
    BSC7 K 1 Bright
    Stop
	}
}

ACTOR MedeusTeleportStaff2 : MedeusTeleportStaff
{
+THRUACTORS
+NOCLIP
+SEEKERMISSILE
Speed 17
States
{
  Spawn:
	TXT5 A 1 Bright A_SeekerMissile(60,80,SMF_PRECISE)
	TNT1 A 0 A_SpawnItemEx("MedeusTeleGlitter",0,Random(-130,-50),Random(-12,-7),Random(-2,-5),Random(-2,2),Random(-5,5),0,0,64)
	TNT1 A 0 A_JumpIfTracerCloser(30,"Death")
	Loop
  Death:
    TNT1 A 0 ACS_NamedExecuteAlways("MedeusStaffFriendGiver",0)
    TNT1 A 35 A_GiveToTarget("MedeusStaffEffectGiver",1,AAPTR_TARGET) //A_RadiusGive("MedeusStaffEffectGiver",60,RGF_PLAYERS
	Stop
	}
}

ACTOR MedeusStaffEffectGiver : Crusaderbuff
{
	States 
	{
		Pickup:
		    TNT1 A 1
			TNT1 A 0 ACS_NamedExecuteAlways("MedeusStaffEffect",0)
			stop
	}
}

Actor MedeusFlash : NDefilerMindfuckHeart
{  
  States
  {
  Pickup:
	TNT1 A 1 A_SetBlend("Green",0.8,35)
	TNT1 A 0 A_PlaySound("medeusfriend/staff",7,1.0,0,0.5)
	Stop
	}
}

Actor MedeusPowerCircle : SignetResFloorEffect
{
States
{
  Spawn:
    NADA AAAAAAAAAAAAAAAAAAA 1 A_FadeIn(0.05)
	NADA A 35
  Death:
	NADA AAAAAAAAAAAAAAAAAAA 1 A_Fadeout(0.05,0)
	Stop
	}
}

Actor MedeusPointer
{
+NOINTERACTION
+FLOATBOB
+NOBLOCKMAP
+NOTELEPORT
+DONTSPLASH
States
{
  Spawn:
   MP8Z A 1
   Loop
   }
}

Actor MedeusMagicalHowitzer : CybersmithBlast
{
DamageType "NobleComet"
Species "Nobles"
MissileType "GreenHowitzerProjTrail"
States
{
  Spawn:
    TNT1 A 0
	YAE6 A 0 A_SpawnItemEx("GreenHowitzerProjTrail",5,1.0,1)
    TNT1 A 1 A_PlaySound("erasus/fly",5,1.0,1)
    Loop
  Death:
	TNT1 A 0
	TNT1 A 0 A_SetTranslucent(0.75,1)
	TNT1 A 0 Radius_Quake(6,90,0,23,0)
	TNT1 A 0 A_PlaySound("DoomsdayCannon/Hiss",6)
	CGS1 AAAAAABBBBBBCCCCCCDDDDDDAAAAAABBBBBBCCCCCCDDDDDD 1 Bright A_CustomRailgun(0,0,NONE,NONE,RGF_SILENT|RGF_FULLBRIGHT,0,30,"OverseerRailPuff",frandom(-70,70),frandom(-70,70),random(160,360),0,2.0,0,"OverseerRailParticle2",0)
	TNT1 A 0 A_Explode(2000,1000)
	TNT1 A 0 A_StopSoundEx("Voice")
	TNT1 A 0 Radius_Quake(15,20,0,20,0)
	TNT1 A 0 A_PlaySound("DoomsdayCannon/Boom",1)
	TNT1 A 0 A_SpawnItemEx("SacrosanctDoomsdayExploder",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS,0)
	TNT1 A 0 A_SpawnItemEx("TSIFLareGreen",0,0,0,0,0,0,0,0,0)
    CGE1 AAAABBBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLL 1 Bright A_SpawnItemEx("MagicalHowitzerSmoke",0,0,0,0,0,0,0,0,0)
	Stop
	}
}

Actor MedeusMagicalHowitzerExplosion : MedeusMagicalHowitzer
{
Speed 0
States
{
  Spawn:
    TNT1 A 0 NoDelay
	Goto Death
  Death:
	TNT1 A 0
	TNT1 A 0 A_StopSoundEx("Voice")
	TNT1 A 0 Radius_Quake(20,8,0,12,0)
	TNT1 A 0 A_PlaySound("DoomsdayCannon/Boom",1)
	TNT1 A 0 A_SpawnItemEx("TSIFLareGreen",0,0,0,0,0,0,0,0,0)
    TNT1 AAAAAA 0 A_SpawnItemEx("GreenParticleSpawner", 0, 0, random(15,35), 0, 0, 0, 0, 128)  
	TNT1 AAAAAA 0 A_CustomMissile("SmokeFX", random(15,35), 0, random(0,360), 2, random(0,360))
	TNT1 AAAAAAAAA 0 A_CustomMissile("Kaboom11",random(15,35),0,random(0,360),2,random(0,360))
	TNT1 A 0 A_SpawnItem("PlayerDTBFGEx",0,-10)
    BFE3 AB 4 Bright A_Explode(260,200)
	BFE3 CDEF 5 Bright
	Stop
	}
}

ACTOR MagicalHowitzerSmoke : UnmakerSmoke
{
States
{
Spawn:
TNT1 A 0
FXPG ABCDEFGHIJKLM 4 Bright A_FadeOut(0.1)
Stop
}
}

Actor GreenHowitzerProjTrail : ErasusProjTrail
{
  States
  {
  Spawn:
    TNT1 A 0
    YAE6 A 2 Bright A_SpawnItemEx("ArmorParticleGreen",random(4,-4),random(4,-4),random(4,-4),0,0,0,0,128,0)
    YAE6 A 2 Bright
  Fly:
    YAE6 A 1 Bright A_FadeOut(0.295)
    Loop
  }
}

Actor MedeusLaserBeam : BeholderLaserBeam
{
DamageType "NobleComet"
MissileType "MedeusBeamTrailSpawner"
Obituary "%o was killed by no other than the Sorcerer of madness, Medeus."
Species "Nobles"
States
{
    Death:
      TNT1 A 0
	  TNT1 A 0 Radius_Quake(2, 6, 0, 12, 0)
	  TNT1 A 0 A_Explode(3, 128, 0, False, 64)
	  TNT1 A 0 A_SpawnItemEx("MedeusFlareGreen")
      MTS2 ABCABCABCABCABC 2 bright A_FadeOut(0.06)
      Stop
	  }
}

ACTOR MedeusBeamTrailSpawner : BeholderBeamTrailSpawner
{
DamageType "NobleComet"
Obituary "%o was killed by no other than the Sorcerer of madness, Medeus."
  States
  {
    Spawn:
      TNT1 A 0
	  TNT1 A 0 A_Explode(2,60,0,False,60)
      TNT1 A 2 A_SpawnItemEx("MedeusTrailGreen", random (-3, 3), 0, random (-3, 3), 0, 0, 0, 0, 160)
      Stop
  }
}

ACTOR MedeusTrailGreen : BeholderLaserBeamTrail
{
  States
  {
    Spawn:
	  TNT1 A 0
	  TNT1 A 0 A_Jump(256, "AltSpawn", "AltSpawn2")
	"AltSpawn":
	  TNT1 A 0
	  MTS2 A 1 A_FadeOut
	  Goto "FadeOut"
	"AltSpawn2":
	  TNT1 A 0
	  MTS2 C 1 A_FadeOut
	  Goto "FadeOut"
	"FadeOut":
	  MTS2 BACBACABA 1 A_FadeOut
      Stop
  }
}

ACTOR MedeusFlareGreen : BeholderFlare
{
 States
{
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
    MTSF B 2 Bright
  Continuous:
    MTSF B 1 Bright A_FadeOut(0.05)
    Loop
}
}

Actor MedeusAcidSmall : BFlanAcidSmall { Damagetype "NobleComet" }

Actor MedeusAcidBig : BFlanAcidBig
{ 
Damagetype "NobleComet"
States
{
  Death:
    TNT1 A 0 A_Mushroom("MedeusAcidSmall",Random(7,15),0,1,4)
    ABAX CDE 3 Bright
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile("MedeusAcidSmall",2,0,random(0,360),CMF_AIMDIRECTION,frandom(-3,3))
	ABAX FG 3 Bright
    Stop
	}
}

Actor MedeusStrafing : AIStrafing
{
  States
  {
  Pickup:
    NULL A 1
	NULL A 1 A_Jump(188,2)
	NULL A 1 A_GiveInventory("AIJumping",1)
	NULL A 1 A_JumpIf(velx != 0 || vely != 0,2)
	NULL A 1 A_Jump(256,2)
	NULL A 1 A_Jump(235,5)
	NULL A 1 A_JumpIfInventory("StrafeSens",1,3)
	NULL A 1 A_GiveInventory("StrafeSens",1)
	NULL A 1 A_Jump(256,2)
	NULL A 1 A_TakeInventory("StrafeSens",1)
	NULL A 1 A_JumpIfInventory("StrafeSens",1,3)
	NULL A 1 ThrustThing(angle*256/360+38.7,3,0,0)
	NULL A 1 A_Jump(256,2)
	NULL A 1 ThrustThing(angle*256/360+38.7,-3,0,0)
    NULL A 1 //A_FaceTarget
	NULL A 1 A_Jump(24,2)
	NULL A 1 A_JumpIfCloser(300,2)
	NULL A 1 A_Recoil(-1.5)
    Stop
	NULL A 1 A_Recoil(1.5)
    Stop
  }
}

ACTOR MedeusGreenShield : BlueCardShield
{
XScale 0.9
YScale 1.2
Alpha 0.8
-NONETID
-NOTELEPORT
-NOGRAVITY
-CLIENTSIDEONLY
+ISMONSTER
States
{
  Spawn:
	TNT1 A 0
  Looping:
	BSZ5 ABCDEFGH 1 Bright A_Warp(AAPTR_MASTER,0,0,0,0,WARPF_ABSOLUTEANGLE|WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	Loop
	}
}

ACTOR MedeusGhostA : LegZombieGhostA
{
Scale 0.8
States
{
Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
Fade:
    TNT1 A 1
    XEDU A 2 A_FadeOut(0.10)
    Goto Fade+1
Toaster:
    TNT1 A 0
    Stop
    }
}

ACTOR MedeusGhostB : MedeusGhostA
{
States
{
Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
Fade:
    TNT1 A 1
    XEDU B 2 A_FadeOut(0.10)
    Goto Fade+1
Toaster:
    TNT1 A 0
    Stop
    }
}

ACTOR MedeusGhostC : MedeusGhostA
{
States
{
Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
Fade:
    TNT1 A 1
    XEDU C 2 A_FadeOut(0.10)
    Goto Fade+1
Toaster:
    TNT1 A 0
    Stop
    }
}

ACTOR MedeusGhostD : MedeusGhostA
{
States
{
Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
Fade:
    TNT1 A 1
    XEDU D 2 A_FadeOut(0.10)
    Goto Fade+1
Toaster:
    TNT1 A 0
    Stop
    }
}

Actor MedeusTeleGlitter : BaseProjectileEffect
{
+NOBLOCKMAP
States
{
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "NULL")
    TGLT ABCDE 2 Bright
	Stop
	}
}

Actor TSIFLareGreen : TSIFLare
{
-CLIENTSIDEONLY
States
{
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_PlaySound("medeus/vanish")
	TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("ArmorParticleGreen",random(3,-3),random(3,-3),0,random(1,-1),random(1,-1),random(1,-1),random(0,360),0,92)
	TNT1 A 0 A_SpawnItem("MedeusPortalEffect",0,-20)
  Looping:
    TNT1 A 0 A_FadeOut(0.07)
    1TSC B 1 Bright
    Loop
  }
}

Actor TSIFLareGreenSilent : TSIFLare
{
-CLIENTSIDEONLY
States
{
  Spawn:
    TNT1 A 0
	TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("ArmorParticleGreen",random(3,-3),random(3,-3),0,random(1,-1),random(1,-1),random(1,-1),random(0,360),0,92)
	TNT1 A 0 A_SpawnItem("MedeusPortalEffect",0,-20)
    TNT1 A 1
    Stop
  }
}

Actor MedeusPortalEffect : TSIFLare
{
States
{
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_CustomRailgun(0,0,NONE,NONE,RGF_SILENT|RGF_FULLBRIGHT,0,30,"CyberSmithRailPuff",frandom(-70,70),frandom(-70,70),random(80,200),0,2.0,0,"OverseerRailParticle",5)
    TNT1 A 1 A_CustomRailgun(0,0,NONE,NONE,RGF_SILENT|RGF_FULLBRIGHT,0,30,"CyberSmithRailPuff",frandom(-70,70),frandom(-70,70),random(80,200),0,2.0,0,"OverseerRailParticle",5)
	TNT1 A 0 A_CustomRailgun(0,0,NONE,NONE,RGF_SILENT|RGF_FULLBRIGHT,0,30,"CyberSmithRailPuff",frandom(-70,70),frandom(-70,70),random(80,200),0,2.0,0,"OverseerRailParticle",5)
    TNT1 A 1 A_CustomRailgun(0,0,NONE,NONE,RGF_SILENT|RGF_FULLBRIGHT,0,30,"CyberSmithRailPuff",frandom(-70,70),frandom(-70,70),random(80,200),0,2.0,0,"OverseerRailParticle",5)
	TNT1 A 0 A_CustomRailgun(0,0,NONE,NONE,RGF_SILENT|RGF_FULLBRIGHT,0,30,"CyberSmithRailPuff",frandom(-70,70),frandom(-70,70),random(80,200),0,2.0,0,"OverseerRailParticle",5)
    TNT1 A 1 A_CustomRailgun(0,0,NONE,NONE,RGF_SILENT|RGF_FULLBRIGHT,0,30,"CyberSmithRailPuff",frandom(-70,70),frandom(-70,70),random(80,200),0,2.0,0,"OverseerRailParticle",5)
	Stop
	}
}

//FRIEND VERSION

ACTOR MedeusFriendToken : Inventory {Inventory.MaxAmount 1}
ACTOR PlayerTIDToken : Inventory {Inventory.MaxAmount 1}

ACTOR FriendlyMedeusSpawner : CustomInventory
{
+INVBAR
+INVENTORY.AUTOACTIVATE
+INVENTORY.QUIET
+INVENTORY.ALWAYSPICKUP
-INVENTORY.PICKUPFLASH
Inventory.MaxAmount 1
Inventory.Icon "TNT1A0"
Inventory.PickupSound "Beacon/Pickup"
Inventory.PickupMessage "Legendary Beacon"
States
{
  Spawn:
	TNT1 A -1
    Stop
  Use:
    TNT1 A 0
	TNT1 A 1 A_SpawnItemEx("FriendlyMedeus",Random(-15,15),Random(-15,15),0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0,tid-1)
	Stop
}
}

ACTOR FriendlyMedeus : UACBaseMarine
{ 
Health 2000
Speed 10
Radius 20
Height 56
Scale 0.8
Mass 100000
DamageFactor 0.5
RadiusDamageFactor 0.55
Painchance 15
DamageFactor "PlayerNemesisPlasma", 0.0
DamageFactor "VileFires", 0.0
DropItem "BossLifeEssence" 256 25
DropItem "BossArmorBonusMax" 256 1
DropItem "DemonAmmoBox" 128 200
DropItem "SkullOfPower" 128
DropItem "DemonicChalice" 128
DropItem "OccultSpellbook" 256
DropItem "HellStaff" 256
DropItem "ChaosEssence" 256
SeeSound ""
PainSound "medeus/pain"
DeathSound "medeus/death"
ActiveSound "medeusfriend/active"
Obituary "%o was killed by a friendly Sorcerer."
Tag "\c[m5]Medeus \c[a6]The Sacrosanct Sorcerer\c-"
var int user_tauntdelay;
var int user_tauntunlock;
var int user_active;
var int user_buffed;
var int user_bufftimer;
var int user_missile;
States
{
 Spawn:
	TNT1 A 0 NoDelay A_SetUserVar(user_tauntdelay,30)
	TNT1 A 0 A_SetUserVar(user_tauntunlock,1)
	TNT1 A 0 A_ChangeFlag(NOPAIN,1)
	TNT1 A 0 A_SetInvulnerable
	TNT1 A 0 A_PlaySound("tsi/teleport2",7)
	XEDU SRQPO 4 Bright
	TNT1 AAAA 0 A_SpawnItemEx("MasterLightningSpawnerSmallGreen",0,0,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION)
	TNT1 A 0 A_PlaySound("electric/loop",5,1.0,TRUE)
	TNT1 A 0 ACS_NamedExecuteAlways("MedeusFriendDelay",0)
	TNT1 A 0 A_SpawnItemEx("FriendlyRedHeart",0,0,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0,56)
	XEDU L 8 A_ChangeFlag(NOPAIN,0)
	TNT1 A 0 A_UnSetInvulnerable
 Idle:
    TNT1 A 0 A_JumpIf(user_tauntdelay <= 10,7)
	TNT1 A 0 A_JumpIf(user_tauntunlock == 1,6)
	TNT1 A 0 A_JumpIfHealthLower(1000,3)
	TNT1 A 0 A_PlaySound("medeusfriend/victory",CHAN_VOICE,1.0)
	TNT1 A 0 A_Jump(255,2)
	TNT1 A 0 A_PlaySound("medeusfriend/wounded",CHAN_VOICE,1.0)
	TNT1 A 0 A_SetUserVar("user_tauntdelay",Random(0,10))
	TNT1 A 0 A_SetUserVar("user_tauntunlock",1)
	TNT1 A 0 A_SetUserVar(user_active,0)
 IdleLoop:
	TNT1 A 0 A_Jump(48,"Find")
	TNT1 A 0 ACS_NamedExecuteAlways("CheckFriendlyPlayerHelpMonster",0,0,0,0)
    TNT1 A 0 A_JumpIf(user_tauntdelay >= 30,"Taunt")
	TNT1 A 0 A_SpawnItemEx("FootStep2",0,0,2,0,0,-20)
	TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND)
	XEDU AABB 3 A_GiveInventory("AIPatroling",1)
	TNT1 A 0 A_SpawnItemEx("FootStep2",0,0,2,0,0,-20)
	TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND)
	XEDU CCDD 3 A_GiveInventory("AIPatroling",1)
	Loop
 Taunt:
    TNT1 A 0 A_PlaySound("medeusfriend/active",CHAN_VOICE)
	TNT1 A 0 A_SetUserVar("user_tauntdelay",Random(0,10))
	Goto Idle
 Taunt2:
    TNT1 A 0 A_JumpIf(user_active == 0,"Idle")
    TNT1 A 0 A_SetUserVar(user_tauntunlock,0)
	Goto Idle
 Find:
	TNT1 A 0 ACS_NamedExecuteAlways("Find Master Player",0,0,0,0)
	Goto Idle
 GiveUp:
	XEDU A 10 Bright A_ClearTarget
	Goto Idle
 See:
    TNT1 A 0 A_JumpIf(user_tauntdelay <= 10,10)
	TNT1 A 0 A_JumpIf(user_tauntunlock == 1,6)
	TNT1 A 0 A_JumpIfHealthLower(1000,3)
	TNT1 A 0 A_PlaySound("medeusfriend/victory",CHAN_VOICE)
	TNT1 A 0 A_Jump(255,2)
	TNT1 A 0 A_PlaySound("medeusfriend/wounded",CHAN_VOICE)
	TNT1 A 0 A_SetUserVar("user_tauntdelay",Random(0,10))
	TNT1 A 0 A_JumpIf(user_tauntdelay <= 12,3)
	TNT1 A 0 A_PlaySound("medeusfriend/alert",CHAN_VOICE)
	TNT1 A 0 A_SetUserVar("user_tauntdelay",Random(0,10))
	TNT1 A 0 A_SetUserVar("user_tauntunlock",1)
	TNT1 A 0 A_SetUserVar(user_active,1)
 SeeLoop:
	TNT1 A 0 A_JumpIfTargetInLOS("Strafing",0,JLOSF_DEADNOJUMP)
	XEDU AABB 3 Bright A_Chase
	TNT1 A 0 A_SetUserVar("user_tauntunlock",1)
	TNT1 A 0 ACS_NamedExecuteAlways("CheckFriendlyPlayerHelpMonster",0,0,0,0)
	TNT1 A 0 A_Jump(16,"GiveUp")
	TNT1 A 0 A_SpawnItemEx("FootStep2",0,0,2,0,0,-20)
	TNT1 A 0 A_JumpIfTargetInLOS("Strafing")
	XEDU CCDD 3 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("FootStep2",0,0,2,0,0,-20)
	Loop
 Strafing:
	TNT1 A 0 A_Chase("Missile","Missile",CHF_FASTCHASE)
	TNT1 A 0 A_SpawnitemEx("MedeusGhostA")
	XEDU AA 1 A_GiveInventory("SpecOpsStrafing",1)
	TNT1 A 0 A_SpawnitemEx("MedeusGhostA")
	TNT1 A 0 A_Chase
	XEDU AAA 1 A_GiveInventory("SpecOpsStrafing",1)
	TNT1 A 0 A_SpawnitemEx("MedeusGhostB")
	TNT1 A 0 A_Chase
	XEDU BB 1 A_GiveInventory("SpecOpsStrafing",1)
	TNT1 A 0 A_SpawnitemEx("MedeusGhostB")
	TNT1 A 0 A_Chase
	XEDU BBB 1 A_GiveInventory("SpecOpsStrafing",1)
	TNT1 A 0 ACS_NamedExecuteAlways("CheckFriendlyPlayerHelpMonster",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("FootStep2",0,0,2,0,0,-20)
	TNT1 A 0 A_JumpIfTargetInLOS(1,0,JLOSF_DEADNOJUMP)
	Goto See
	TNT1 A 0 A_Chase("Missile","Missile",CHF_FASTCHASE)
	TNT1 A 0 A_SpawnitemEx("MedeusGhostC")
	XEDU CC 1 A_GiveInventory("SpecOpsStrafing",1)
	TNT1 A 0 A_SpawnitemEx("MedeusGhostC")
	TNT1 A 0 A_Chase
	XEDU CCC 1 A_GiveInventory("SpecOpsStrafing",1)
	TNT1 A 0 A_SpawnitemEx("MedeusGhostD")
	TNT1 A 0 A_Chase
	XEDU DD 1 A_GiveInventory("SpecOpsStrafing",1)
	TNT1 A 0 A_SpawnitemEx("MedeusGhostD")
	TNT1 A 0 A_Chase
	XEDU DDD 1 A_GiveInventory("SpecOpsStrafing",1)
	TNT1 A 0 A_SpawnItemEx("FootStep2",0,0,2,0,0,-20)
	TNT1 A 0 A_JumpIfTargetInLOS(1,0,JLOSF_DEADNOJUMP)
	Goto See
	TNT1 A 0
	Loop
 Missile:
	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_bufftimer > 0,3)
	TNT1 A 0 A_JumpIf(user_buffed == 1,2)
	TNT1 A 0 A_JumpIfHealthLower(1000,"Regeneration")
	TNT1 A 0 A_Jump(255,"ChaosSuperLightning","ProjectileSpam","Thunder","BigLightningAttackOrsmth","Spark")
	Goto See
 Regeneration:
	TNT1 A 0 A_Stop
    TNT1 A 0 A_ChangeFlag(NOPAIN,1)
    TNT1 A 0 A_PlaySound("nemesisremilia/buffup",7)
	TNT1 A 0 A_SetUserVar(user_missile,0)
 RegenerationLoop:
	XEDU L 1 Bright A_SpawnItemEx("ArmorParticleGreen",Random(-2,2),Random(-2,2),Random(20,60),Random(-4,4),Random(-4,4),Random(-4,4),Random(-360,360),0,32)
	TNT1 A 0 A_SpawnItemEx("OverseerBrainSFX",0,0,-70,0,0,0,0,0,128)
	TNT1 A 0 A_JumpIf(user_missile >= 70,2)
	TNT1 A 0 A_SetUserVar(user_missile,user_missile+1)
	Loop
    TNT1 A 0 A_SpawnItemEx("MedeusRecoveryEffect")
	TNT1 A 0 A_PlaySound("nemesisremilia/heal",CHAN_ITEM,1.0,0,ATTN_NONE)
	TNT1 A 0 ACS_NamedExecuteAlways("MedeusRegeneration",0,Random(500,700),Random(1,3))
	XEDU L 70 Bright A_SpawnItemEx("NMSparkleSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_SETMASTER,0,tid)
	TNT1 A 0 A_JumpIfTargetInLOS(1,0,JLOSF_NOSIGHT|JLOSF_DEADNOJUMP)
	Goto Taunt2
	TNT1 A 0 A_ChangeFlag(NOPAIN,0)
	Goto See
 ChaosSuperLightning:
	TNT1 A 0 A_JumpIf(user_tauntdelay <= 12,3)
	TNT1 A 0 A_PlaySound("medeusfriend/alert",CHAN_VOICE,1.0,FALSE,ATTN_NONE)
	TNT1 A 0 A_SetUserVar("user_tauntdelay",Random(0,10))
	TNT1 A 0 A_Playsound("Spellbook/Charge2",CHAN_WEAPON)
	TNT1 A 0 A_ChangeFlag(NOPAIN,1)
	XEDU E 5 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItem("OverseerBrainSFX",0,0,0,0)
	TNT1 A 0 A_SpawnItem("ChaosSuperLightningFX5",40,60,0,0)
	XEDU F 4 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItem("OverseerBrainSFX",0,0,0,0)
	TNT1 A 0 A_SpawnItem("ChaosSuperLightningFX5",40,60,0,0)
	XEDU F 4 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItem("OverseerBrainSFX",0,0,0,0)
	TNT1 A 0 A_SpawnItem("ChaosSuperLightningFX4",40,60,0,0)
	XEDU F 4 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItem("OverseerBrainSFX",0,0,0,0)
	TNT1 A 0 A_SpawnItem("ChaosSuperLightningFX4",40,60,0,0)
	XEDU F 4 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItem("OverseerBrainSFX",0,0,0,0)
	TNT1 A 0 A_SpawnItem("ChaosSuperLightningFX3",40,60,0,0)
	XEDU F 4 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItem("OverseerBrainSFX",0,0,0,0)
	TNT1 A 0 A_SpawnItem("ChaosSuperLightningFX3",40,60,0,0)
	XEDU F 4 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItem("OverseerBrainSFX",0,0,0,0)
	TNT1 A 0 A_SpawnItem("ChaosSuperLightningFX2",40,60,0,0)
	XEDU F 4 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItem("OverseerBrainSFX",0,0,0,0)
	TNT1 A 0 A_SpawnItem("ChaosSuperLightningFX2",40,60,0,0)
	XEDU F 4 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItem("OverseerBrainSFX",0,0,0,0)
	TNT1 A 0 A_SpawnItem("ChaosSuperLightningFX",40,60,0,0)
	XEDU F 4 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItem("OverseerBrainSFX",0,0,0,0)
	TNT1 A 0 A_SpawnItem("ChaosSuperLightningFX",40,60,0,0)
	XEDU F 4 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItem("OverseerBrainSFX",0,0,0,0)
	TNT1 A 0 A_SpawnItem("ChaosSuperLightningFX",40,60,0,0)
	XEDU F 4 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItem("OverseerBrainSFX",0,0,0,0)
	TNT1 A 0 A_SpawnItem("ChaosSuperLightningFX",40,60,0,0)
	XEDU F 4 Bright A_FaceTarget
	TNT1 A 0 A_ChangeFlag(NOPAIN,0)
	TNT1 A 0 A_PlaySound("comet/launch",CHAN_WEAPON)
	TNT1 A 0 A_PlaySound("legsoul/attack2",6)
	XEDU G 8 Bright A_CustomMissile("ChaosSuperLightningProjPlayer2",43,0,0,0,0)
	TNT1 A 0 A_JumpIfTargetInLOS(1,0,JLOSF_NOSIGHT|JLOSF_DEADNOJUMP)
	Goto Taunt2
	TNT1 A 0
	Goto See
 ProjectileSpam:
	TNT1 A 0 A_Stop
	XEDU I 5 A_FaceTarget
	TNT1 A 0 A_SetUserVar(user_missile,0)
 ProjectileSpamLoop:
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_Jump(128,3)
	TNT1 A 0 A_CustomMissile("MedeusAcidBigPlayer",50,-17,0)
	TNT1 A 0 A_Jump(255,3)
	TNT1 A 0 A_CustomMissile("BFlanAcidSmallPlayer",50,-17,frandom(-20,20),CMF_OFFSETPITCH,frandom(-5,5))
	TNT1 A 0 A_JumpIfInventory("MarineKilled",1,"Taunt")
	XEDU J 4 Bright A_CustomMissile("ChaosLightningPlayer",50,-17,random(-3,3),0,random(-3,3))
	TNT1 A 0 A_SpidRefire
	TNT1 A 0 A_JumpIfTargetInLOS(1,0,JLOSF_NOSIGHT|JLOSF_DEADNOJUMP)
	Goto Taunt2
	TNT1 A 0 A_JumpIf(user_missile >= 100,"See")
	TNT1 A 0 A_SetUserVar(user_missile,user_missile+Random(1,2))
	Loop
 Thunder:
	TNT1 A 0 A_Playsound("Spellbook/Charge",CHAN_WEAPON)
	TNT1 A 0 A_SetUserVar(user_missile,0)
	TNT1 A 0 A_ChangeFlag(NOPAIN,1)
 ThunderPrepare:
	XEDU K 1 A_GiveInventory("SpecOpsStrafing",1)
	XEDU K 1 A_SpawnItemEx("OverseerBrainSFX",0,0,-30,0,0,0,0,0,128)
	XEDU K 1 A_GiveInventory("SpecOpsStrafing",1)
	XEDU K 1 A_SpawnItemEx("OverseerBrainSFX",0,0,-30,0,0,0,0,0,128)
	XEDU K 1 A_GiveInventory("SpecOpsStrafing",1)
	XEDU K 1 A_SpawnItemEx("OverseerBrainSFX",0,0,-30,0,0,0,0,0,128)
	XEDU K 1 A_GiveInventory("SpecOpsStrafing",1)
	XEDU K 1 A_SpawnItemEx("OverseerBrainSFX",0,0,-30,0,0,0,0,0,128)
	XEDU K 1 A_GiveInventory("SpecOpsStrafing",1)
	XEDU K 1 A_SpawnItemEx("OverseerBrainSFX",0,0,-30,0,0,0,0,0,128)
	XEDU K 1 A_GiveInventory("SpecOpsStrafing",1)
	XEDU K 1 A_SpawnItemEx("OverseerBrainSFX",0,0,-30,0,0,0,0,0,128)
	XEDU K 1 A_GiveInventory("SpecOpsStrafing",1)
	XEDU K 1 A_SpawnItemEx("OverseerBrainSFX",0,0,-30,0,0,0,0,0,128)
	XEDU K 1 A_GiveInventory("SpecOpsStrafing",1)
	XEDU K 1 A_SpawnItemEx("OverseerBrainSFX",0,0,-30,0,0,0,0,0,128)
	XEDU K 1 A_GiveInventory("SpecOpsStrafing",1)
	XEDU K 1 A_SpawnItemEx("OverseerBrainSFX",0,0,-30,0,0,0,0,0,128)
	TNT1 A 0 A_JumpIf(user_missile >= 1,2)
	TNT1 A 0 A_SetUserVar(user_missile,user_missile+1)
	Loop
	TNT1 A 0 A_SetUserVar(user_missile,0)
	TNT1 A 0 A_ChangeFlag(NOPAIN,0)
 ThunderLoop:
	TNT1 A 0 A_PlaySound("Spellbook/Fire1")
	TNT1 A 0 A_JumpIfInventory("MarineKilled",1,"Taunt")
	XEDU JJJJ 1 Bright A_CustomRailgun(random(2,4)*5,-17,NONE,NONE,RGF_SILENT|RGF_NOPIERCING,1,30,"OverseerRailPuff",0,0,0,0,2.0,0,"OverseerRailParticle",0)
	TNT1 A 0 A_JumpIfTargetInLOS(1,0,JLOSF_NOSIGHT|JLOSF_DEADNOJUMP)
	Goto Taunt2
	TNT1 A 0 A_JumpIf(user_missile >= 15,"See")	 
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	TNT1 A 0 A_SpidRefire
	Loop
 BigLightningAttackOrsmth:
	TNT1 A 0 A_JumpIf(user_tauntdelay <= 12,3)
	TNT1 A 0 A_PlaySound("medeusfriend/alert",CHAN_VOICE,1.0,FALSE,ATTN_NONE)
	TNT1 A 0 A_SetUserVar("user_tauntdelay",Random(0,10))
	TNT1 A 0 A_Playsound("medeus/charge",CHAN_BODY,1.0,FALSE,ATTN_NONE)
	TNT1 A 0 A_ChangeFlag(NOPAIN,1)
	TNT1 A 0 A_SetUserVar(user_missile,0)
 BigLightningAttackPrepare:
	XEDU K 1 A_GiveInventory("SpecOpsStrafing",1)
	TNT1 A 0 A_CustomRailgun(0,20,NONE,NONE,RGF_SILENT|RGF_NOPIERCING,1,0,"OverseerRailPuff",0,0,0,0,2.0,0,"OverseerRailParticle",10)
	XEDU K 1 A_SpawnItemEx("HQLightningBigGreen",Random(-20,20),Random(-20,20),Random(-30,30),0,0,0,0,0,128)
	TNT1 A 0 A_CustomRailgun(0,20,NONE,NONE,RGF_SILENT|RGF_NOPIERCING,1,0,"OverseerRailPuff",0,0,0,0,2.0,0,"OverseerRailParticle",10)
	TNT1 A 0 A_JumpIf(user_missile >= 35,2)
	TNT1 A 0 A_SetUserVar(user_missile,user_missile+1)
	Loop
	TNT1 A 0 A_CheckSight("See")
	TNT1 A 0 A_ChangeFlag(NOPAIN,0)
	TNT1 A 0 A_Jump(128,"MagicalHowitzer")
 BigLightningAttackFire:
	TNT1 A 0 A_PlaySound("ThunderCannon/Fire",1)
	XEDU I 10 Bright A_CustomMissile("SOverseerGaussAnnihilatorPlayer",34) //It's joever
	Goto See
 MagicalHowitzer:
	TNT1 A 0 A_PlaySound("ThunderCannon/Fire",1)
	XEDU I 10 Bright A_CustomMissile("MedeusMagicalHowitzerPlayer",34)
	TNT1 A 0 A_JumpIfTargetInLOS(1,0,JLOSF_NOSIGHT|JLOSF_DEADNOJUMP)
	Goto Taunt2
	TNT1 A 0
	Goto See
 Spark:
	TNT1 A 0 A_Stop
	TNT1 A 0 A_JumpIf(user_tauntdelay <= 12,3)
	TNT1 A 0 A_PlaySound("medeusfriend/alert",CHAN_VOICE,1.0,FALSE,ATTN_NONE)
	TNT1 A 0 A_SetUserVar("user_tauntdelay",Random(0,10))
	TNT1 A 0 A_Playsound("Spellbook/Charge2",CHAN_BODY,1.0,FALSE,ATTN_NONE)
	TNT1 A 0 A_ChangeFlag(NOPAIN,1)
	TNT1 A 0 A_SetUserVar(user_missile,0)
 SparkPrepare:
	TNT1 A 0 A_FaceTarget
	XEDU K 1 A_SpawnItemEx("HQLightningBigGreen",Random(-40,40),Random(-40,40),Random(-30,60),0,0,0,0,0,128)
	TNT1 A 0 A_JumpIf(user_missile >= 35,2)
	TNT1 A 0 A_SetUserVar(user_missile,user_missile+1)
	Loop
	TNT1 A 0 A_SetUserVar(user_missile,0)
	TNT1 A 0 A_ChangeFlag(NOPAIN,0)
 SparkLoop:
	TNT1 A 0 A_FaceTarget
	XEDU L 1 Bright A_CustomMissile("MedeusLaserBeamPlayer",60,20)
	TNT1 A 0 A_SpidRefire
	TNT1 A 0 A_JumpIfTargetInLOS(1,0,JLOSF_NOSIGHT|JLOSF_DEADNOJUMP)
	Goto Taunt2
	TNT1 A 0 A_JumpIf(user_missile >= 60,"See")
	TNT1 A 0 A_SetUserVar(user_missile,user_missile+Random(1,2))
	Loop
 Pain:
	XEDU H 3
	XEDU H 3 A_Pain
	TNT1 A 0 A_JumpIf(user_bufftimer > 0,3)
	TNT1 A 0 A_JumpIf(user_buffed == 1,2)
	TNT1 A 0 A_JumpIfHealthLower(1000,"Regeneration")
	TNT1 A 0 A_Jump(128,"Missile")
	Goto See
 XDeath:
 Death:
	TNT1 A 0 A_RemoveChildren(1)
	TNT1 AAA 0 A_StopSound(5)
	TNT1 AAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ArmorparticleGreen",random(-12,12),random(-12,12),random(0,70),random(-1,1),random(-1,1),random(-1,1),Random(0,360))
    XEDU T 7 ACS_NamedExecuteAlways("MedeusRemoveToken",0)
    XEDU U 7 A_Scream
    XEDU V 7 A_NoBlocking
    XEDU WXY 4
    XEDU "Z" 1000
	XEDU ZZZZZZZZZZ 5 A_FadeOut(0.1,0)
	Stop
	}
}

Actor MedeusRecoveryEffect : NemesisFragmentPortal
{
Scale 0.5
States
{
   Spawn:
     TNT1 A 0
	 REX2 AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMM 1 Bright A_SpawnItemEx("GreenLightningSpark",Random(-2,2),Random(-2,2),Random(-2,2),Random(-3,3),Random(-3,3),Random(2,4),Random(0,360),0,0)
     REX2 NOPQRSTUVWXYZ 3 Bright
	 REZ2 A 3 Bright
	 Stop
   }
}

Actor MedeusLaserBeamPlayer : MedeusLaserBeam 
{ 
Species "Player" 
Damagetype "FriendlyMonster" 
MissileType "MedeusBeamTrailSpawnerPlayer" 
+MTHRUSPECIES 
}

ACTOR MedeusBeamTrailSpawnerPlayer : MedeusBeamTrailSpawner { Damagetype "FriendlyMonster" Species "Player" +MTHRUSPECIES }

Actor MedeusMagicalHowitzerPlayer : MedeusMagicalHowitzer
{
DamageType "FriendlyMonster"
Species "Player"
+MTHRUSPECIES
States
{
  Death:
	TNT1 A 0
	TNT1 A 0 A_SetTranslucent(0.75,1)
	TNT1 A 0 Radius_Quake(6,90,0,23,0)
	TNT1 A 0 A_PlaySound("DoomsdayCannon/Hiss",6)
	CGS1 AAAAAABBBBBBCCCCCCDDDDDDAAAAAABBBBBBCCCCCCDDDDDD 1 Bright A_CustomRailgun(0,0,NONE,NONE,RGF_SILENT|RGF_FULLBRIGHT,0,30,"OverseerRailPuff",frandom(-70,70),frandom(-70,70),random(160,360),0,2.0,0,"OverseerRailParticle2",0)
	TNT1 A 0 A_Explode(2000,1000)
	TNT1 A 0 A_StopSoundEx("Voice")
	TNT1 A 0 Radius_Quake(15,20,0,20,0)
	TNT1 A 0 A_PlaySound("DoomsdayCannon/Boom",1)
	TNT1 A 0 A_SpawnItemEx("SacrosanctDoomsdayExploderPlayer",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS,0)
	TNT1 A 0 A_SpawnItemEx("TSIFLareGreen",0,0,0,0,0,0,0,0,0)
    CGE1 AAAABBBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLL 1 Bright A_SpawnItemEx("MagicalHowitzerSmoke",0,0,0,0,0,0,0,0,0)
	Stop
	}
}

ACTOR SacrosanctDoomsdayExploderPlayer : SacrosanctDoomsdayExploder
{
States
{
  Spawn:
	TNT1 A 0
	TNT1 AA 0 A_SpawnItemEx("SacrosanctGuruSphereSmokePlayer",random(-700,700),random(-700,700),15+random(-150,150),frandom(-2,2),frandom(-2,2),frandom(-2,2),0,SXF_TRANSFERPOINTERS,0)
	TNT1 A 2 A_SpawnItemEx("SacrosanctDoomsdayExplosionPlayer",random(-700,700),random(-700,700),15+random(-150,150),frandom(-20,20),frandom(-20,20),2+random(-2,2),0,SXF_TRANSFERPOINTERS,0)
	TNT1 A 0 A_Countdown
	Loop
  Death:
	TNT1 A 1
	Stop
	}
}

ACTOR SacrosanctDoomsdayExplosionPlayer : SacrosanctDoomsdayExplosion
{
States
{
  Spawn:
	GAE2 A 0
	GAE2 A 0 A_PlaySound("DoomsdayCannon/Explode")
	GAE2 ACEGIKMO 2 Bright A_SpawnItemEx("SacrosanctDoomsdayExplosionFadePlayer",random(-65,65),random(-65,65),random(-65,65),0,0,2+random(-1,0),0,SXF_TRANSFERPOINTERS,0)
	GAE2 QSU 2
	Stop
	}
}

ACTOR SacrosanctDoomsdayExplosionFadePlayer : SacrosanctDoomsdayExplosionFade
{
Species "Player"
Damagetype "FriendlyMonster"
+MTHRUSPECIES
States
{
  Spawn:
	GAE2 A 0
	GAE2 A 0 A_Explode(150,192,0)
	GAE2 ABCDEFGHIJKLMNO 1 Bright
	GAE2 PQRSTU 2
	Stop
	}
}


Actor SOverseerGaussAnnihilatorPlayer : SOverseerGaussAnnihilator
{
Species "Player"
Damagetype "FriendlyMonster"
+MTHRUSPECIES
States
{
  Spawn:
    TNT1 A 1
    Loop
  Death:
	TNT1 A 0 A_PlaySound("GaussAnnihilator/Fire",1)
	TNT1 AAAAAAAAAAA 0 A_SpawnItemEx("SacrosanctGuruSphereSmokePlayer",random(126,-126),random(126,-126),random(66,-66),frandom(-2,2),frandom(-2,2),frandom(0,7),random(0,359),SXF_SETMASTER,0)
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GreenLightningSpark",random(-50,50),random(-50,50),random(0,10),frandom(-3,3),frandom(-3,3),frandom(4,12))
	TNT1 A 0 A_Explode(100,300)
	TNT1 A 0 Radius_Quake(10,35,0,12,0)
	TNT1 AA 4 A_Explode(260,300)
	TNT1 A 30
    Stop
	}
}

Actor SacrosanctGuruSphereSmokePlayer : SacrosanctGuruSphereSmoke { Species "Player" Damagetype "FriendlyMonster" }

Actor ChaosSuperLightningProjPlayer2 : ChaosSuperLightningProjPlayer { Damagetype "FriendlyMonster" }

Actor BFlanAcidSmallPlayer : BFlanAcidSmall { Species "Player" Damagetype "FriendlyMonster" +MTHRUSPECIES }

Actor MedeusAcidBigPlayer : MedeusAcidBig
{
Species "Player"
Damagetype "FriendlyMonster"
+MTHRUSPECIES
States
{
  Death:
    TNT1 A 0 A_Mushroom("BFlanAcidSmallPlayer",Random(7,15),0,1,4)
    ABAX CDE 3 Bright
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile("BFlanAcidSmallPlayer",2,0,random(0,360),CMF_AIMDIRECTION,frandom(-3,3))
	ABAX FG 3 Bright
    Stop
	}
}

Actor ChaosLightningPlayer : ChaosLightning { Species "Player" Damagetype "FriendlyMonster" +MTHRUSPECIES }