ACTOR MephistoVile : TSIMinionBossBase //Now with new cool abilities you will hate forever
{
//Creator: Fluffy
//Origin: Nexus Infinity
//Sprite: MEVI
//Title: "Mephisto"
Health 4500
Radius 40
Height 100
Mass 0x7FFFFFFF
Speed 12
Floatspeed 6
MinMissileChance 160
Damagefactor 0.1
SeeSound ""
AttackSound ""
PainSound ""
DeathSound "mephisto/death"
ActiveSound "mephisto/active"
obituary "%o lowkey ragequitted by Mephisto's hateful attacks."
Tag "\c[g1]Mephisto, Lord of Hatred\c-"
meleerange 128
alpha 0.95
Renderstyle Translucent
+LOOKALLAROUND
+NOGRAVITY //He can fly???
+FLOAT
var int user_see;
var int user_spec;
var int user_ability1;
var int user_ability2;
var int user_missile;
States
{
  Spawn:
    TNT1 A 0
	TNT1 A 0 ACS_NamedExecuteAlways("MephistoAura",0)
	TNT1 AAAAAA 0 A_SpawnItemEx("MasterLightningSpawnerSmallWhiteWide",0,0,0,0,0,0,0,SXF_SETMASTER)
	TNT1 A 0 A_PlaySound("mephisto/loop",5,1.0,TRUE)
	TNT1 A 0 A_PlaySound("electric/loop",6,1.0,TRUE)
  Idle:
    MEVI AB 10 A_Look
    Loop
  See:
    TNT1 A 0 A_JumpIf(user_ability2 >= 1,2)
    TNT1 A 0 A_JumpIfHealthLower(1500,"GiveEverybodySpectral")
    TNT1 A 0 A_JumpIf(user_ability1 >= 1,2)
    TNT1 A 0 A_JumpIfHealthLower(3000,"SpawnMagnets")
    TNT1 A 0 A_JumpIf(user_see >= 1,3)
	TNT1 A 0 A_Playsound("mephisto/sight",CHAN_BODY,1.0,0,ATTN_NONE)
	TNT1 A 0 A_SetUserVar("user_see",1)
	Goto SeeLoop
    TNT1 A 0 A_Jump(200,2)
	TNT1 A 0 A_Playsound("mephisto/taunt",CHAN_BODY,1.0,0,ATTN_NONE)
  SeeLoop:
    TNT1 A 0 A_JumpIf(user_spec >= 1,2)
    TNT1 A 0 A_Jump(10,"Spectral")
    MEVI AAAAAABBBBBBCCCCCCBBBBBB 1 A_Chase
	TNT1 A 0 A_Jump(80,"MTeleport")
    Loop
  MTeleport:
    TNT1 A 0 A_ChangeFlag(SHOOTABLE,0)
	TNT1 A 0 A_ChangeFlag(NOPAIN,1)
	TNT1 A 0 A_SpawnItemEx("MephistoTeleportEffect",0,0,50)
    MEVI GHIJKL 2
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	TNT1 A 0 A_PlaySound("tsi/teleportself2",CHAN_ITEM)
	MEVI LKJIHG 2
    TNT1 A 0 A_ChangeFlag(SHOOTABLE,1)
	TNT1 A 0 A_ChangeFlag(NOPAIN,0)
	Goto SeeLoop
  SpawnMagnets: //Hate me all you want but this looks cool
    TNT1 A 0 A_ChangeFlag(INVULNERABLE,1)
	TNT1 A 0 A_ChangeFlag(SHOOTABLE,0)
	TNT1 A 0 A_ChangeFlag(NOPAIN,1)
    MEVI DE 5 Bright A_FaceTarget
	TNT1 A 0 A_PlaySound("mephisto/orbs",7,1.0,FALSE,ATTN_NONE)
    TNT1 A 0 A_SpawnItemEx("MephistoMagnetOrbPush",0,0,0,0,0,0,120,SXF_SETMASTER|SXF_NOCHECKPOSITION)
	TNT1 A 0 A_SpawnItemEx("MephistoMagnetOrbPush",0,0,0,0,0,0,240,SXF_SETMASTER|SXF_NOCHECKPOSITION)
	TNT1 A 0 A_SpawnItemEx("MephistoMagnetOrbPush",0,0,0,0,0,0,360,SXF_SETMASTER|SXF_NOCHECKPOSITION)
	TNT1 A 0 A_SetUserVar("user_ability1",1)
	MEVI F 10 Bright A_SpawnItemEx("MephistoMagnetOrbPush",0,0,0,0,0,0,360,SXF_SETMASTER|SXF_NOCHECKPOSITION)
    TNT1 A 0 A_ChangeFlag(INVULNERABLE,0)
	TNT1 A 0 A_ChangeFlag(SHOOTABLE,1)
	TNT1 A 0 A_ChangeFlag(NOPAIN,0)
	Goto See
  Spectral: //Noclipping is fun
    MEVI DE 5 Bright A_FaceTarget
	TNT1 A 0 A_Playsound("mephisto/taunt",CHAN_BODY,1.0,0,ATTN_NONE)
	TNT1 A 0 A_PlaySound("phaseimp/teleport",CHAN_WEAPON)
	TNT1 A 0 A_SpawnItemEx("ShadowSmokeGen3",0,0,50)
    TNT1 A 0 ACS_NamedExecuteAlways("SpectralMode",0,700,2100,1) //First argument is how long the ability lasts in tics, second argument is the cooldown of the ability and third is teleport effects enabled (requires user_spec)
	MEVI F 10 Bright ACS_NamedExecuteAlways("SetMehpistoAlpha",0,700)
	Goto See
  GiveEverybodySpectral: //Yeah... nobody is going to appreciate this
    TNT1 A 0 A_ChangeFlag(INVULNERABLE,1)
	TNT1 A 0 A_ChangeFlag(SHOOTABLE,0)
	TNT1 A 0 A_ChangeFlag(NOPAIN,1)
	TNT1 A 0 A_SetUserVar("user_missile",0)
    TNT1 A 0 A_Playsound("mephisto/sight",CHAN_BODY,1.0,0,ATTN_NONE)
	TNT1 A 0 A_Playsound("mephisto/abilityloop",7,1.0,TRUE)
	TNT1 A 0 Radius_Quake(6,200,0,140,0)
  GESLoop:
    TNT1 A 0 A_SpawnItemEX("NemesisRemiliaLightning",Random(-600,600),Random(-600,600),0,0,0,0,0,0,192)
	TNT1 A 0 A_SpawnItemEx("NemesisLightningWhiteSpawner3",Random(6,-6),Random(6,-6),50,0,0,0,0,0,200)
    TNT1 A 0 A_SpawnItemEx("NemesisRemiliaParticle",random(60,80),0,random(0,84),frandom(-3,-1),0,0,random(0,360))
    MEVI D 1 Bright A_FaceTarget
    TNT1 A 0 A_SpawnItemEx("NemesisRemiliaParticle",random(60,80),0,random(0,84),frandom(-3,-1),0,0,random(0,360))
	TNT1 A 0 A_SpawnItemEx("NemesisLightningWhiteSpawner3",Random(6,-6),Random(6,-6),50,0,0,0,0,0,200)
    MEVI D 1 Bright A_FaceTarget
    TNT1 A 0 A_SpawnItemEx("NemesisRemiliaParticle",random(60,80),0,random(0,84),frandom(-3,-1),0,0,random(0,360))
	TNT1 A 0 A_SpawnItemEx("NemesisLightningWhiteSpawner3",Random(6,-6),Random(6,-6),50,0,0,0,0,0,200)
    MEVI D 1 Bright A_FaceTarget
    TNT1 A 0 A_SpawnItemEx("NemesisRemiliaParticle",random(60,80),0,random(0,84),frandom(-3,-1),0,0,random(0,360))
	TNT1 A 0 A_SpawnItemEx("NemesisLightningWhiteSpawner3",Random(6,-6),Random(6,-6),50,0,0,0,0,0,200)
    MEVI D 1 Bright A_FaceTarget
    TNT1 A 0 A_SpawnItemEx("NemesisRemiliaParticle",random(60,80),0,random(0,84),frandom(-3,-1),0,0,random(0,360))
	TNT1 A 0 A_SpawnItemEx("NemesisLightningWhiteSpawner3",Random(6,-6),Random(6,-6),50,0,0,0,0,0,200)
    MEVI D 1 Bright A_FaceTarget
    TNT1 A 0 A_SpawnItemEx("NemesisRemiliaParticle",random(60,80),0,random(0,84),frandom(-3,-1),0,0,random(0,360))
	TNT1 A 0 A_SpawnItemEX("NemesisRemiliaLightning",Random(-600,600),Random(-600,600),0,0,0,0,0,0,192)
	TNT1 A 0 A_SpawnItemEx("NemesisLightningWhiteSpawner3",Random(6,-6),Random(6,-6),50,0,0,0,0,0,200)
    MEVI E 1 Bright A_FaceTarget
    TNT1 A 0 A_SpawnItemEx("NemesisRemiliaParticle",random(60,80),0,random(0,84),frandom(-3,-1),0,0,random(0,360))
	TNT1 A 0 A_SpawnItemEx("NemesisLightningWhiteSpawner3",Random(6,-6),Random(6,-6),50,0,0,0,0,0,200)
    MEVI E 1 Bright A_FaceTarget
    TNT1 A 0 A_SpawnItemEx("NemesisRemiliaParticle",random(60,80),0,random(0,84),frandom(-3,-1),0,0,random(0,360))
	TNT1 A 0 A_SpawnItemEx("NemesisLightningWhiteSpawner3",Random(6,-6),Random(6,-6),50,0,0,0,0,0,200)
    MEVI E 1 Bright A_FaceTarget
    TNT1 A 0 A_SpawnItemEx("NemesisRemiliaParticle",random(60,80),0,random(0,84),frandom(-3,-1),0,0,random(0,360))
	TNT1 A 0 A_SpawnItemEx("NemesisLightningWhiteSpawner3",Random(6,-6),Random(6,-6),50,0,0,0,0,0,200)
    MEVI E 1 Bright A_FaceTarget
    TNT1 A 0 A_SpawnItemEx("NemesisRemiliaParticle",random(60,80),0,random(0,84),frandom(-3,-1),0,0,random(0,360))
	TNT1 A 0 A_SpawnItemEx("NemesisLightningWhiteSpawner3",Random(6,-6),Random(6,-6),50,0,0,0,0,0,200)
    MEVI E 1 Bright A_FaceTarget
    TNT1 A 0 A_JumpIf(user_missile >= 20,2)
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	Loop
	TNT1 A 0 A_SetUserVar("user_missile",0)
    TNT1 A 0 A_RadiusGive("MephistoSpectralModeGiver",16383,RGF_MONSTERS|RGF_NOSIGHT)
	TNT1 A 0 A_RadiusGive("MephistoFlashGiver",16383,RGF_PLAYERS|RGF_NOSIGHT)
	TNT1 A 0 ACS_NamedExecuteAlways("MephistoFuckery",0)
	TNT1 A 0 ACS_NamedExecuteAlways("SpectralMode",0,Random(700,1400),2100,1)
	TNT1 A 0 A_SetUserVar("user_ability2",1)
  GESLoop2:
    TNT1 A 0 A_SpawnItemEX("NemesisRemiliaLightning",Random(-600,600),Random(-600,600),0,0,0,0,0,0,192)
    TNT1 A 0 A_SpawnItemEx("NemesisRemiliaParticle",random(60,80),0,random(0,84),frandom(-3,-1),0,0,random(0,360))
	TNT1 A 0 A_SpawnItemEx("NemesisLightningWhiteSpawner3",Random(6,-6),Random(6,-6),50,0,0,0,0,0,200)
    MEVI D 1 Bright A_FaceTarget
    TNT1 A 0 A_SpawnItemEx("NemesisRemiliaParticle",random(60,80),0,random(0,84),frandom(-3,-1),0,0,random(0,360))
	TNT1 A 0 A_SpawnItemEx("NemesisLightningWhiteSpawner3",Random(6,-6),Random(6,-6),50,0,0,0,0,0,200)
    MEVI D 1 Bright A_FaceTarget
    TNT1 A 0 A_SpawnItemEx("NemesisRemiliaParticle",random(60,80),0,random(0,84),frandom(-3,-1),0,0,random(0,360))
	TNT1 A 0 A_SpawnItemEx("NemesisLightningWhiteSpawner3",Random(6,-6),Random(6,-6),50,0,0,0,0,0,200)
    MEVI D 1 Bright A_FaceTarget
    TNT1 A 0 A_SpawnItemEx("NemesisRemiliaParticle",random(60,80),0,random(0,84),frandom(-3,-1),0,0,random(0,360))
	TNT1 A 0 A_SpawnItemEx("NemesisLightningWhiteSpawner3",Random(6,-6),Random(6,-6),50,0,0,0,0,0,200)
    MEVI D 1 Bright A_FaceTarget
    TNT1 A 0 A_SpawnItemEx("NemesisRemiliaParticle",random(60,80),0,random(0,84),frandom(-3,-1),0,0,random(0,360))
	TNT1 A 0 A_SpawnItemEx("NemesisLightningWhiteSpawner3",Random(6,-6),Random(6,-6),50,0,0,0,0,0,200)
    MEVI D 1 Bright A_FaceTarget
    TNT1 A 0 A_SpawnItemEx("NemesisRemiliaParticle",random(60,80),0,random(0,84),frandom(-3,-1),0,0,random(0,360))
	TNT1 A 0 A_SpawnItemEX("NemesisRemiliaLightning",Random(-600,600),Random(-600,600),0,0,0,0,0,0,192)
	TNT1 A 0 A_SpawnItemEx("NemesisLightningWhiteSpawner3",Random(6,-6),Random(6,-6),50,0,0,0,0,0,200)
    MEVI E 1 Bright A_FaceTarget
    TNT1 A 0 A_SpawnItemEx("NemesisRemiliaParticle",random(60,80),0,random(0,84),frandom(-3,-1),0,0,random(0,360))
	TNT1 A 0 A_SpawnItemEx("NemesisLightningWhiteSpawner3",Random(6,-6),Random(6,-6),50,0,0,0,0,0,200)
    MEVI E 1 Bright A_FaceTarget
    TNT1 A 0 A_SpawnItemEx("NemesisRemiliaParticle",random(60,80),0,random(0,84),frandom(-3,-1),0,0,random(0,360))
	TNT1 A 0 A_SpawnItemEx("NemesisLightningWhiteSpawner3",Random(6,-6),Random(6,-6),50,0,0,0,0,0,200)
    MEVI E 1 Bright A_FaceTarget
    TNT1 A 0 A_SpawnItemEx("NemesisRemiliaParticle",random(60,80),0,random(0,84),frandom(-3,-1),0,0,random(0,360))
	TNT1 A 0 A_SpawnItemEx("NemesisLightningWhiteSpawner3",Random(6,-6),Random(6,-6),50,0,0,0,0,0,200)
    MEVI E 1 Bright A_FaceTarget
    TNT1 A 0 A_SpawnItemEx("NemesisRemiliaParticle",random(60,80),0,random(0,84),frandom(-3,-1),0,0,random(0,360))
	TNT1 A 0 A_SpawnItemEx("NemesisLightningWhiteSpawner3",Random(6,-6),Random(6,-6),50,0,0,0,0,0,200)
    MEVI E 1 Bright A_FaceTarget
    TNT1 A 0 A_JumpIf(user_missile >= 20,2)
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	Loop
	TNT1 A 0 A_StopSound(7)
    TNT1 A 0 A_ChangeFlag(INVULNERABLE,0)
	TNT1 A 0 A_ChangeFlag(SHOOTABLE,1)
	TNT1 A 0 A_ChangeFlag(NOPAIN,0)
	Goto See
  Missile:
    TNT1 A 0
	TNT1 A 0 A_Jump(64,"DoubleLightning")
	TNT1 A 0 A_Jump(255,"ChargedBolt","DarkMatter","SkullShot","RailLaser","MiniLaser")
  RailLaser:
    TNT1 A 0 A_SetUserVar("user_missile",0)
    MEVI DE 5 Bright A_FaceTarget
  RailLaserLoop:
    MEVI F 1 Bright A_FaceTarget
    MEVI F 1 Bright A_CustomMissile("NemesisRemiliaRailLaser",55,40,0)
	MEVI F 1 Bright A_FaceTarget
    MEVI F 1 Bright A_CustomMissile("NemesisRemiliaRailLaser",55,-40,0)
    TNT1 A 0 A_JumpIf(user_missile >= 30,2)
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	Loop
	MEVI ED 5 Bright A_FaceTarget
	Goto See
  MiniLaser:
    TNT1 A 0 A_SetUserVar("user_missile",0)
    MEVI DE 5 Bright A_FaceTarget
  MiniLaserLoop:
    MEVI F 1 Bright A_FaceTarget
    MEVI F 1 Bright A_CustomMissile("NemesisRevMiniLaser",55,40,0)
	MEVI F 1 Bright A_FaceTarget
    MEVI F 1 Bright A_CustomMissile("NemesisRevMiniLaser",55,-40,0)
    TNT1 A 0 A_JumpIf(user_missile >= 30,2)
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	Loop
	MEVI ED 5 Bright A_FaceTarget
	Goto See
  SkullShot:
    TNT1 A 0 A_SetUserVar("user_missile",0)
    MEVI DE 5 Bright A_FaceTarget
  SkullShotLoop:
	MEVI F 2 Bright A_CustomMissile("NemesisExileSkullShot",55,40,0,CMF_AIMDIRECTION)
	MEVI F 1 Bright A_CustomMissile("NemesisExileSkullShot",55,-40,0,CMF_AIMDIRECTION)
	MEVI F 1 Bright A_FaceTarget
    TNT1 A 0 A_JumpIf(user_missile >= 15,2)
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	Loop
	MEVI ED 5 Bright A_FaceTarget
	Goto See
  DarkMatter:
    MEVI DE 5 Bright A_FaceTarget
	MEVI F 4 Bright A_CustomMissile("ActualDarkMatter2",55,40,0,CMF_AIMDIRECTION)
	MEVI F 5 Bright A_FaceTarget
	MEVI F 4 Bright A_CustomMissile("ActualDarkMatter2",55,-40,0,CMF_AIMDIRECTION)
	MEVI F 5 Bright A_FaceTarget
	MEVI F 4 Bright A_CustomMissile("ActualDarkMatter2",55,40,0,CMF_AIMDIRECTION)
	MEVI F 5 Bright A_FaceTarget
	MEVI F 4 Bright A_CustomMissile("ActualDarkMatter2",55,-40,0,CMF_AIMDIRECTION)
	MEVI F 5 Bright A_FaceTarget
	MEVI F 4 Bright A_CustomMissile("ActualDarkMatter2",55,40,0,CMF_AIMDIRECTION)
	MEVI F 5 Bright A_FaceTarget
	MEVI F 4 Bright A_CustomMissile("ActualDarkMatter2",55,-40,0,CMF_AIMDIRECTION)
	MEVI F 5 Bright A_FaceTarget
	MEVI F 4 Bright A_CustomMissile("ActualDarkMatter2",55,40,0,CMF_AIMDIRECTION)
	MEVI F 5 Bright A_FaceTarget
	MEVI F 4 Bright A_CustomMissile("ActualDarkMatter2",55,-40,0,CMF_AIMDIRECTION)
	MEVI ED 5 Bright A_FaceTarget
	Goto See
  ChargedBolt:
    TNT1 A 0 A_SetUserVar("user_missile",0)
    TNT1 A 0 A_ChangeFlag(NOPAIN,1)
	TNT1 A 0 A_PlaySound("tsi/ioncharge25",CHAN_WEAPON,1.0,0,ATTN_NONE)
  ChargedBoltLoop:
    TNT1 A 0 A_SpawnItemEx("NemesisRemiliaParticle",random(60,80),0,random(0,84),frandom(-3,-1),0,0,random(0,360))
    MEVI D 1 Bright A_FaceTarget
    TNT1 A 0 A_SpawnItemEx("NemesisRemiliaParticle",random(60,80),0,random(0,84),frandom(-3,-1),0,0,random(0,360))
    MEVI D 1 Bright A_FaceTarget
    TNT1 A 0 A_SpawnItemEx("NemesisRemiliaParticle",random(60,80),0,random(0,84),frandom(-3,-1),0,0,random(0,360))
    MEVI D 1 Bright A_FaceTarget
    TNT1 A 0 A_SpawnItemEx("NemesisRemiliaParticle",random(60,80),0,random(0,84),frandom(-3,-1),0,0,random(0,360))
    MEVI D 1 Bright A_FaceTarget
    TNT1 A 0 A_SpawnItemEx("NemesisRemiliaParticle",random(60,80),0,random(0,84),frandom(-3,-1),0,0,random(0,360))
    MEVI D 1 Bright A_FaceTarget
    TNT1 A 0 A_SpawnItemEx("NemesisRemiliaParticle",random(60,80),0,random(0,84),frandom(-3,-1),0,0,random(0,360))
    MEVI E 1 Bright A_FaceTarget
    TNT1 A 0 A_SpawnItemEx("NemesisRemiliaParticle",random(60,80),0,random(0,84),frandom(-3,-1),0,0,random(0,360))
    MEVI E 1 Bright A_FaceTarget
    TNT1 A 0 A_SpawnItemEx("NemesisRemiliaParticle",random(60,80),0,random(0,84),frandom(-3,-1),0,0,random(0,360))
    MEVI E 1 Bright A_FaceTarget
    TNT1 A 0 A_SpawnItemEx("NemesisRemiliaParticle",random(60,80),0,random(0,84),frandom(-3,-1),0,0,random(0,360))
    MEVI E 1 Bright A_FaceTarget
    TNT1 A 0 A_SpawnItemEx("NemesisRemiliaParticle",random(60,80),0,random(0,84),frandom(-3,-1),0,0,random(0,360))
    MEVI E 1 Bright A_FaceTarget
    TNT1 A 0 A_JumpIf(user_missile >= 5,2)
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
    Loop
	TNT1 A 0 A_StopSound(CHAN_WEAPON)
	TNT1 A 0 A_JumpIfTargetInLOS(1)
	Goto ChargedBoltEnd
    TNT1 A 0 A_GiveToTarget("MephistoLightningGiver")
  ChargedBoltEnd:
	TNT1 A 0 A_ChangeFlag(NOPAIN,0)
	MEVI FED 5 Bright
	Goto See
  DoubleLightning:
    MEVI DE 5 Bright A_FaceTarget
    TNT1 A 0 A_ChangeFlag(NOPAIN,1)
    TNT1 A 0 A_SetUserVar("user_missile",Random(0,25))
	TNT1 A 0 A_PlaySound("baal/zap",7,1.0,FALSE,ATTN_NONE)
	TNT1 A 0 A_PlaySound("baal/zap2",CHAN_WEAPON)
	TNT1 A 0 A_PlaySound("baal/zaploop",CHAN_ITEM,1.0,TRUE)
  DoubleLightningLoop:
    TNT1 A 0 A_JumpIf(user_missile >= 100,"MissileEnd")
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	TNT1 A 0 A_Facetarget
	TNT1 A 0 A_CustomRailgun(Random(20,40),-40,None,None,RGF_SILENT|RGF_NOPIERCING|RGF_CENTERZ,0,0,"WStrikeLightningPuff",5,5,0,0,0.5,1,"WStrikeLightningBallSmall",5)
    MEVI F 1 Bright A_CustomRailgun(Random(20,40),40,None,None,RGF_SILENT|RGF_NOPIERCING|RGF_CENTERZ,0,0,"WStrikeLightningPuff",5,5,0,0,0.5,1,"WStrikeLightningBallSmall",5)
	Loop
  MissileEnd:
    TNT1 A 0 A_StopSound(CHAN_ITEM)
    TNT1 A 0 A_ChangeFlag(NOPAIN,0)
    MEVI ED 5 Bright A_FaceTarget
	Goto See
  Pain:
    TNT1 A 0 A_JumpIf(user_ability2 >= 1,2)
    TNT1 A 0 A_JumpIfHealthLower(1500,"GiveEverybodySpectral")
    TNT1 A 0 A_JumpIf(user_ability1 >= 1,2)
    TNT1 A 0 A_JumpIfHealthLower(3000,"SpawnMagnets")
    MEVI B 6 A_Playsound("mephisto/pain",CHAN_VOICE,1.0,0,ATTN_NONE)
    Goto See
  Death:
    TNT1 A 0 A_ChangeFlag(NOGRAVITY,1)
	TNT1 A 0 A_SetTranslucent(0.9)
	TNT1 A 0 A_SetUserVar("user_missile",0)
	TNT1 A 0 A_RemoveChildren(1)
	TNT1 A 0 A_StopSound(5)
	TNT1 A 0 A_StopSound(6)
	TNT1 A 0 A_PlaySound("mephisto/storm",7)
	TNT1 A 0 Radius_Quake(6,240,0,140,0)
  DeathLoop:
    TNT1 AAA 0 A_SpawnItemEx("MephistoSmokeOrbit2",0,0,0,0,0,0,Random(0,360),SXF_SETMASTER|SXF_NOCHECKPOSITION,64)
	TNT1 A 0 A_SpawnItemEx("NemesisLightningWhiteSpawner3",Random(6,-6),Random(6,-6),50,0,0,0,0,0,200)
    MEVI G 1 A_SpawnItemEx("MephistoSmokeOrbit1",0,0,0,0,0,0,Random(0,360),SXF_SETMASTER|SXF_NOCHECKPOSITION)
    TNT1 A 0 A_JumpIf(user_missile >= 240,2)
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
    Loop
	TNT1 A 0 A_SpawnItemEx("NemSphereRandomizer",0,0,8,random(0,8),random(0,8),2,random(0,360),0,0)
	TNT1 A 0 A_SpawnItemEx("DemonicChalice",0,0,8,random(0,8),random(0,8),2,random(0,360),0,0)
	TNT1 A 0 A_SpawnItemEx("SkullOfPower",0,0,8,random(0,8),random(0,8),2,random(0,360),0,0)
	TNT1 A 0 A_SpawnItemEx("PartialKakuhou",0,0,8,random(0,8),random(0,8),2,random(0,360),0,128)
	TNT1 A 0 A_SpawnItemEx("PartialKakuhou",0,0,8,random(0,8),random(0,8),2,random(0,360),0,128)
	TNT1 A 0 A_SpawnItemEx("PartialKakuhou",0,0,8,random(0,8),random(0,8),2,random(0,360),0,128)
	TNT1 A 0 A_SpawnItemEx("PartialKakuhou",0,0,8,random(0,8),random(0,8),2,random(0,360),0,128)
	TNT1 A 0 A_SpawnItemEx("ShadowCastOrb",0,0,8,random(0,8),random(0,8),2,random(0,360),0,0)
	TNT1 A 0 A_SpawnItemEx("ShadowCastOrb",0,0,8,random(0,8),random(0,8),2,random(0,360),0,64)
	TNT1 A 0 A_SpawnItemEx("ShadowCastOrb",0,0,8,random(0,8),random(0,8),2,random(0,360),0,128)
	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("MephistoDeathEffect",0,0,50)
    MEVI G 1 A_Scream
    MEVI G 7 a_settranslucent(0.8)
    MEVI H 1 a_noblocking
    MEVI H 8 A_settranslucent(0.6)
    MEVI I 8 A_settranslucent(0.4)
    MEVI J 8 A_settranslucent(0.2)
    MEVI K 8 A_settranslucent(0.1)
    MEVI L 8 A_settranslucent(0.1)
    MEVI L 1 A_BossDeath
	TNT1 A 100
    Stop
  Null:
    TNT1 A 0 A_RemoveChildren(1)
	TNT1 A 1
	Stop
  }
}

Actor MephistoVileBoss : MephistoVile 
{
Tag "\c[g1]Mephisto, Lord of Hatred\c-"
Species "Cybers"
+COUNTKILL 
-NOKILLSCRIPTS
States
{
  Death:
    TNT1 A 0 A_ChangeFlag(NOGRAVITY,1)
	TNT1 A 0 A_SetTranslucent(0.9)
	TNT1 A 0 A_SetUserVar("user_missile",0)
	TNT1 A 0 A_RemoveChildren(1)
	TNT1 A 0 A_StopSound(5)
	TNT1 A 0 A_StopSound(6)
	TNT1 A 0 A_PlaySound("mephisto/storm",7)
	TNT1 A 0 Radius_Quake(6,240,0,140,0)
  DeathLoop:
    TNT1 AAA 0 A_SpawnItemEx("MephistoSmokeOrbit2",0,0,0,0,0,0,Random(0,360),SXF_SETMASTER|SXF_NOCHECKPOSITION,64)
	TNT1 A 0 A_SpawnItemEx("NemesisLightningWhiteSpawner3",Random(6,-6),Random(6,-6),50,0,0,0,0,0,200)
    MEVI G 1 A_SpawnItemEx("MephistoSmokeOrbit1",0,0,0,0,0,0,Random(0,360),SXF_SETMASTER|SXF_NOCHECKPOSITION)
    TNT1 A 0 A_JumpIf(user_missile >= 240,2)
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
    Loop
	TNT1 A 0 A_SpawnItemEx("NemSphereRandomizer",0,0,8,random(0,8),random(0,8),2,random(0,360),0,0)
	TNT1 A 0 A_SpawnItemEx("DemonicChalice",0,0,8,random(0,8),random(0,8),2,random(0,360),0,0)
	TNT1 A 0 A_SpawnItemEx("Deathwalker",0,0,8,random(0,8),random(0,8),2,random(0,360),0,0)
	TNT1 A 0 A_SpawnItemEx("SkullOfPower",0,0,8,random(0,8),random(0,8),2,random(0,360),0,0)
	TNT1 A 0 A_SpawnItemEx("PartialKakuhou",0,0,8,random(0,8),random(0,8),2,random(0,360),0,128)
	TNT1 A 0 A_SpawnItemEx("PartialKakuhou",0,0,8,random(0,8),random(0,8),2,random(0,360),0,128)
	TNT1 A 0 A_SpawnItemEx("PartialKakuhou",0,0,8,random(0,8),random(0,8),2,random(0,360),0,128)
	TNT1 A 0 A_SpawnItemEx("PartialKakuhou",0,0,8,random(0,8),random(0,8),2,random(0,360),0,128)
	TNT1 A 0 A_SpawnItemEx("ShadowCastOrb",0,0,8,random(0,8),random(0,8),2,random(0,360),0,0)
	TNT1 A 0 A_SpawnItemEx("ShadowCastOrb",0,0,8,random(0,8),random(0,8),2,random(0,360),0,64)
	TNT1 A 0 A_SpawnItemEx("ShadowCastOrb",0,0,8,random(0,8),random(0,8),2,random(0,360),0,128)
	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("MephistoDeathEffect",0,0,50)
    MEVI G 1 A_Scream
    MEVI G 7 a_settranslucent(0.8)
    MEVI H 1 a_noblocking
    MEVI H 8 A_settranslucent(0.6)
    MEVI I 8 A_settranslucent(0.4)
    MEVI J 8 A_settranslucent(0.2)
    MEVI K 8 A_settranslucent(0.1)
    MEVI L 8 A_settranslucent(0.1)
    MEVI L 1 A_BossDeath
	TNT1 A 100
    Stop
  }
}

Actor ActualDarkMatter2 : ActualDarkMatter { DamageType "DarkDemoEx" }

Actor MephistoMagnetOrbPush : HeresiarchGuardian
{
Const int xofs = 100;
Const int yofs = 0;
Const int zofs = 50;
Const int anglespeed = 8;
Const int thrust = -100;
Const int dist = 1500;
DamageFactor 0.5
RadiusDamageFactor 0.1
Radius 10
Height 10
Speed 0
Health 1000
Renderstyle Add
obituary "%o was killed by a Mysterious Orb."
Tag "\c[g1]Mysterious Orb\c-"
Scale 0.3
+LOOKALLAROUND
States
{
  Spawn:
    TNT1 A 0
    TNT1 A 2 A_Warp(AAPTR_MASTER,xofs,yofs,zofs,anglespeed,WARPF_NOCHECKPOSITION|WARPF_USECALLERANGLE)
	TNT1 A 1 A_SpawnItemEx("NemesisRemiliaTeleportEnd",0,0,10)
  Idle:
	MLIU A 1 Bright A_Warp(AAPTR_MASTER,xofs,yofs,zofs,anglespeed,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_Look
	Loop
  See:
    TNT1 A 0 A_RadiusThrust(thrust,dist,RTF_NOIMPACTDAMAGE|RTF_NOTMISSILE)
    MLIU A 1 Bright A_Warp(AAPTR_MASTER,xofs,yofs,zofs,anglespeed,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_RadiusThrust(thrust,dist,RTF_NOIMPACTDAMAGE|RTF_NOTMISSILE)
	TNT1 A 0 A_JumpIfCloser(300,2) TNT1 A 0 A_Jump(256,2)
	TNT1 A 0 A_CustomMissile("MephistoProjectileAttack",0,0,0,CMF_TRACKOWNER) //A_SpawnItemEx("MephistoProjectileAttack",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS|SXF_NOCHECKPOSITION)
	MLIU B 1 Bright A_Warp(AAPTR_MASTER,xofs,yofs,zofs,anglespeed,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_RadiusThrust(thrust,dist,RTF_NOIMPACTDAMAGE|RTF_NOTMISSILE)
	TNT1 A 0 A_JumpIfCloser(300,2) TNT1 A 0 A_Jump(256,2)
	TNT1 A 0 A_CustomMissile("MephistoProjectileAttack",0,0,0,CMF_TRACKOWNER) 
	MLIU C 1 Bright A_Warp(AAPTR_MASTER,xofs,yofs,zofs,anglespeed,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_RadiusThrust(thrust,dist,RTF_NOIMPACTDAMAGE|RTF_NOTMISSILE)
	TNT1 A 0 A_JumpIfCloser(300,2) TNT1 A 0 A_Jump(256,2)
	TNT1 A 0 A_CustomMissile("MephistoProjectileAttack",0,0,0,CMF_TRACKOWNER) 
	MLIU D 1 Bright A_Warp(AAPTR_MASTER,xofs,yofs,zofs,anglespeed,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_RadiusThrust(thrust,dist,RTF_NOIMPACTDAMAGE|RTF_NOTMISSILE)
	TNT1 A 0 A_JumpIfCloser(300,2) TNT1 A 0 A_Jump(256,2)
	TNT1 A 0 A_CustomMissile("MephistoProjectileAttack",0,0,0,CMF_TRACKOWNER) 
	MLIU E 1 Bright A_Warp(AAPTR_MASTER,xofs,yofs,zofs,anglespeed,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_RadiusThrust(thrust,dist,RTF_NOIMPACTDAMAGE|RTF_NOTMISSILE)
	TNT1 A 0 A_JumpIfCloser(300,2) TNT1 A 0 A_Jump(256,2)
	TNT1 A 0 A_CustomMissile("MephistoProjectileAttack",0,0,0,CMF_TRACKOWNER) 
	MLIU F 1 Bright A_Warp(AAPTR_MASTER,xofs,yofs,zofs,anglespeed,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_RadiusThrust(thrust,dist,RTF_NOIMPACTDAMAGE|RTF_NOTMISSILE)
	TNT1 A 0 A_JumpIfCloser(300,2) TNT1 A 0 A_Jump(256,2)
	TNT1 A 0 A_CustomMissile("MephistoProjectileAttack",0,0,0,CMF_TRACKOWNER) 
	MLIU G 1 Bright A_Warp(AAPTR_MASTER,xofs,yofs,zofs,anglespeed,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_RadiusThrust(thrust,dist,RTF_NOIMPACTDAMAGE|RTF_NOTMISSILE)
	TNT1 A 0 A_JumpIfCloser(300,2) TNT1 A 0 A_Jump(256,2)
	TNT1 A 0 A_CustomMissile("MephistoProjectileAttack",0,0,0,CMF_TRACKOWNER) 
	MLIU H 1 Bright A_Warp(AAPTR_MASTER,xofs,yofs,zofs,anglespeed,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_RadiusThrust(thrust,dist,RTF_NOIMPACTDAMAGE|RTF_NOTMISSILE)
	TNT1 A 0 A_JumpIfCloser(300,2) TNT1 A 0 A_Jump(256,2)
	TNT1 A 0 A_CustomMissile("MephistoProjectileAttack",0,0,0,CMF_TRACKOWNER) 
	MLIU I 1 Bright A_Warp(AAPTR_MASTER,xofs,yofs,zofs,anglespeed,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_RadiusThrust(thrust,dist,RTF_NOIMPACTDAMAGE|RTF_NOTMISSILE)
	TNT1 A 0 A_JumpIfCloser(300,2) TNT1 A 0 A_Jump(256,2)
	TNT1 A 0 A_CustomMissile("MephistoProjectileAttack",0,0,0,CMF_TRACKOWNER) 
	MLIU J 1 Bright A_Warp(AAPTR_MASTER,xofs,yofs,zofs,anglespeed,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_RadiusThrust(thrust,dist,RTF_NOIMPACTDAMAGE|RTF_NOTMISSILE)
	TNT1 A 0 A_JumpIfCloser(300,2) TNT1 A 0 A_Jump(256,2)
	TNT1 A 0 A_CustomMissile("MephistoProjectileAttack",0,0,0,CMF_TRACKOWNER) 
	MLIU K 1 Bright A_Warp(AAPTR_MASTER,xofs,yofs,zofs,anglespeed,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_RadiusThrust(thrust,dist,RTF_NOIMPACTDAMAGE|RTF_NOTMISSILE)
	TNT1 A 0 A_JumpIfCloser(300,2) TNT1 A 0 A_Jump(256,2)
	TNT1 A 0 A_CustomMissile("MephistoProjectileAttack",0,0,0,CMF_TRACKOWNER) 
	MLIU L 1 Bright A_Warp(AAPTR_MASTER,xofs,yofs,zofs,anglespeed,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_RadiusThrust(thrust,dist,RTF_NOIMPACTDAMAGE|RTF_NOTMISSILE)
	TNT1 A 0 A_JumpIfCloser(300,2) TNT1 A 0 A_Jump(256,2)
	TNT1 A 0 A_CustomMissile("MephistoProjectileAttack",0,0,0,CMF_TRACKOWNER) 
	MLIU M 1 Bright A_Warp(AAPTR_MASTER,xofs,yofs,zofs,anglespeed,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_RadiusThrust(thrust,dist,RTF_NOIMPACTDAMAGE|RTF_NOTMISSILE)
	TNT1 A 0 A_JumpIfCloser(300,2) TNT1 A 0 A_Jump(256,2)
	TNT1 A 0 A_CustomMissile("MephistoProjectileAttack",0,0,0,CMF_TRACKOWNER) 
	MLIU N 1 Bright A_Warp(AAPTR_MASTER,xofs,yofs,zofs,anglespeed,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_RadiusThrust(thrust,dist,RTF_NOIMPACTDAMAGE|RTF_NOTMISSILE)
	TNT1 A 0 A_JumpIfCloser(300,2) TNT1 A 0 A_Jump(256,2)
	TNT1 A 0 A_CustomMissile("MephistoProjectileAttack",0,0,0,CMF_TRACKOWNER) 
	MLIU O 1 Bright A_Warp(AAPTR_MASTER,xofs,yofs,zofs,anglespeed,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_RadiusThrust(thrust,dist,RTF_NOIMPACTDAMAGE|RTF_NOTMISSILE)
	TNT1 A 0 A_JumpIfCloser(300,2) TNT1 A 0 A_Jump(256,2)
	TNT1 A 0 A_CustomMissile("MephistoProjectileAttack",0,0,0,CMF_TRACKOWNER) 
	MLIU P 1 Bright A_Warp(AAPTR_MASTER,xofs,yofs,zofs,anglespeed,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_RadiusThrust(thrust,dist,RTF_NOIMPACTDAMAGE|RTF_NOTMISSILE)
	TNT1 A 0 A_JumpIfCloser(300,2) TNT1 A 0 A_Jump(256,2)
	TNT1 A 0 A_CustomMissile("MephistoProjectileAttack",0,0,0,CMF_TRACKOWNER) 
	MLIU Q 1 Bright A_Warp(AAPTR_MASTER,xofs,yofs,zofs,anglespeed,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_RadiusThrust(thrust,dist,RTF_NOIMPACTDAMAGE|RTF_NOTMISSILE)
	TNT1 A 0 A_JumpIfCloser(300,2) TNT1 A 0 A_Jump(256,2)
	TNT1 A 0 A_CustomMissile("MephistoProjectileAttack",0,0,0,CMF_TRACKOWNER) 
	MLIU R 1 Bright A_Warp(AAPTR_MASTER,xofs,yofs,zofs,anglespeed,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_RadiusThrust(thrust,dist,RTF_NOIMPACTDAMAGE|RTF_NOTMISSILE)
	TNT1 A 0 A_JumpIfCloser(300,2) TNT1 A 0 A_Jump(256,2)
	TNT1 A 0 A_CustomMissile("MephistoProjectileAttack",0,0,0,CMF_TRACKOWNER) 
	MLIU S 1 Bright A_Warp(AAPTR_MASTER,xofs,yofs,zofs,anglespeed,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_RadiusThrust(thrust,dist,RTF_NOIMPACTDAMAGE|RTF_NOTMISSILE)
	TNT1 A 0 A_JumpIfCloser(300,2) TNT1 A 0 A_Jump(256,2)
	TNT1 A 0 A_CustomMissile("MephistoProjectileAttack",0,0,0,CMF_TRACKOWNER) 
	MLIU T 1 Bright A_Warp(AAPTR_MASTER,xofs,yofs,zofs,anglespeed,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_RadiusThrust(thrust,dist,RTF_NOIMPACTDAMAGE|RTF_NOTMISSILE)
	TNT1 A 0 A_JumpIfCloser(300,2) TNT1 A 0 A_Jump(256,2)
	TNT1 A 0 A_CustomMissile("MephistoProjectileAttack",0,0,0,CMF_TRACKOWNER) 
	MLIU U 1 Bright A_Warp(AAPTR_MASTER,xofs,yofs,zofs,anglespeed,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_RadiusThrust(thrust,dist,RTF_NOIMPACTDAMAGE|RTF_NOTMISSILE)
	TNT1 A 0 A_JumpIfCloser(300,2) TNT1 A 0 A_Jump(256,2)
	TNT1 A 0 A_CustomMissile("MephistoProjectileAttack",0,0,0,CMF_TRACKOWNER) 
	MLIU V 1 Bright A_Warp(AAPTR_MASTER,xofs,yofs,zofs,anglespeed,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_RadiusThrust(thrust,dist,RTF_NOIMPACTDAMAGE|RTF_NOTMISSILE)
	TNT1 A 0 A_JumpIfCloser(300,2) TNT1 A 0 A_Jump(256,2)
	TNT1 A 0 A_CustomMissile("MephistoProjectileAttack",0,0,0,CMF_TRACKOWNER) 
	MLIU W 1 Bright A_Warp(AAPTR_MASTER,xofs,yofs,zofs,anglespeed,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_RadiusThrust(thrust,dist,RTF_NOIMPACTDAMAGE|RTF_NOTMISSILE)
	TNT1 A 0 A_JumpIfCloser(300,2) TNT1 A 0 A_Jump(256,2)
	TNT1 A 0 A_CustomMissile("MephistoProjectileAttack",0,0,0,CMF_TRACKOWNER) 
	MLIU "X" 1 Bright A_Warp(AAPTR_MASTER,xofs,yofs,zofs,anglespeed,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_RadiusThrust(thrust,dist,RTF_NOIMPACTDAMAGE|RTF_NOTMISSILE)
	TNT1 A 0 A_JumpIfCloser(300,2) TNT1 A 0 A_Jump(256,2)
	TNT1 A 0 A_CustomMissile("MephistoProjectileAttack",0,0,0,CMF_TRACKOWNER) 
	MLIU "Y" 1 Bright A_Warp(AAPTR_MASTER,xofs,yofs,zofs,anglespeed,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_RadiusThrust(thrust,dist,RTF_NOIMPACTDAMAGE|RTF_NOTMISSILE)
	TNT1 A 0 A_JumpIfCloser(300,2) TNT1 A 0 A_Jump(256,2)
	TNT1 A 0 A_CustomMissile("MephistoProjectileAttack",0,0,0,CMF_TRACKOWNER)
	MLIU "Z" 1 Bright A_Warp(AAPTR_MASTER,xofs,yofs,zofs,anglespeed,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_RadiusThrust(thrust,dist,RTF_NOIMPACTDAMAGE|RTF_NOTMISSILE)
	TNT1 A 0 A_JumpIfCloser(300,2) TNT1 A 0 A_Jump(256,2)
	TNT1 A 0 A_CustomMissile("MephistoProjectileAttack",0,0,0,CMF_TRACKOWNER) 
	MLI2 A 1 Bright A_Warp(AAPTR_MASTER,xofs,yofs,zofs,anglespeed,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_RadiusThrust(thrust,dist,RTF_NOIMPACTDAMAGE|RTF_NOTMISSILE)
	TNT1 A 0 A_JumpIfCloser(300,2) TNT1 A 0 A_Jump(256,2)
	TNT1 A 0 A_CustomMissile("MephistoProjectileAttack",0,0,0,CMF_TRACKOWNER) 
	MLI2 B 1 Bright A_Warp(AAPTR_MASTER,xofs,yofs,zofs,anglespeed,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_RadiusThrust(thrust,dist,RTF_NOIMPACTDAMAGE|RTF_NOTMISSILE)
	TNT1 A 0 A_JumpIfCloser(300,2) TNT1 A 0 A_Jump(256,2)
	TNT1 A 0 A_CustomMissile("MephistoProjectileAttack",0,0,0,CMF_TRACKOWNER) 
	MLI2 C 1 Bright A_Warp(AAPTR_MASTER,xofs,yofs,zofs,anglespeed,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_RadiusThrust(thrust,dist,RTF_NOIMPACTDAMAGE|RTF_NOTMISSILE)
	TNT1 A 0 A_JumpIfCloser(300,2) TNT1 A 0 A_Jump(256,2)
	TNT1 A 0 A_CustomMissile("MephistoProjectileAttack",0,0,0,CMF_TRACKOWNER) 
	MLI2 D 1 Bright A_Warp(AAPTR_MASTER,xofs,yofs,zofs,anglespeed,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_RadiusThrust(thrust,dist,RTF_NOIMPACTDAMAGE|RTF_NOTMISSILE)
	TNT1 A 0 A_JumpIfCloser(300,2) TNT1 A 0 A_Jump(256,2)
	TNT1 A 0 A_CustomMissile("MephistoProjectileAttack",0,0,0,CMF_TRACKOWNER)   
	MLI2 E 1 Bright A_Warp(AAPTR_MASTER,xofs,yofs,zofs,anglespeed,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_JumpIfTargetInLOS(1,0,JLOSF_NOSIGHT|JLOSF_DEADNOJUMP)
	Goto Idle
	TNT1 A 0
	Loop
  Death:
    TNT1 A 1 A_SpawnItemEx("LootOrbDeathExplosion",0,0,0)
	Stop
	}
}

ACTOR MephistoProjectileAttack
{
Monster
Species "SatanGuard"
obituary "%o was killed by a Mysterious Orb."
Tag "\c[g1]Mysterious Orb\c-"
Speed 20
+NOBLOOD
+ISMONSTER
+THRUSPECIES
+LOOKALLAROUND
+QUICKTORETALIATE
+NOTARGET
+NOCLIP
-COUNTKILL
States
{
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_Look
	TNT1 AAAAA 1 A_Chase
	Stop
  See:
	TNT1 A 0 A_FaceTarget
	TNT1 A 1 ThrustThing(angle*256/360,70,1)
	TNT1 A 1 A_CustomRailgun(Random(20,40),0,None,None,RGF_SILENT|RGF_NOPIERCING|RGF_CENTERZ,0,0,"WStrikeLightningPuff",5,5,0,0,0.5,1,"WStrikeLightningBallSmall")
	Goto Death	
  Death:
	TNT1 A 1
	Stop
	}
}

Actor MonsterSmokeTest : CyZombie
{
+NOGRAVITY
+FLOAT
States
{
  Spawn:
    TNT1 A 0
	TNT1 A 1 A_SpawnItemEx("MephistoSmokeOrbit1",0,0,0,0,0,0,Random(0,360),SXF_SETMASTER|SXF_NOCHECKPOSITION)
  SpawnLoop:
    TNT1 AAA 0 A_SpawnItemEx("MephistoSmokeOrbit2",0,0,0,0,0,0,Random(0,360),SXF_SETMASTER|SXF_NOCHECKPOSITION,64)
	//TNT1 AA 0 A_SpawnItemEx("MephistoSmokeOrbit1",0,0,0,0,0,0,Random(0,360),SXF_SETMASTER|SXF_NOCHECKPOSITION,64)
	TNT1 A 1 A_SpawnItemEx("MephistoSmokeOrbit1",0,0,0,0,0,0,Random(0,360),SXF_SETMASTER|SXF_NOCHECKPOSITION)
	Loop
	}
}

Actor MephistoSmokeOrbit1 : PatriarchOrbitCube1
{
Renderstyle Add
Alpha 0.40
+FORCEXYBILLBOARD
var int user_xofs;
var int user_yofs;
var int user_zofs;
var int user_angle;
States
{
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_SetScale(FRandom(1.0,1.5))
	TNT1 A 0 A_SetUserVar(user_xofs,FRandom(130,150)) //30
	TNT1 A 0 A_SetUserVar(user_yofs,0)
	TNT1 A 0 A_SetUserVar(user_zofs,FRandom(0,130)) //105
	TNT1 A 0 A_SetUserVar(user_angle,Random(-15,15))
  Rolling:
	TNT1 A 1 A_Warp(AAPTR_MASTER,user_xofs,user_yofs,user_zofs,user_angle,WARPF_NOCHECKPOSITION|WARPF_USECALLERANGLE)
	SMIS AAAAAAAAAA 1 Bright A_Warp(AAPTR_MASTER,user_xofs,user_yofs,user_zofs,user_angle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_Fadeout(0.1)
	SMIS BBBBBBBBBB 1 Bright A_Warp(AAPTR_MASTER,user_xofs,user_yofs,user_zofs,user_angle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_Fadeout(0.1)
	SMIS CCCCCCCCCC 1 Bright A_Warp(AAPTR_MASTER,user_xofs,user_yofs,user_zofs,user_angle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_Fadeout(0.1)
	SMIS DDDDDDDDDD 1 Bright A_Warp(AAPTR_MASTER,user_xofs,user_yofs,user_zofs,user_angle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_Fadeout(0.1)
	SMIS EEEEEEEEEE 1 Bright A_Warp(AAPTR_MASTER,user_xofs,user_yofs,user_zofs,user_angle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_Fadeout(0.1)
	SMIS FFFFFFFFFF 1 Bright A_Warp(AAPTR_MASTER,user_xofs,user_yofs,user_zofs,user_angle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_Fadeout(0.1)
	SMIS GGGGGGGGGG 1 Bright A_Warp(AAPTR_MASTER,user_xofs,user_yofs,user_zofs,user_angle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_Fadeout(0.1)
	SMIS HHHHHHHHHH 1 Bright A_Warp(AAPTR_MASTER,user_xofs,user_yofs,user_zofs,user_angle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_Fadeout(0.1)
	SMIS IIIIIIIIII 1 Bright A_Warp(AAPTR_MASTER,user_xofs,user_yofs,user_zofs,user_angle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_Fadeout(0.1)
	SMIS JJJJJJJJJJ 1 Bright A_Warp(AAPTR_MASTER,user_xofs,user_yofs,user_zofs,user_angle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_Fadeout(0.1)
	SMIS KKKKKKKKKK 1 Bright A_Warp(AAPTR_MASTER,user_xofs,user_yofs,user_zofs,user_angle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_Fadeout(0.1)
	Stop
  }
}

Actor MephistoSmokeOrbit2 : MephistoSmokeOrbit1
{
States
{
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_SetScale(FRandom(0.8,1.3))
	TNT1 A 0 A_SetUserVar(user_xofs,FRandom(130,150)) //30
	TNT1 A 0 A_SetUserVar(user_yofs,0)
	TNT1 A 0 A_SetUserVar(user_zofs,FRandom(0,130)) //105
	TNT1 A 0 A_SetUserVar(user_angle,Random(-15,15))
  Rolling:
	TNT1 A 1 A_Warp(AAPTR_MASTER,user_xofs,user_yofs,user_zofs,user_angle,WARPF_NOCHECKPOSITION|WARPF_USECALLERANGLE)
	SMK3 AAAAAAAAAA 1 A_Warp(AAPTR_MASTER,user_xofs,user_yofs,user_zofs,user_angle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_Fadeout(0.1)
	SMK3 BBBBBBBBBB 1 A_Warp(AAPTR_MASTER,user_xofs,user_yofs,user_zofs,user_angle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_Fadeout(0.1)
	SMK3 CCCCCCCCCC 1 A_Warp(AAPTR_MASTER,user_xofs,user_yofs,user_zofs,user_angle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_Fadeout(0.1)
	SMK3 DDDDDDDDDD 1 A_Warp(AAPTR_MASTER,user_xofs,user_yofs,user_zofs,user_angle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_Fadeout(0.1)
	SMK3 EEEEEEEEEE 1 A_Warp(AAPTR_MASTER,user_xofs,user_yofs,user_zofs,user_angle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_Fadeout(0.1)
	SMK3 FFFFFFFFFF 1 A_Warp(AAPTR_MASTER,user_xofs,user_yofs,user_zofs,user_angle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_Fadeout(0.1)
	SMK3 GGGGGGGGGG 1 A_Warp(AAPTR_MASTER,user_xofs,user_yofs,user_zofs,user_angle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_Fadeout(0.1)
	SMK3 HHHHHHHHHH 1 A_Warp(AAPTR_MASTER,user_xofs,user_yofs,user_zofs,user_angle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_Fadeout(0.1)
	SMK3 IIIIIIIIII 1 A_Warp(AAPTR_MASTER,user_xofs,user_yofs,user_zofs,user_angle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_Fadeout(0.1)
	SMK3 JJJJJJJJJJ 1 A_Warp(AAPTR_MASTER,user_xofs,user_yofs,user_zofs,user_angle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_Fadeout(0.1)
	SMK3 KKKKKKKKKK 1 A_Warp(AAPTR_MASTER,user_xofs,user_yofs,user_zofs,user_angle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_Fadeout(0.1)
	SMK3 LLLLLLLLLL 1 A_Warp(AAPTR_MASTER,user_xofs,user_yofs,user_zofs,user_angle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_Fadeout(0.1)
	SMK3 MMMMMMMMMM 1 A_Warp(AAPTR_MASTER,user_xofs,user_yofs,user_zofs,user_angle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_Fadeout(0.1)
	Stop
  }
}

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

ACTOR MephistoSpectralModeGiver : Crusaderbuff //Oh no...
{
States 
{
  Pickup:
	TNT1 A 1
	TNT1 A 0 ACS_NamedExecuteAlways("SpectralModeCheck",0,Random(1200,1700),2100,1)
	stop
	}
}

Actor MonSpectralToken : Inventory {inventory.maxamount 1}

Actor SpectralGetFlags : ShieldCANTSEEKSET
{
States
{
  Pickup:
	TNT1 A 1
	TNT1 A 0 A_ChangeFlag(NOCLIP,1)
	TNT1 A 0 A_ChangeFlag(GHOST,1)
  	Stop
	}
}

Actor SpectralResetFlags : ShieldCANTSEEKSET
{
States
{
  Pickup:
	TNT1 A 1
	TNT1 A 0 A_ChangeFlag(NOCLIP,0)
	TNT1 A 0 A_ChangeFlag(GHOST,0)
  	Stop
	}
}

Actor MephistoLightningGiver : NDefilerMindfuckHeart
{
States
{
Pickup:
	TNT1 A 1 A_SetBlend("White",0.4,10)
	TNT1 A 0 A_PlaySound("tsi/lightgiver",7,1.0,0,ATTN_NONE)
	TNT1 A 0 A_SpawnItemEX("PainLightning",0,0,0,0,0,0,0)
	TNT1 A 0 ACS_NamedExecuteAlways("TSILightningSingle",0)
	Stop
	}
}

Actor MephistoSkullSpawner : VexedAura
{
States
{
  Spawn:
	TNT1 A 0 NoDelay A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Null")
	TNT1 A 1 A_SpawnItemEx("NRSkullEffect",random(-100,100),random(-100,100),0,Random(1,2),Random(1,2),Random(2,4),Random(0,360),0)
	Stop
	}
}

ACTOR MephistoTeleportEffect : MainyuDeathExplosion4
{
Scale 0.5
States
{
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_PlaySound("mephisto/telestart1",4)
	TNT1 A 0 A_PlaySound("mephisto/telestart2",5)
	MND6 ABC 2 Bright A_SetScale(scalex+0.1,scaley+0.1)
	TNT1 AAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("VexedAuraRiftRandomizer",Random(-10,10),Random(-10,10),Random(-10,10),FRandom(-2,2),FRandom(-2,2),FRandom(-2,2),0,0,0)
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("VexedAuraSpark",Random(-10,10),Random(-10,10),Random(-10,10),FRandom(-2,2),FRandom(-2,2),FRandom(-2,2),0,0,0)
	MND6 DEFGHIJK 1 Bright A_FadeOut(0.1,0)
	TNT1 A 0 A_PlaySound("mephisto/telestend1",6)
	TNT1 A 0 A_PlaySound("mephisto/telestend2",7)
    Stop
  }
}

ACTOR MephistoDeathEffect : MainyuDeathExplosion4
{
States
{
  Spawn:
	TNT1 A 0
	TNT1 AAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("VexedAuraRiftRandomizer",Random(-20,20),Random(-20,20),Random(-20,20),FRandom(-2,2),FRandom(-2,2),FRandom(-2,2),0,0,0)
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("VexedAuraSpark",Random(-20,20),Random(-20,20),Random(-20,20),FRandom(-2,2),FRandom(-2,2),FRandom(-2,2),0,0,0)
	TNT1 A 5
	TNT1 AAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("VexedAuraRiftRandomizer",Random(-20,20),Random(-20,20),Random(-20,20),FRandom(-2,2),FRandom(-2,2),FRandom(-2,2),0,0,0)
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("VexedAuraSpark",Random(-20,20),Random(-20,20),Random(-20,20),FRandom(-2,2),FRandom(-2,2),FRandom(-2,2),0,0,0)
	TNT1 A 5
	TNT1 AAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("VexedAuraRiftRandomizer",Random(-20,20),Random(-20,20),Random(-20,20),FRandom(-2,2),FRandom(-2,2),FRandom(-2,2),0,0,0)
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("VexedAuraSpark",Random(-20,20),Random(-20,20),Random(-20,20),FRandom(-2,2),FRandom(-2,2),FRandom(-2,2),0,0,0)
	TNT1 A 5
	TNT1 AAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("VexedAuraRiftRandomizer",Random(-20,20),Random(-20,20),Random(-20,20),FRandom(-2,2),FRandom(-2,2),FRandom(-2,2),0,0,0)
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("VexedAuraSpark",Random(-20,20),Random(-20,20),Random(-20,20),FRandom(-2,2),FRandom(-2,2),FRandom(-2,2),0,0,0)
	TNT1 A 5
	TNT1 AAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("VexedAuraRiftRandomizer",Random(-20,20),Random(-20,20),Random(-20,20),FRandom(-2,2),FRandom(-2,2),FRandom(-2,2),0,0,0)
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("VexedAuraSpark",Random(-20,20),Random(-20,20),Random(-20,20),FRandom(-2,2),FRandom(-2,2),FRandom(-2,2),0,0,0)
	TNT1 A 5
	TNT1 AAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("VexedAuraRiftRandomizer",Random(-20,20),Random(-20,20),Random(-20,20),FRandom(-2,2),FRandom(-2,2),FRandom(-2,2),0,0,0)
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("VexedAuraSpark",Random(-20,20),Random(-20,20),Random(-20,20),FRandom(-2,2),FRandom(-2,2),FRandom(-2,2),0,0,0)
	TNT1 A 5
	TNT1 AAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("VexedAuraRiftRandomizer",Random(-20,20),Random(-20,20),Random(-20,20),FRandom(-2,2),FRandom(-2,2),FRandom(-2,2),0,0,0)
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("VexedAuraSpark",Random(-20,20),Random(-20,20),Random(-20,20),FRandom(-2,2),FRandom(-2,2),FRandom(-2,2),0,0,0)
	TNT1 A 5
    Stop
  }
}