Actor ShamanReiverSummoner : NemesisHKSummoner
{
States
{
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_SetAngle(random(0,359))
	TNT1 A 1 A_Recoil(-10) //40
	TNT1 A 0 A_JumpIf(user_limit > 3,"Death")
	TNT1 A 0 A_SetUserVar("user_limit",user_limit+1)
	TNT1 A 1 A_Recoil(-4)
	TNT1 A 2 A_Jump(48,"Death")
    Goto Spawn+3
  Death:
    //TNT1 A 0 A_SpawnItemEx("TeleportFog")
	TNT1 A 0 A_SpawnItemEx("NemesisRemiliaTeleportEnd",0,0,35)
    TNT1 A 5 A_SpawnItemEx("ShamanImpReiver",0,0,0,0,0,0,angle,SXF_TRANSFERPOINTERS|SXF_NOCHECKPOSITION,0,tid)
	TNT1 A 1 A_Fall
	Stop
	}
}

Actor ShamanImpReiver : Doomimp
{
Radius 22
Height 58
Health 400
Speed 9
Scale 1.1
Renderstyle Add
MaxTargetRange 1000
MeleeDamage 0
DeathSound ""
SeeSound "reiver/see"
ActiveSound "reiver/active"
-COUNTKILL
+NOKILLSCRIPTS
+FLOAT
+NOGRAVITY
+NOPAIN
+QUICKTORETALIATE
+NOTIMEFREEZE
+NOCLIP
var int user_warptime;
var int user_sound;
States
{
 Spawn:
   TNT1 A 0
   TNT1 A 0 A_SetUserVar("user_sound",Random(1,49))
   Goto Idle
 Idle:
   WRX4 AABB 1 A_Wander
   TNT1 A 0 A_SpawnItemEx("ArmorParticleWhite",random(3,-3),random(3,-3),random(45,5),random(1,-1),random(1,-1),random(1,-1),random(0,360))
   TNT1 A 0 A_Look
   TNT1 A 0 A_SpawnItemEx("ReiverShadow",0,0,0,frandom(-5,5),frandom(-5,5),frandom(-5,5),0)
   WRX4 CCDD 1 A_Wander
   TNT1 A 0 A_SpawnItemEx("ArmorParticleWhite",random(3,-3),random(3,-3),random(45,5),random(1,-1),random(1,-1),random(1,-1),random(0,360))
   TNT1 A 0 A_Look
   TNT1 A 0 A_SpawnItemEx("ReiverShadow",0,0,0,frandom(-5,5),frandom(-5,5),frandom(-5,5),0)
   TNT1 A 0 A_JumpIf(user_warptime >= 300,"Warp")
   TNT1 A 0 A_SetUserVar("user_warptime",user_warptime+1)
   TNT1 A 0 A_JumpIf(user_sound >= 50,"PlaySound")
   TNT1 A 0 A_SetUserVar("user_sound",user_sound+1)
   Loop
 PlaySound:
   TNT1 A 0 A_PlaySound("reiver/active",CHAN_VOICE)
   TNT1 A 0 A_SetUserVar("user_sound",0)
   Goto Idle
 Warp:
   TNT1 A 0 A_Warp(AAPTR_MASTER)
   WRX4 E 10
   TNT1 A 0 A_SetUserVar("user_warptime",0)
   Goto Idle
 See:
   WRX4 AABBCCDD 1 A_Chase
   Loop
 Missile:
   TNT1 A 0 A_JumpIfCloser(200,"Melee")
   WRX4 AABBCCDD 1 A_SkullAttack(40)
   Loop
 Melee:
   TNT1 A 0 A_ChangeFlag(SHOOTABLE,0)
   TNT1 A 0 A_PlaySound("reiver/see",CHAN_VOICE)
   WRX4 EFG 5
   WRX4 G 10 ACS_NamedExecuteAlways("WakeUpShaman",0)
   WRX4 GGGGGGGGGGG 1 A_FadeOut(0.1,1)
   Stop
 Death:
 XDeath:
   WRX4 H 5
   TNT1 A 0 ThrustThingZ(0,3,0,0)
   WRX4 I 5 A_Scream
   WRX4 I 5 A_Fall
   WRX4 K 5
   WRX4 KKKKKKKKKKK 1 A_FadeOut(0.1,1)
   Stop
   }
}

Actor ReiverShadow
{
+CLIENTSIDEONLY
+NOINTERACTION
+NOTIMEFREEZE
+BRIGHT
Renderstyle Subtract
Alpha 0.25
Scale 1.1
States
{
  Spawn:
    TNT1 A 1
    WRX4 A 1 A_FadeOut(0.05)
    Wait
    }
}

Actor TerrorShamanImp : VexedNemesisImp
{ //Scripted (only for TerrorShamanImp2 and TerrorShamanImpRing; can cause them to not disappear when spawning boss minions)
//Creator: Fluffy
//Origin: Nexus Infinity
//Sprite: 1TSI/2TSI
//Title: "Terror Shaman Imp"
Health 6799
Speed 30
FloatSpeed 15
Mass 10000
MeleeDamage 60
PainChance 20
PainChance "SoulToxic", 60
PainChance "FatFlamer", 60
PainChance "FiendFire", 60
Painchance "wakeup", 255
DamageFactor 0.4
//Look at all those DMF's bro
DamageFactor "Cyber10K", 0.0
DamageFactor "CDTBFG", 0.0
DamageFactor "PlayerBHole", 0.25
DamageFactor "PDTBFG", 0.03
DamageFactor "PDTBFGTracer", 0.03
DamageFactor "Legendary", 0.0
DamageFactor "LegendaryPlayer", 0.1
DamageFactor "LegendaryGuru", 0.1
DamageFactor "LegendaryGuruPlayer", 0.1
DamageFactor "LegendaryPlayer", 0.1
DamageFactor "BFGSplash", 0.0
DamageFactor "BFGSpray", 0.0
DamageFactor "PlayerDTBFGRailgunSlug", 0.0
DamageFactor "PlayerDevTracer", 0.0
DamageFactor "UltimateLegendary", 0.0
DamageFactor "Extreme", 0.0
DamageFactor "PyroShot", 0.0
DamageFactor "PlayerPyro", 0.0
DamageFactor "PDTPuff", 0.0
DamageFactor "FreezerBurn", 0.0
DamageFactor "SuperWeapon", 0.0
DamageFactor "Fire", 0.0
DamageFactor "Crush", 0.0
DamageFactor "Suicide", 0.0
DamageFactor "Telefrag", 0.0
//DamageFactor "Massacre", 0.0
DamageFactor "Ice", 0.0
DamageFactor "Hackroid", 0.5
DamageFactor "Explosion", 0.2
DamageFactor "PlayerDTRG", 0.4
DamageFactor "DTRailgun", 0.4
DamageFactor "PlayerDevBall", 0.125
DamageFactor "PlayerDevBall2", 0.125
DamageFactor "PlayerPyro", 0.1
DamageFactor "PlayerFireSword", 0.1
DamageFactor "PlayerDBFG2", 0.1
DamageFactor "PlayerDBFG10K2", 0.1
DamageFactor "PlayerDBFGSplash2", 0.1
DamageFactor "PlayerHellfire", 0.1
DamageFactor "CustomSpray", 0.1
DamageFactor "BFG9500Ball", 0.1
//No infight, except it now says 0.1
DamageFactor "BeheComet", 0.1
DamageFactor "FatFlamer", 0.1
Damagefactor "CurseComet", 0.1
DamageFactor "SoulToxic", 0.1
DamageFactor "Cacolich", 0.1
DamageFactor "VilesFire", 0.1
DamageFactor "CadaverRocket", 0.1
DamageFactor "SuperWeapon", 0.1
DamageFactor "Normal", 0.1
DamageFactor "HFCyber", 0.1
DamageFactor "DementedTerminator", 0.1
DamageFactor "DBFG10K2", 0.1
DamageFactor "DemolisherEx", 0.1
DamageFactor "DarkDemoEx", 0.1
DamageFactor "CerChainguns", 0.1
DamageFactor "CerEnergyBall", 0.1
DamageFactor "DBFG", 0.1
DamageFactor "BFGSplash", 0.1
DamageFactor "BFGSpray", 0.1
DamageFactor "FlamingBatshitBurglers", 0.1
DamageFactor "LegMind", 0.1
DamageFactor "HellComet", 0.1
DamageFactor "Legendary1", 0.1
DamageFactor "T3rm", 0.1
DamageFactor "Terminator", 0.1
DamageFactor "", 0.1
DamageFactor "Moloch", 0.1
DamageFactor "AbyssalSatyr", 0.1
DamageFactor "SatanGuard", 0.1
DamageFactor "Hell", 0.1
DamageFactor "InsanityHell", 0.1
DamageFactor "SS", 0.05
DamageFactor "Exos", 0.05
DamageFactor "NobleComet", 0.1
DamageFactor "Baby15K", 0.1
//Ok maybe some exceptions... but still
DamageFactor "CacoComet", 0.0
DamageFactor "UpBFGSplash", 0.0
DamageFactor "RST", 0.0
DamageFactor "Mainyu", 0.0
DamageFactor "HFCyb3r", 0.0
DamageFactor "C0mm4nder", 0.0
//DropItem "", 256, 1
SeeSound "tsi/sight"
PainSound "tsi/pain"
DeathSound "tsi/death"
ActiveSound "tsi/active"
MeleeSound "imps/melee"
Obituary "%o got %hself slaughtered by a Terror Shaman Imp."
HitObituary "%o was Blasted by a Terror Shaman Imp."
Bloodcolor "Black"
Tag "\c[g3]Terror Shaman Imp\c-"
-NOTARGET
-BRIGHT
var int user_tic;
var int user_mastertid;
var int user_mode; //If hell or serpent
var int user_woke;
var int user_spawnghost;
var int user_cloaked;
var int user_maxsummon;
var int user_summondelay; //30 seconds
var int user_activetimer; //Random 15 - 30 seconds
var int user_bosstier;
var int user_stage;
var int user_cooldown; //Special Attack Cooldown
var int user_cooldowntimer;
var int user_cooldownranged;
var int user_meleetoken;
var int user_disappear;
States
{
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("IsTSISpawned") == 1,"Remove")
	TNT1 A 0 ACS_NamedExecuteAlways("TerrorAuraSpawnerZombie",0)
	TNT1 A 0 A_SetUserVar(user_mastertid,ACS_NamedExecuteWithResult("Hem_GetTID"))
	TNT1 A 0 Thing_ChangeTid(0,user_mastertid)
	TNT1 A 0 A_SetUserVar("user_summondelay",0)
	TNT1 A 0 A_SetUserVar("user_activetimer",30)
	TNT1 A 0 A_SetUserVar("user_cooldowntimer",50)
	TNT1 A 0 A_SetUserVar("user_stage",1)
	TNT1 A 0 A_SpawnItemEx("TSIOrbitCube1",0,0,0,0,0,0,0,SXF_SETMASTER,0,user_mastertid)
	TNT1 A 0 A_SpawnItemEx("TSIOrbitCube2",0,0,0,0,0,0,120,SXF_SETMASTER,0,user_mastertid)
	TNT1 A 0 A_SpawnItemEx("TSIOrbitCube3",0,0,0,0,0,0,240,SXF_SETMASTER,0,user_mastertid)
  SpawnLoop:
	TNT1 A 0 A_JumpIf(user_spawnghost == 1,3)
	TNT1 A 0 A_JumpIf(user_tic >= 100,"SpawnGhost")
	TNT1 A 0 A_SetUserVar("user_tic",user_tic+Random(1,5))
    1TSI A 10 Bright A_Look
	1TSU A 10 Bright A_Look
	Loop
  SpawnGhost:
    1TSI EFG 8 Bright A_Look
	TNT1 AA 0 A_SpawnItemEx("ShamanReiverSummoner",Random(-5,5),Random(-5,5),15,0,0,0,Angle,SXF_NOCHECKPOSITION|SXF_SETMASTER,0,user_mastertid+1)
	1TSI HI 5 Bright A_Look
	1TSI GFE 8 Bright A_Look
	TNT1 A 0 A_SetUserVar("user_spawnghost",1)
	TNT1 A 0 A_JumpIf(user_woke == 0,"SpawnLoop")
	Goto idleloop
  SpawnGhost2:
    2TSI EFG 8 Bright A_Look
	TNT1 AA 0 A_SpawnItemEx("ShamanReiverSummoner",Random(-5,5),Random(-5,5),15,0,0,0,Angle,SXF_NOCHECKPOSITION|SXF_SETMASTER,0,user_mastertid+1)
	2TSI GG 5 Bright A_Look //HI
	2TSI GFE 8 Bright A_Look
	TNT1 A 0 A_SetUserVar("user_spawnghost",1)
	Goto idleloop2
  Idle:
    TNT1 A 0 A_SetUserVar("user_spawnghost",0)
	TNT1 A 0 A_SetUserVar("user_tic",0)
	TNT1 A 0 A_SetUserVar("user_woke",1)
	TNT1 A 0 A_JumpIfInventory("MarineKilled",1,"Taunt")
	TNT1 A 0 A_JumpIf(user_mode == 1,"Idleloop2")
  Idleloop:
	1TSI A 3 Bright A_Wander
	TNT1 A 0 A_Look
	1TSI A 3 Bright A_Wander
    TNT1 A 0 A_Look
	1TSI B 3 Bright A_Wander
	TNT1 A 0 A_Look
	1TSI B 3 Bright A_Wander
	TNT1 A 0 A_SpawnItem("HumanishStep",0,0,0,0)
	TNT1 A 0 A_Look
	1TSI C 3 Bright A_Wander
	TNT1 A 0 A_Look
	1TSI C 3 Bright A_Wander
    TNT1 A 0 A_Look
	1TSI D 3 Bright A_Wander
	TNT1 A 0 A_Look
	1TSI D 3 Bright A_Wander
	TNT1 A 0 A_Look
	TNT1 A 0 A_JumpIf(user_spawnghost == 1,3)
	TNT1 A 0 A_JumpIf(user_tic >= 150,"SpawnGhost")
	TNT1 A 0 A_SetUserVar("user_tic",user_tic+Random(1,5))
	TNT1 A 0 A_SpawnItem("HumanishStep",0,0,0,0)
	Loop
  Idleloop2:
	2TSI A 3 Bright A_Wander
	TNT1 A 0 A_Look
	2TSI A 3 Bright A_Wander
    TNT1 A 0 A_Look
	2TSI B 3 Bright A_Wander
	TNT1 A 0 A_Look
	2TSI B 3 Bright A_Wander
	TNT1 A 0 A_SpawnItem("HumanishStep",0,0,0,0)
	TNT1 A 0 A_Look
	2TSI C 3 Bright A_Wander
	TNT1 A 0 A_Look
	2TSI C 3 Bright A_Wander
    TNT1 A 0 A_Look
	2TSI D 3 Bright A_Wander
	TNT1 A 0 A_Look
	2TSI D 3 Bright A_Wander
	TNT1 A 0 A_Look
	TNT1 A 0 A_JumpIf(user_spawnghost == 1,3)
	TNT1 A 0 A_JumpIf(user_tic >= 150,"SpawnGhost2")
	TNT1 A 0 A_SetUserVar("user_tic",user_tic+Random(1,5))
	TNT1 A 0 A_SpawnItem("HumanishStep",0,0,0,0)
	Loop
  Remove:
	TNT1 A 1
	TNT1 A 0 A_SpawnItemEx("DoomImp",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
	TNT1 A 0 A_ChangeFlag("COUNTKILL",FALSE)
	TNT1 A 0
	Stop
  Alert:
    TNT1 A 0 A_PlaySound("zamasuimp/sight",CHAN_VOICE,1.0,0,ATTN_NONE)
	Goto See
  Taunt:
    TNT1 A 0 A_PlaySound("tsi/taunt",CHAN_VOICE,1.0,FALSE,ATTN_NONE)
    TNT1 A 0 A_TakeInventory("MarineKilled",1)
	Goto See
  See:
    TNT1 A 0 A_SetUserVar("user_cooldownranged",Random(0,35))
    TNT1 A 0 A_JumpIf(user_music == 1,4)
	TNT1 A 0 ACS_NamedExecuteAlways("StartMonsterMusic",0,2030)
	TNT1 A 0 ACS_NamedExecuteAlways("TSIActiveTimer",0)
	TNT1 A 0 A_SetUserVar("user_music",1)
	TNT1 A 0 ACS_NamedExecuteAlways("KillReivers",0)
	TNT1 A 0 A_SetTranslucent(1)
  SeeLoop:
    //TNT1 A 0 A_Jump(255,"SummonBoss") //Remove
	TNT1 A 0 A_JumpIfInventory("MarineKilled",1,"Taunt")
    TNT1 A 0 A_JumpIf(user_maxsummon >= 8,3)
	TNT1 A 0 A_JumpIf(user_summondelay >= 1,2)
	TNT1 A 0 A_JumpIfHealthLower(3200,"SummonBoss")
	TNT1 A 0 A_JumpIf(user_mode == 1,"SeeLoop2")
	TNT1 A 0 A_JumpIf(user_activetimer <= 1,"ChangeForm")
    TNT1 A 0 A_JumpIf(user_cooldownranged >= 45,"LongRange")
	TNT1 A 0 A_SetUserVar(user_cooldownranged,user_cooldownranged+1)
	1TSI AABB 3 Bright A_Chase
	TNT1 A 0 A_SpawnItem("HumanishStep",0,0,0,0)
	1TSI CCDD 3 Bright A_Chase
	TNT1 A 0 A_SpawnItem("HumanishStep",0,0,0,0)
    TNT1 A 0 A_Jump(46,"Evade","Rush")
	TNT1 A 0 A_Jump(30,"Teleport")
    Loop
  SeeLoop2:
    TNT1 A 0 A_JumpIf(user_maxsummon >= 8,3)
	TNT1 A 0 A_JumpIf(user_summondelay >= 1,2)
	TNT1 A 0 A_JumpIfHealthLower(3200,"SummonBoss")
	TNT1 A 0 A_JumpIf(user_activetimer <= 1,"ChangeForm")
    TNT1 A 0 A_JumpIf(user_cooldownranged >= 45,"LongRange2")
	TNT1 A 0 A_SetUserVar(user_cooldownranged,user_cooldownranged+1)
	2TSI AABB 3 Bright A_Chase
	TNT1 A 0 A_SpawnItem("HumanishStep",0,0,0,0)
	2TSI CCDD 3 Bright A_Chase
	TNT1 A 0 A_SpawnItem("HumanishStep",0,0,0,0)
	TNT1 A 0 A_Jump(46,"Evade2","Rush2")
	TNT1 A 0 A_Jump(30,"Teleport")
    Loop
  LongRange2:
    TNT1 A 0 A_SetInvulnerable
    TNT1 A 0 A_ChangeFlag(NOPAIN,1)
    2TSI EFG 5 Bright A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("TSIHellAttackCircle",0,0,50,0,0,0,0,SXF_NOCHECKPOSITION|SXF_SETMASTER)
	TNT1 A 0 A_Jump(32,"TeleportSelf2")
	TNT1 A 0 A_Jump(255,"SummonMinionsGiver2","SummonTraps2")
  TeleportSelf2:
    TNT1 A 0 A_GiveToTarget("TSITeleportCircleSpawner2")
	TNT1 A 0 ACS_NamedExecuteAlways("TSITeleportSelf",0,1)
	Goto LongRangeEnd2
  SummonTraps2:
    TNT1 A 0 A_JumpIf(user_stage >= 3,3)
    TNT1 A 0 A_GiveToTarget("TSITrapSpawnerHell")
	TNT1 A 0 A_Jump(255,2)
	TNT1 A 0 A_GiveToTarget("TSITrapSpawnerHell2")
	TNT1 A 0
	Goto LongRangeEnd2
  SummonMinionsGiver2:
    TNT1 A 0 A_GiveToTarget("TSIMinionSpawnerHellGiver")
  LongRangeEnd2:
    TNT1 A 0 A_SetUserVar("user_cooldownranged",Random(0,15))
	2TSI GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG 2 Bright A_JumpIfTargetInLOS("FireEnd")
    TNT1 A 0 A_StopSound(5)
    TNT1 A 0 A_ChangeFlag(NOPAIN,0)
	TNT1 A 0 A_JumpIfInventory("MarineKilled",1,"Taunt")
    2TSI GFE 5 Bright
	Goto See+1
  LongRange:
    TNT1 A 0 A_SetInvulnerable
    TNT1 A 0 A_ChangeFlag(NOPAIN,1)
    1TSI EFG 5 Bright A_FaceTarget
    TNT1 A 0 A_SpawnItemEx("TSIBlueAttackCircle",0,0,50,0,0,0,0,SXF_NOCHECKPOSITION|SXF_SETMASTER)
	TNT1 AAAAAAA 0 A_SpawnItemEx("MasterLightningSpawnerMediumTemp",0,0,0,0,0,0,0,SXF_SETMASTER)
	TNT1 A 0 A_SpawnItemEx("TSIBlueSpawnEffect",0,0,40,0,0,0,0,SXF_NOCHECKPOSITION)
	TNT1 A 0 A_Jump(32,"TeleportSelf")
	TNT1 A 0 A_Jump(255,"SummonMinionsGiver","SummonTraps")
  TeleportSelf:
    TNT1 A 0 A_GiveToTarget("TSITeleportCircleSpawner")
	TNT1 A 0 ACS_NamedExecuteAlways("TSITeleportSelf",0)
	Goto LongRangeEnd
  SummonTraps:
    TNT1 A 0 A_JumpIf(user_stage >= 3,3)
    TNT1 A 0 A_GiveToTarget("TSITrapSpawnerSerpent")
	TNT1 A 0 A_Jump(255,2)
	TNT1 A 0 A_GiveToTarget("TSITrapSpawnerSerpent2")
	TNT1 A 0
	Goto LongRangeEnd 
  SummonMinionsGiver:
    TNT1 A 0 A_GiveToTarget("TSIMinionSpawnerSerpentGiver")
  LongRangeEnd:
    TNT1 A 0 A_SetUserVar("user_cooldownranged",Random(0,15))
	1TSI GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG 2 Bright A_JumpIfTargetInLOS("LightningEnd")
    TNT1 A 0 A_StopSound(5)
    TNT1 A 0 A_ChangeFlag(NOPAIN,0)
	TNT1 A 0 A_UnSetInvulnerable
	TNT1 A 0 A_JumpIfInventory("MarineKilled",1,"Taunt")
    1TSI GFE 5 Bright
	Goto See+1
  ChangeForm:
    TNT1 A 0 A_JumpIf(user_mode == 1,"ChangeForm2")
	TNT1 A 0 A_ChangeFlag(NOPAIN,1)
	1TSI EFG 5 Bright
	TNT1 A 0 A_SpawnItemEx("TSIHellExp",0,0,40,0,0,0,0,SXF_NOCHECKPOSITION)
	TNT1 AAAAAAAAAAAAAAAA 0 A_SpawnItemEx("TSIHellExpParticle",random(-12,12),random(-12,12),random(0,60),random(-2,2),random(-2,2),random(-2,2),Random(0,360))
	TNT1 A 0 A_PlaySound("nemesisremilia/pyro",CHAN_BODY)
	TNT1 A 0 ACS_NamedExecuteAlways("TSIActiveTimer",0)
	TNT1 A 0 A_SetUserVar("user_meleetoken",0)
	2TSI G 15 Bright A_SetUserVar("user_mode",1)
	2TSI FE 5 Bright
	TNT1 A 0 A_ChangeFlag(NOPAIN,0)
	Goto SeeLoop2
  ChangeForm2:
    TNT1 A 0 A_ChangeFlag(NOPAIN,1)
	2TSI EFG 5 Bright
	TNT1 A 0 A_SpawnItemEx("TSISPExp",0,0,40,0,0,0,0,SXF_NOCHECKPOSITION)
	TNT1 A 0 A_SpawnItemEx("TSIBlueSpawnEffect",0,0,40,0,0,0,0,SXF_NOCHECKPOSITION)
	TNT1 AAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ArmorParticleBlue",random(-12,12),random(-12,12),random(0,60),random(-2,2),random(-2,2),random(-2,2),Random(0,360))
	TNT1 A 0 A_PlaySound("tsi/endblueportal",CHAN_BODY) //PlaceHolder
	TNT1 A 0 ACS_NamedExecuteAlways("TSIActiveTimer",0)
	TNT1 A 0 A_SetUserVar("user_meleetoken",0)
	1TSI G 15 Bright A_SetUserVar("user_mode",0)
	1TSI FE 5 Bright
	TNT1 A 0 A_ChangeFlag(NOPAIN,0)
	Goto SeeLoop
  Rush:
	1TSI A 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("TSIGhostA",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	1TSI A 0 A_Chase
	1TSI A 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("TSIGhostA",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	1TSI A 0 A_Chase
	1TSI B 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("TSIGhostB",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	1TSI A 0 A_Chase
	1TSI B 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("TSIGhostB",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	TNT1 A 0 A_SpawnItem("HumanishStep",0,0,0,0)
	1TSI A 0 A_Chase
	1TSI C 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("TSIGhostC",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	1TSI A 0 A_Chase
	1TSI C 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("TSIGhostC",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	1TSI A 0 A_Chase
	1TSI D 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("TSIGhostD",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	1TSI A 0 A_Chase
	1TSI D 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("TSIGhostD",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	TNT1 A 0 A_SpawnItem("HumanishStep",0,0,0,0)
	1TSI A 0 A_Chase
	1TSI A 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("TSIGhostA",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	1TSI A 0 A_Chase
	1TSI A 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("TSIGhostA",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	1TSI A 0 A_Chase
	1TSI B 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("TSIGhostB",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	1TSI A 0 A_Chase
	1TSI B 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("TSIGhostB",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	TNT1 A 0 A_SpawnItem("HumanishStep",0,0,0,0)
	1TSI A 0 A_Chase
	1TSI C 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("TSIGhostC",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	1TSI A 0 A_Chase
	1TSI C 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("TSIGhostC",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	1TSI A 0 A_Chase
	1TSI D 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("TSIGhostD",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	1TSI A 0 A_Chase
	1TSI D 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("TSIGhostD",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	TNT1 A 0 A_SpawnItem("HumanishStep",0,0,0,0)
	TNT1 A 0 A_SetUserVar(user_cooldownranged,user_cooldownranged+1)
	1TSI A 0 A_Chase
	TNT1 A 0 A_Jump(48,"SeeLoop")
	TNT1 A 0 A_Jump(25,"Teleport")
	Loop
  Rush2:
	2TSI A 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("2TSIGhostA",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	2TSI A 0 A_Chase
	2TSI A 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("2TSIGhostA",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	2TSI A 0 A_Chase
	2TSI B 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("2TSIGhostB",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	2TSI A 0 A_Chase
	2TSI B 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("2TSIGhostB",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	TNT1 A 0 A_SpawnItem("HumanishStep",0,0,0,0)
	2TSI A 0 A_Chase
	2TSI C 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("2TSIGhostC",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	2TSI A 0 A_Chase
	2TSI C 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("2TSIGhostC",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	2TSI A 0 A_Chase
	2TSI D 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("2TSIGhostD",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	2TSI A 0 A_Chase
	2TSI D 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("2TSIGhostD",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	TNT1 A 0 A_SpawnItem("HumanishStep",0,0,0,0)
	2TSI A 0 A_Chase
	2TSI A 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("2TSIGhostA",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	2TSI A 0 A_Chase
	2TSI A 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("2TSIGhostA",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	2TSI A 0 A_Chase
	2TSI B 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("2TSIGhostB",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	2TSI A 0 A_Chase
	2TSI B 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("2TSIGhostB",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	TNT1 A 0 A_SpawnItem("HumanishStep",0,0,0,0)
	2TSI A 0 A_Chase
	2TSI C 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("2TSIGhostC",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	2TSI A 0 A_Chase
	2TSI C 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("2TSIGhostC",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	2TSI A 0 A_Chase
	2TSI D 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("2TSIGhostD",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	2TSI A 0 A_Chase
	2TSI D 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("2TSIGhostD",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	TNT1 A 0 A_SpawnItem("HumanishStep",0,0,0,0)
	TNT1 A 0 A_SetUserVar(user_cooldownranged,user_cooldownranged+1)
	2TSI A 0 A_Chase
	TNT1 A 0 A_Jump(48,"SeeLoop2")
	TNT1 A 0 A_Jump(25,"Teleport")
	Loop
  Evade:
    TNT1 A 0 A_CheckSight("Rush")
	TNT1 A 0 A_Jump(128,4)
	TNT1 A 0 ThrustThing(Angle*256/360+64,16,0,0)
	1TSI AAAA 3 Bright A_Chase
	TNT1 A 0 A_Stop
	Goto See
	TNT1 A 0 ThrustThing(Angle*256/360+192,16,0,0)
	1TSI AAAA 3 Bright A_Chase
	TNT1 A 0 A_Stop
	Goto SeeLoop
  Evade2:
    TNT1 A 0 A_CheckSight("Rush2")
	TNT1 A 0 A_Jump(128,4)
	TNT1 A 0 ThrustThing(Angle*256/360+64,16,0,0)
	2TSI AAAA 3 Bright A_Chase
	TNT1 A 0 A_Stop
	Goto See
	TNT1 A 0 ThrustThing(Angle*256/360+192,16,0,0)
	2TSI AAAA 3 Bright A_Chase
	TNT1 A 0 A_Stop
	Goto SeeLoop2
  Melee:
    TNT1 A 0
	Goto Missile
  SummonMinions:
    TNT1 A 0 A_SetInvulnerable
    TNT1 A 0 A_ChangeFlag(NOPAIN,1)
	TNT1 A 0 A_TakeInventory("TSIMinionSpawnerInv",999)
	TNT1 A 0 A_GiveInventory("TSIMinionSpawnerInv",user_stage)
    1TSI EFG 5 Bright A_FaceTarget
	TNT1 A 0 ACS_NamedExecuteAlways("NRAttackCooldown",0,user_cooldowntimer)
    TNT1 A 0 A_SpawnItemEx("TSIBlueAttackCircle",0,0,50,0,0,0,0,SXF_NOCHECKPOSITION|SXF_SETMASTER)
	TNT1 AAAAAAA 0 A_SpawnItemEx("MasterLightningSpawnerMediumTemp",0,0,0,0,0,0,0,SXF_SETMASTER)
	TNT1 A 0 A_SpawnItemEx("TSIBlueSpawnEffect",0,0,40,0,0,0,0,SXF_NOCHECKPOSITION)
	TNT1 A 0 A_SpawnItemEx("TSIMinionSpawnerSerpent",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_SETMASTER)
	1TSI GGGGGGGGGGGGGGGGGGGGGGGGGGGG 2 Bright A_SpawnItem("NMBlueRageFlameSpawner",0,0,0,0)
	Goto LightningEnd
  SummonMinions2:
    TNT1 A 0 A_SetInvulnerable
    TNT1 A 0 A_ChangeFlag(NOPAIN,1)
	TNT1 A 0 A_TakeInventory("TSIMinionSpawnerInv",999)
	TNT1 A 0 A_GiveInventory("TSIMinionSpawnerInv",user_stage)
    2TSI EFG 5 Bright A_FaceTarget
	TNT1 A 0 ACS_NamedExecuteAlways("NRAttackCooldown",0,user_cooldowntimer)
    TNT1 A 0 A_SpawnItemEx("TSIHellAttackCircle",0,0,50,0,0,0,0,SXF_NOCHECKPOSITION|SXF_SETMASTER)
	TNT1 A 0 A_SpawnItemEx("TSIMinionSpawnerHell",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_SETMASTER)
	2TSI GGGGGGGGGGGGGGGGGGGGGGGGGGGG 2 Bright A_SpawnItem("NMRageFlameSpawner",0,0,0,0)
	Goto FireEnd
  Missile:
    //TNT1 A 0 A_SetUserVar("user_stage",3) //Remove
	//TNT1 A 0 A_SetUserVar("user_mode",1) //Remove
	TNT1 A 0 A_SetShootable
	TNT1 A 0 A_UnsetInvulnerable
	TNT1 A 0 A_SetTranslucent(1)
	TNT1 A 0 A_SetUserVar("user_missile",0)
	TNT1 A 0 A_JumpIf(user_mode == 1,"Missile2")
	TNT1 A 0 A_JumpIf(user_meleetoken == 1,2)
	TNT1 A 0 A_JumpIfCloser(300,"SonicBlast")
	TNT1 A 0 A_JumpIf(user_stage == 2,"MissileT2")
	TNT1 A 0 A_JumpIf(user_stage >= 3,"MissileT3")
    TNT1 A 0 A_JumpIf(user_cooldown == 1,2)
    TNT1 A 0 A_Jump(36,"EnergyBall","SummonMinions")
    TNT1 A 0 A_Jump(100,"Lightning","LaserBeam","IonCannon")
	Goto NormalAttack
  Missile2:
    TNT1 A 0 A_JumpIf(user_meleetoken == 1,2)
    TNT1 A 0 A_JumpIfCloser(300,"FlameThrower")
    TNT1 A 0 A_JumpIf(user_stage >= 2,"Missile2T2")
    TNT1 A 0 A_JumpIf(user_cooldown == 1,2)
    TNT1 A 0 A_Jump(64,"VileAttack","FireTrapGiver","SummonMinions2")
    TNT1 A 0 A_Jump(100,"HotWizer","Penetrators","PyroShot")
	Goto NormalAttack2
  Missile2T2:
    TNT1 A 0 A_JumpIf(user_cooldown == 1,2)
    TNT1 A 0 A_Jump(64,"VileAttack","FireTrapGiver","SummonMinions2")
    TNT1 A 0 A_Jump(100,"HotWizer","Penetrators","PyroShot","Stinger")
  NormalAttack2:
    2TSI EFG 5 Bright A_FaceTarget
	TNT1 A 0 A_Jump(128,"ShitOnTheFloor")
    TNT1 A 0 A_SetUserVar("user_missile",0)
  FireRandom:
    TNT1 A 0 A_JumpIf(user_missile >= 80,"FireEnd")
	TNT1 A 0 A_SetUserVar(user_missile,user_missile+1)
	TNT1 A 0 A_MonsterRefire(150,"FireEnd")
	2TSI G 1 Bright A_FaceTarget
    TNT1 A 0 A_Jump(255,1,2,3,4,5)
	2TSI G 1 Bright A_CustomMissile("LavaBall",60,20,random(-8,8),CMF_OFFSETPITCH,frandom(-4,4))
	Goto FireRandom
	2TSI G 1 Bright A_CustomMissile("HFCyberFireBalls",60,20,random(-8,8),CMF_OFFSETPITCH,frandom(-4,4))
	Goto FireRandom
	2TSI G 1 Bright A_CustomMissile("IComet",60,20,random(-8,8),CMF_OFFSETPITCH,frandom(-4,4))
	Goto FireRandom
	2TSI G 1 Bright A_CustomMissile("CyberSeekingComet",60,20,random(-8,8),CMF_OFFSETPITCH,frandom(-4,4))
	Goto FireRandom
	2TSI G 1 Bright A_CustomMissile("HFCyberMiniFireBall",60,20,random(-8,8),CMF_OFFSETPITCH,frandom(-4,4))
	Goto FireRandom
  FireTrapGiver:
    TNT1 A 0 A_SpawnItemEx("TSIHellAttackCircle",0,0,50,0,0,0,0,SXF_NOCHECKPOSITION|SXF_SETMASTER)
	TNT1 A 0 A_PlaySound("tsi/stingercharge25",6,1.0,FALSE,ATTN_NONE)
	TNT1 A 0 A_PlaySound("tsi/attack",CHAN_VOICE,1.0,FALSE,ATTN_NONE)
	TNT1 A 0 A_ChangeFlag(NOPAIN,1)
	TNT1 A 0 ACS_NamedExecuteAlways("NRAttackCooldown",0,user_cooldowntimer)
	2TSI EEEE 1 Bright A_GiveInventory("TSIFireStrafing",1)
	2TSI FFFF 1 Bright A_GiveInventory("TSIFireStrafing",1)
	2TSI GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG 1 Bright A_GiveInventory("TSIFireStrafing",1)
	2TSI GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG 1 Bright A_GiveInventory("TSIFireStrafing",1)
  FireTrapGiverDetect:
	TNT1 A 0 A_JumpIfTargetInLOS("SummonTraps2")
	TNT1 A 0 A_GiveToTarget("NDefilerMindfuckHeart")
	1TSI GGGGGGGGGGGGGGGG 1 Bright A_GiveInventory("TSIFireStrafing",1)
	TNT1 A 0 A_JumpIf(user_missile >= 4,"FireEnd")
	TNT1 A 0 A_SetUserVar(user_missile,user_missile+1)
	Loop
  FlameThrower:
    2TSI EFG 4 Bright A_FaceTarget
	TNT1 A 0 A_SetUserVar("user_meleetoken",1)
	TNT1 A 0 A_PlaySound("magma/firebreath",CHAN_WEAPON,1.0)
	TNT1 A 0 A_PlaySound("tsi/flamethrower",5,1.0,TRUE)
  FlameThrowerLoop:
    2TSI G 1 Bright A_CustomMissile("TSIFireFlameShot",60,20,random(-8,8),CMF_OFFSETPITCH,frandom(-4,4))
	TNT1 A 0 A_Facetarget
	TNT1 A 0 A_MonsterRefire(220,"FireEnd")
    TNT1 A 0 A_JumpIf(user_missile >= 80,"FireEnd")
	TNT1 A 0 A_SetUserVar(user_missile,user_missile+1)
    Loop
  Stinger:
    TNT1 A 0 A_SpawnItemEx("TSIHellAttackCircle",0,0,50,0,0,0,0,SXF_NOCHECKPOSITION|SXF_SETMASTER)
	TNT1 A 0 A_PlaySound("tsi/stingercharge25",6,1.0,FALSE,ATTN_NONE)
	TNT1 A 0 A_PlaySound("tsi/attack",CHAN_VOICE,1.0,FALSE,ATTN_NONE)
	TNT1 A 0 A_ChangeFlag(NOPAIN,1)
	2TSI EEEEEFFFFFGGGGGGGGGGGGGGGGGGGGGGGG 1 Bright A_GiveInventory("TSIFireStrafing",1)
	2TSI GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG 1 Bright A_GiveInventory("TSIFireStrafing",1)
	TNT1 A 0 A_ChangeFlag(NOPAIN,0)
	TNT1 A 0 A_PlaySound("Weapons/StingrayFire",6,1.0,FALSE,ATTN_NONE) //PlaceHolder tsi/stingerfire
	2TSI G 1 Bright A_CustomMissile("HFStingrayShot",Random(20,70),Random(-15,15),0,0)
	2TSI G 15 Bright A_GiveInventory("TSIFireStrafing",1)
	TNT1 A 0 A_JumpIf(user_stage == 1,"FireEnd")
	TNT1 A 0 A_PlaySound("Weapons/StingrayFire",CHAN_WEAPON,1.0,FALSE,ATTN_NONE) //PlaceHolder
	2TSI G 1 Bright A_CustomMissile("HFStingrayShot",Random(20,70),Random(-15,15),0,0)
	2TSI G 15 Bright A_GiveInventory("TSIFireStrafing",1)
	TNT1 A 0 A_JumpIf(user_stage == 2,"FireEnd")
	TNT1 A 0 A_PlaySound("Weapons/StingrayFire",7,1.0,FALSE,ATTN_NONE) //PlaceHolder
	2TSI G 1 Bright A_CustomMissile("HFStingrayShot",Random(20,70),Random(-15,15),0,0)
	2TSI G 15 Bright A_GiveInventory("TSIFireStrafing",1)
	Goto FireEnd
  VileAttack:
    2TSI EFG 5 Bright A_FaceTarget
	TNT1 A 0 A_ChangeFlag(NOPAIN,1)
	TNT1 A 0 ACS_NamedExecuteAlways("NRAttackCooldown",0,user_cooldowntimer)
	//TNT1 A 0 A_SpawnItemEx("TSIHellAttackCircle",0,0,50,0,0,0,0,SXF_NOCHECKPOSITION|SXF_SETMASTER)
	TNT1 A 0 A_JumpIf(user_stage == 2,"VileExtreme")
	TNT1 A 0 A_JumpIf(user_stage >= 3,"VileUltra")
	TNT1 A 0 A_VileTarget("TSIVileMark")
	Goto VileAttackLoop
  VileExtreme:
    TNT1 A 0 A_VileTarget("TSIVileMarkExtreme")
	Goto VileAttackLoop
  VileUltra:
    TNT1 A 0 A_VileTarget("TSIVileMarkUltra")
  VileAttackLoop:
    TNT1 A 0 A_CheckSight(2)
    TNT1 A 0 A_Facetarget
    2TSI G 1 Bright A_SpawnItem("NMRageFlameSpawner",0,0,0,0)
    TNT1 A 0 A_JumpIf(user_missile >= 120,"FireEnd")
	TNT1 A 0 A_SetUserVar(user_missile,user_missile+1)
	Loop
  PyroShot: //Sound remake from NM
    TNT1 A 0 A_SpawnItemEx("TSIHellAttackCircle",0,0,50,0,0,0,0,SXF_NOCHECKPOSITION|SXF_SETMASTER)
	TNT1 A 0 A_PlaySound("tsi/stingercharge25",6,1.0,FALSE,ATTN_NONE)
	TNT1 A 0 A_PlaySound("tsi/attack",CHAN_VOICE,1.0,FALSE,ATTN_NONE)
	TNT1 A 0 A_ChangeFlag(NOPAIN,1)
	2TSI EEEEEFFFFFGGGGGGGGGGGGGGGGGGGGGGGG 1 Bright A_GiveInventory("TSIFireStrafing",1)
	2TSI GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG 1 Bright A_GiveInventory("TSIFireStrafing",1)
	TNT1 A 0 A_ChangeFlag(NOPAIN,0)
	TNT1 A 0 A_PlaySound("weapons/PCNNF",CHAN_WEAPON,1.0,FALSE,ATTN_NONE)
	2TSI G 1 Bright A_CustomMissile("PyroShot",Random(20,70),Random(-15,15),0,0)
	2TSI G 8 Bright A_GiveInventory("TSIFireStrafing",1)
	TNT1 A 0 A_JumpIf(user_stage == 1,"FireEnd")
	TNT1 A 0 A_PlaySound("weapons/PCNNF",3,1.0,FALSE,ATTN_NONE)
	2TSI G 1 Bright A_CustomMissile("PyroShot",Random(20,70),Random(-15,15),0,0)
	2TSI G 8 Bright A_GiveInventory("TSIFireStrafing",1)
	TNT1 A 0 A_JumpIf(user_stage == 2,"FireEnd")
	TNT1 A 0 A_PlaySound("weapons/PCNNF",7,1.0,FALSE,ATTN_NONE)
	2TSI G 1 Bright A_CustomMissile("PyroShot",Random(20,70),Random(-15,15),0,0)
	2TSI G 8 Bright A_GiveInventory("TSIFireStrafing",1)
	Goto FireEnd
  Penetrators:
    TNT1 A 0 A_ChangeFlag(NOPAIN,1)
    TNT1 A 0 A_SpawnItemEx("TSIHellAttackCircle",0,0,50,0,0,0,0,SXF_NOCHECKPOSITION|SXF_SETMASTER)
	TNT1 A 0 A_PlaySound("tsi/stingercharge1",6,1.0,FALSE,ATTN_NONE)
    2TSI EEEEEFFFFFGGGGGGGGGGGGGGGGGGGGGGGG 1 Bright A_GiveInventory("TSIFireStrafing",1)
	TNT1 A 0 A_ChangeFlag(NOPAIN,0)
	TNT1 A 0 A_JumpIf(user_stage >= 2,"FireFasterPenetrators")
  FirePenetrators:
    TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	TNT1 A 0 A_JumpIf(user_missile >= 10,"FireEnd")
	2TSI G 0 A_PlaySound("Weapons/HFGaussFire")
	2TSI G 1 Bright A_CustomMissile("HFGaussProjectile",Random(20,70),Random(-15,15),0,0)
	2TSI G 5 Bright A_GiveInventory("TSIFireStrafing",1)
	TNT1 A 0 A_MonsterRefire(100,"FireEnd")
	Loop
  FireFasterPenetrators:
    TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	TNT1 A 0 A_JumpIf(user_missile >= 15,"FireEnd")
	2TSI G 0 A_PlaySound("Weapons/HFGaussFire")
	2TSI G 1 Bright A_CustomMissile("HFGaussProjectile",Random(20,70),Random(-15,15),0,0)
	2TSI G 3 Bright A_GiveInventory("TSIFireStrafing",1)
	TNT1 A 0 A_MonsterRefire(100,"FireEnd")
	Loop
  ShitOnTheFloor:
	TNT1 A 0 A_JumpIf(user_stage == 2,"Shit2X")
	TNT1 A 0 A_JumpIf(user_stage >= 3,"Shit4X")
	2TSI G 5 Bright A_CustomMissile("TSIFireHugger")
	Goto FireEnd
  Shit2X:
    TNT1 A 0 A_CustomMissile("TSIFireHugger",0,0,Angle+10,CMF_ABSOLUTEANGLE)
    2TSI G 5 Bright A_CustomMissile("TSIFireHugger",0,0,Angle-10,CMF_ABSOLUTEANGLE)
	Goto FireEnd
  Shit4X:
    TNT1 A 0 A_CustomMissile("TSIFireHugger",0,0,Angle+5,CMF_ABSOLUTEANGLE)
	TNT1 A 0 A_CustomMissile("TSIFireHugger",0,0,Angle+10,CMF_ABSOLUTEANGLE)
	TNT1 A 0 A_CustomMissile("TSIFireHugger",0,0,Angle-5,CMF_ABSOLUTEANGLE)
    2TSI G 5 Bright A_CustomMissile("TSIFireHugger",0,0,Angle-10,CMF_ABSOLUTEANGLE)
	Goto FireEnd
  HotWizer:
    TNT1 A 0 A_SpawnItemEx("TSIHellAttackCircle",0,0,50,0,0,0,0,SXF_NOCHECKPOSITION|SXF_SETMASTER)
	TNT1 A 0 A_PlaySound("tsi/stingercharge25",6,1.0,FALSE,ATTN_NONE)
	TNT1 A 0 A_PlaySound("tsi/attack",CHAN_VOICE,1.0,FALSE,ATTN_NONE)
	TNT1 A 0 A_ChangeFlag(NOPAIN,1)
	2TSI EEEEEFFFFFGGGGGGGGGGGGGGGGGGGGGGGG 1 Bright A_GiveInventory("TSIFireStrafing",1)
	2TSI GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG 1 Bright A_GiveInventory("TSIFireStrafing",1)
	TNT1 A 0 A_ChangeFlag(NOPAIN,0)
	TNT1 A 0 A_JumpIf(user_stage == 2,"HotWizerFireHeavy")
	TNT1 A 0 A_JumpIf(user_stage >= 3,"HotWizerFireUltra")
	TNT1 A 0 A_PlayWeaponSound("tsi/hotwizerfire")
	2TSI G 8 Bright A_CustomMissile("HotWizerShot",60,15,0,0)
	2TSI G 8 Bright
	Goto FireEnd
  HotWizerFireHeavy:
    TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	TNT1 A 0 A_JumpIf(user_missile >= 5,"FireEnd")
	TNT1 A 0 A_PlayWeaponSound("tsi/hotwizerfire")
	2TSI G 8 Bright A_CustomMissile("HotWizerShot",60,15,0,0)
	2TSI G 8 Bright A_GiveInventory("TSIFireStrafing",1)
	TNT1 A 0 A_MonsterRefire(100,"FireEnd")
	Loop
  HotWizerFireUltra:
    TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	TNT1 A 0 A_JumpIf(user_missile >= 20,"FireEnd")
	TNT1 A 0 A_PlayWeaponSound("tsi/hotwizerfire")
	2TSI G 3 Bright A_CustomMissile("HotWizerShot",60,15,0,0)
	2TSI G 3 Bright A_GiveInventory("TSIFireStrafing",1)
	TNT1 A 0 A_MonsterRefire(100,"FireEnd")
	Loop
  FireEnd:
    TNT1 A 0 A_StopSound(5)
    TNT1 A 0 A_ChangeFlag(NOPAIN,0)
	TNT1 A 0 A_JumpIfInventory("MarineKilled",1,"Taunt")
    2TSI GFE 5 Bright
	Goto See
  MissileT2:
    TNT1 A 0 A_JumpIf(user_cooldown == 1,2)
    TNT1 A 0 A_Jump(60,"EnergyBall","LightningSpamGiver","SummonMinions")
	TNT1 A 0 A_Jump(100,"Lightning","LaserBeam","PlasmaticBall","IonCannon","FreezerShot")
	Goto NormalAttack
  MissileT3:
    TNT1 A 0 A_JumpIf(user_cooldown == 1,2)
	TNT1 A 0 A_Jump(80,"LightningSpamGiver","EnergyBall","UltimateLaser","UltimateLaser","SummonMinions")
	TNT1 A 0 A_Jump(150,"Lightning","LaserBeam","PlasmaticBall","IonCannon","FreezerShot")
  NormalAttack:
    1TSI EFG 4 Bright A_FaceTarget
	TNT1 A 0 A_Jump(128,"CasualLaser","LightningBolts","MeteorStorm")
  FireRandom2:
    TNT1 A 0 A_JumpIf(user_missile >= 80,"LightningEnd")
	TNT1 A 0 A_SetUserVar(user_missile,user_missile+1)
	1TSI I 1 Bright A_FaceTarget
    TNT1 A 0 A_Jump(255,1,3,5,7,9)
	1TSI H 1 Bright A_CustomMissile("TSISPHornRodFX",60,20,random(-8,8),CMF_OFFSETPITCH,frandom(-4,4))
	TNT1 A 0 A_MonsterRefire(150,"LightningEnd")
	Goto FireRandom2
	1TSI H 1 Bright A_CustomMissile("LegNecroHellStaffBall",60,20,random(-8,8),CMF_OFFSETPITCH,frandom(-4,4))
	TNT1 A 0 A_MonsterRefire(150,"LightningEnd")
	Goto FireRandom2
	1TSI H 1 Bright A_CustomMissile("LegNecromancerShot2",60,20,random(-8,8),CMF_OFFSETPITCH,frandom(-4,4))
	TNT1 A 0 A_MonsterRefire(150,"LightningEnd")
	Goto FireRandom2
	1TSI H 1 Bright A_CustomMissile("LegNecromancerShot",60,20,random(-8,8),CMF_OFFSETPITCH,frandom(-4,4))
	TNT1 A 0 A_MonsterRefire(150,"LightningEnd")
	Goto FireRandom2
	1TSI H 1 Bright A_CustomMissile("LegSoulBall",60,20,random(-8,8),CMF_OFFSETPITCH,frandom(-4,4))
	TNT1 A 0 A_MonsterRefire(150,"LightningEnd")
	Goto FireRandom2
  SonicBlast:
    TNT1 A 0 A_ChangeFlag(NOPAIN,1)
	1TSI EFG 4 Bright A_FaceTarget
	TNT1 A 0 A_SetUserVar("user_meleetoken",1)
	TNT1 A 0 A_Quake(6,8,0,1024)
	TNT1 A 0 A_Quake(4,16,0,2048)
	TNT1 A 0 A_Quake(2,24,0,4096)
	TNT1 A 0 A_Quake(1,32,0,8192)
	TNT1 A 0 A_Explode(150,600)
	TNT1 A 0 A_PlaySound("tsi/sonicblast",CHAN_WEAPON)
	TNT1 A 0 A_PlaySound("Weapons/Stingray/Wave",6)
	TNT1 A 0 A_GiveToTarget("TSIThrustTarget",1)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,350,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,0,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,10,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,20,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,30,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,40,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,50,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,60,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,70,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,80,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,90,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,100,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,110,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,120,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,130,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,140,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,150,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,160,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,170,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,180,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,190,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,200,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,210,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,220,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,230,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,240,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,250,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,260,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,270,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,280,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,290,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,300,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,310,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,320,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,330,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,340,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,350,0)
	1TSI HI 5 Bright A_CustomMissile("StingrayGlobe",0,0)
	Goto LightningEnd
  FreezerShot:
    TNT1 A 0 A_SpawnItemEx("TSIBlueAttackCircle",0,0,50,0,0,0,0,SXF_NOCHECKPOSITION|SXF_SETMASTER)
	TNT1 AAAAAAA 0 A_SpawnItemEx("MasterLightningSpawnerMediumTemp",0,0,0,0,0,0,0,SXF_SETMASTER)
	TNT1 A 0 A_PlaySound("freezerbfg/startcharge",6,1.0,FALSE,ATTN_NONE)
	TNT1 A 0 A_PlaySound("tsi/attack",CHAN_VOICE,1.0,FALSE,ATTN_NONE)
	TNT1 A 0 A_ChangeFlag(NOPAIN,1)
	TNT1 A 0 ACS_NamedExecuteAlways("NRAttackCooldown",0,user_cooldowntimer)
	1TSI EEEE 1 Bright A_GiveInventory("TSIMagicStrafing",1)
	1TSI FFFF 1 Bright A_GiveInventory("TSIMagicStrafing",1)
	1TSI GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG 1 Bright A_GiveInventory("TSIMagicStrafing",1)
	1TSI GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG 1 Bright A_GiveInventory("TSIMagicStrafing",1)
    TNT1 A 0 A_PlayWeaponSound("freezerbfg/fire")
	TNT1 A 0 A_CustomRailgun(Random(300,600),0,"00 00 ff",None,RGF_SILENT|RGF_NOPIERCING,0,0,None,0,0,0,35,0.5,0.5,"PlayerCryoGuruRailTrail",30)
	1TSI H 3 Bright A_CustomMissile("CryoExplosionEnemy",30,0,0,0)
	1TSI I 3 Bright
	1TSI G 10 Bright A_FaceTarget
	Goto LightningEnd
  UltimateLaser:
    TNT1 A 0 A_SpawnItemEx("TSIBlueAttackCircle",0,0,50,0,0,0,0,SXF_NOCHECKPOSITION|SXF_SETMASTER)
	TNT1 AAAAAAA 0 A_SpawnItemEx("MasterLightningSpawnerMediumTemp",0,0,0,0,0,0,0,SXF_SETMASTER)
	TNT1 A 0 A_PlaySound("tsi/ioncharge25",CHAN_WEAPON,1.0,FALSE,ATTN_NONE)
	TNT1 A 0 A_PlaySound("tsi/attack",CHAN_VOICE,1.0,FALSE,ATTN_NONE)
	TNT1 A 0 A_ChangeFlag(NOPAIN,1)
	TNT1 A 0 ACS_NamedExecuteAlways("NRAttackCooldown",0,user_cooldowntimer)
	1TSI EEEE 1 Bright A_GiveInventory("TSIMagicStrafing",1)
	1TSI FFFF 1 Bright A_GiveInventory("TSIMagicStrafing",1)
	1TSI GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG 1 Bright A_GiveInventory("TSIMagicStrafing",1)
	1TSI GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG 1 Bright A_GiveInventory("TSIMagicStrafing",1)
	1TSI GGGGGGGG 1 Bright A_GiveInventory("TSIMagicStrafing",1)
	TNT1 A 0 A_Jump(128,"UltimateIonCannon")
    TNT1 A 0 A_PlayWeaponSound("tsi/ionfire")
	1TSI H 3 Bright A_CustomMissile("PlanetBeamSuperEnemy",60,15,0,0)
	1TSI I 3 Bright
	1TSI G 10 Bright A_FaceTarget
	Goto LightningEnd
  UltimateIonCannon:
    TNT1 A 0 A_PlayWeaponSound("tsi/ionfire")
	1TSI H 3 Bright A_CustomMissile("IonCannonShotEnemy",60,15,0,0)
	1TSI I 3 Bright
	1TSI G 10 Bright A_FaceTarget
	Goto LightningEnd
  LightningSpamGiver:
    TNT1 A 0 A_SpawnItemEx("TSIBlueAttackCircle",0,0,50,0,0,0,0,SXF_NOCHECKPOSITION|SXF_SETMASTER)
	TNT1 AAAAAAA 0 A_SpawnItemEx("MasterLightningSpawnerMediumTemp",0,0,0,0,0,0,0,SXF_SETMASTER)
	TNT1 A 0 A_PlaySound("tsi/ioncharge25",6,1.0,FALSE,ATTN_NONE)
	TNT1 A 0 A_PlaySound("tsi/attack",CHAN_VOICE,1.0,FALSE,ATTN_NONE)
	TNT1 A 0 A_ChangeFlag(NOPAIN,1)
	TNT1 A 0 ACS_NamedExecuteAlways("NRAttackCooldown",0,user_cooldowntimer)
	1TSI EEEE 1 Bright A_GiveInventory("TSIMagicStrafing",1)
	1TSI FFFF 1 Bright A_GiveInventory("TSIMagicStrafing",1)
	1TSI GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG 1 Bright A_GiveInventory("TSIMagicStrafing",1)
	1TSI GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG 1 Bright A_GiveInventory("TSIMagicStrafing",1)
  LightningSpamDetect:
	TNT1 A 0 A_JumpIfTargetInLOS("GiveLightningSpam")
	TNT1 A 0 A_GiveToTarget("NDefilerMindfuckHeart")
	1TSI GGGGGGGGGGGGGGGG 1 Bright A_GiveInventory("TSIMagicStrafing",1)
	TNT1 A 0 A_JumpIf(user_missile >= 4,"LightningEnd")
	TNT1 A 0 A_SetUserVar(user_missile,user_missile+1)
	Loop
  GiveLightningSpam:
    TNT1 A 0 A_SpawnItemEx("TSIBlueSpawnEffect",0,0,30)
    TNT1 A 0 A_Jump(80,"SummonTraps")
	//TNT1 A 0 A_PlaySound("weapons/PlanetCracker_Charge",6,1.0,FALSE,ATTN_NONE) //Placeholder
	1TSI H 10 Bright A_GiveToTarget("TSILightningActivator")
	1TSI H 10 Bright
	Goto LightningEnd
  LightningBolts:
    TNT1 A 0 A_FaceTarget
	TNT1 AAA 0 A_CustomMissile("LegendaryNecroBolt",41,0,random(-24,24))
	1TSI H 5 Bright A_CustomMissile("LegendaryNecroBolt",41,0,random(-24,24))
	1TSI I 5 Bright
	Goto LightningEnd
  CasualLaser:
    TNT1 A 0 A_Jump(128,"MediocreLaser")
    TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_Jump(128,3)
    1TSI H 1 Bright A_CustomMissile("LegRedLaser",60,20)
	1TSI I 1 Bright
	TNT1 A 0 A_MonsterRefire(150,"LightningEnd")
    TNT1 A 0 A_JumpIf(user_missile >= 80,"LightningEnd")
	TNT1 A 0 A_SetUserVar(user_missile,user_missile+1)
	Loop
  MediocreLaser:
    TNT1 A 0 A_FaceTarget
    1TSI H 1 Bright A_CustomMissile("TSILaserBeam",60,20)
    TNT1 A 0 A_SpidRefire
    TNT1 A 0 A_FaceTarget
    1TSI I 1 Bright A_CustomMissile("TSILaserBeam",60,20)
    TNT1 A 0 A_SpidRefire
    TNT1 A 0 A_JumpIf(user_missile >= 30,"See")
    TNT1 A 0 A_SetUserVar(user_missile,user_missile+Random(1,2))
    Loop
  MeteorStorm:
	TNT1 A 0 A_CustomMissile("BlueRainCometNull",32,0,180)
	TNT1 A 0 A_CustomMissile("BlueRainCometNull",32,0,90)
	TNT1 A 0 A_CustomMissile("BlueRainCometNull",32,0,-90)
	TNT1 A 0 A_CustomMissile("BlueRainCometNull",32,0,45)	
	TNT1 A 0 A_CustomMissile("BlueRainCometNull",32,0,-45)
	TNT1 A 0 A_CustomMissile("BlueRainCometNull",32,0,135)	
	TNT1 A 0 A_CustomMissile("BlueRainCometNull",32,0,-135)
	1TSI H 8 Bright A_CustomMissile("BlueRainCometNull",32,0,0)
	1TSI I 8 Bright
	Goto LightningEnd
  EnergyBall:
    TNT1 A 0 A_ChangeFlag(NOPAIN,1)
	TNT1 A 0 ACS_NamedExecuteAlways("NRAttackCooldown",0,user_cooldowntimer)
    1TSI EFG 4 Bright A_FaceTarget
	TNT1 A 0 A_PlayWeaponSound("weapons/plasmaultimate")
	TNT1 A 0 A_SpawnItemEx("TSIBlueSpawnEffect",0,0,30)
	1TSI H 5 Bright A_CustomMissile("TSIEnergySeekerBall",35,0,0,CMF_AIMDIRECTION)
	1TSI I 5 Bright
	TNT1 A 0 A_JumpIf(user_stage == 1,"LightningEnd")
	TNT1 A 0 A_PlayWeaponSound("weapons/plasmaultimate")
	TNT1 A 0 A_SpawnItemEx("TSIBlueSpawnEffect",0,0,30)
	1TSI H 5 Bright A_CustomMissile("TSIEnergySeekerBall",35,0,0,CMF_AIMDIRECTION)
	1TSI I 5 Bright
	TNT1 A 0 A_JumpIf(user_stage == 2,"LightningEnd")
	TNT1 A 0 A_PlayWeaponSound("weapons/plasmaultimate")
	TNT1 A 0 A_SpawnItemEx("TSIBlueSpawnEffect",0,0,30)
	1TSI H 5 Bright A_CustomMissile("TSIEnergySeekerBall",35,0,0,CMF_AIMDIRECTION)
	1TSI I 5 Bright
	Goto LightningEnd
  IonCannon:
    TNT1 A 0 A_SpawnitemEx("TSIBluePowerCircle",0,0,0,0,0,0,0,SXF_SETMASTER)
	TNT1 AAAAAAA 0 A_SpawnItemEx("MasterLightningSpawnerMediumTemp",0,0,0,0,0,0,0,SXF_SETMASTER)
	TNT1 A 0 A_PlaySound("tsi/ioncharge1",CHAN_WEAPON,1.0,FALSE,ATTN_NONE)
	TNT1 A 0 A_PlaySound("tsi/attack",CHAN_VOICE,1.0,FALSE,ATTN_NONE)
	TNT1 A 0 A_ChangeFlag(NOPAIN,1)
	1TSI EE 2 Bright A_GiveInventory("TSIMagicStrafing",1)
	1TSI FF 2 Bright A_GiveInventory("TSIMagicStrafing",1)
	1TSI GGGGGGGGGGGGGGGG 2 Bright A_GiveInventory("TSIMagicStrafing",1)
  IonCannonFire: //BIDEN BLAST
    TNT1 A 0 A_PlayWeaponSound("tsi/ionfire")
	1TSI H 3 Bright A_CustomMissile("PlanetBeamEnemy",60,15,0,0)
	1TSI I 3 Bright
	TNT1 A 0 A_JumpIf(user_stage == 1,"LightningEnd")
	1TSI G 10 Bright A_FaceTarget
	TNT1 A 0 A_PlayWeaponSound("tsi/ionfire")
	1TSI H 3 Bright A_CustomMissile("PlanetBeamEnemy",60,15,0,0)
	1TSI I 3 Bright
	1TSI G 10 Bright A_FaceTarget
	TNT1 A 0 A_PlayWeaponSound("tsi/ionfire")
	1TSI H 3 Bright A_CustomMissile("PlanetBeamEnemy",60,15,0,0)
	1TSI I 3 Bright
	1TSI G 10 Bright A_FaceTarget
	Goto LightningEnd
  PlasmaticBall:
    1TSI EFG 4 Bright A_FaceTarget
  PlasmaticBallFire:
    TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	TNT1 A 0 A_JumpIf(user_missile >= 10,"LightningEnd")
	//TNT1 A 0 A_PlayWeaponSound("tsi/ionfire")
	1TSI H 3 Bright A_CustomMissile("PlayerTrueLegendaryBFG15KBallEnemy",60,15,0,0)
	1TSI I 3 Bright
	1TSI G 5 Bright A_MonsterRefire(100,"LightningEnd")
	Loop
  LaserBeam:
    1TSI EFG 5 Bright A_FaceTarget
  LaserBeamFire:
    TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	TNT1 A 0 A_JumpIf(user_missile >= 20,"LightningEnd")
	TNT1 A 0 A_PlayWeaponSound("tsi/gaussfire")
	1TSI H 3 Bright A_CustomMissile("EnemyLegendaryRailgunPROJ2",60,15,0,0)
	1TSI I 3 Bright
	TNT1 A 0 A_MonsterRefire(100,"LightningEnd")
	Loop
  Lightning:
    1TSI EFG 5 Bright A_FaceTarget
	TNT1 A 0 A_ChangeFlag(NOPAIN,1)
	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",5,1.0,TRUE)
	TNT1 A 0 A_JumpIf(user_stage == 1,"LightningSmallLoop")
	TNT1 A 0 Radius_Quake(6,140,0,24,0)
  LightningBigLoop:
    TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	TNT1 A 0 A_JumpIf(user_missile >= 70,"LightningEnd")
    TNT1 A 0 A_CustomMissile("LightningFire",60,20,0,0)
    1TSI H 1 Bright A_CustomRailgun(Random(30,60),20,None,None,RGF_SILENT|RGF_NOPIERCING|RGF_CENTERZ,0,0,"StrikeLightningPuff",5,5,0,0,0.5,1,"StrikeLightningBall",30)
	1TSI I 1 Bright A_Facetarget
	Loop
  LightningSmallLoop:
    TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	TNT1 A 0 A_JumpIf(user_missile >= 70,"LightningEnd")
    TNT1 A 0 A_CustomMissile("LightningFire",60,20,0,0)
    1TSI H 1 Bright A_CustomRailgun(Random(20,40),14,None,None,RGF_SILENT|RGF_NOPIERCING|RGF_CENTERZ,0,0,"StrikeLightningPuff",5,5,0,0,0.5,1,"StrikeLightningBallSmall",35)
	1TSI I 1 Bright A_Facetarget
	Loop
  LightningEnd:
    TNT1 A 0 A_StopSound(5)
    TNT1 A 0 A_ChangeFlag(NOPAIN,0)
	TNT1 A 0 A_UnSetInvulnerable
	TNT1 A 0 A_JumpIfInventory("MarineKilled",1,"Taunt")
    1TSI GFE 5 Bright
	Goto See
  Teleport2:
	2TSI EFG 4 Bright
	TNT1 A 0 A_ChangeFlag(NOPAIN,1)
	TNT1 A 0 A_SpawnItemEx("TSIHellExp",0,0,40,0,0,0,0,SXF_NOCHECKPOSITION)
	TNT1 AAAAAAAAAAAAAAAA 0 A_SpawnItemEx("TSIHellExpParticle",random(-12,12),random(-12,12),random(0,60),random(-2,2),random(-2,2),random(-2,2),Random(0,360))
	TNT1 A 0 A_PlaySound("nemesisremilia/pyro",CHAN_BODY)
	TNT1 A 0 A_SetUserVar("user_cloaked",1)
	TNT1 A 0 ACS_NamedExecuteAlways("FadeCubes",0)
	2TSI GGGGGGGGGGGGGGG 1 Bright A_FadeOut(0.8,0)
	TNT1 A 0 A_SetTranslucent(0)
	TNT1 A 0 A_UnSetShootable
    TNT1 A 0 A_SetUserVar("user_tic",Random(100,250))
  Teleport2Loop:
    TNT1 A 0 A_JumpIf(user_tic >= 300,"Teleport2End")
	TNT1 A 0 A_SetUserVar("user_tic",user_tic+1)
	TNT1 A 1 A_Chase("Teleport2End","",CHF_NOPLAYACTIVE)
	Loop
  Teleport2End:
	TNT1 A 0 A_SpawnItemEx("TSIHellExp2",0,0,40,0,0,0,0,SXF_NOCHECKPOSITION)
	TNT1 AAAAAAAAAAAAAAAA 0 A_SpawnItemEx("TSIHellExpParticle",random(-12,12),random(-12,12),random(0,60),random(-2,2),random(-2,2),random(-2,2),Random(0,360))
	TNT1 A 0 A_PlaySound("nemesisremilia/pyro",CHAN_BODY)
	TNT1 A 0 A_SetUserVar("user_cloaked",0)
	TNT1 A 0 A_SpawnItemEx("TSIOrbitCube1",0,0,0,0,0,0,0,SXF_SETMASTER,0,user_mastertid)
	TNT1 A 0 A_SpawnItemEx("TSIOrbitCube2",0,0,0,0,0,0,120,SXF_SETMASTER,0,user_mastertid)
	TNT1 A 0 A_SpawnItemEx("TSIOrbitCube3",0,0,0,0,0,0,240,SXF_SETMASTER,0,user_mastertid)
    2TSI GGGGFFFFEEEE 1 Bright A_FadeIn(0.8)
	TNT1 A 0 A_SetTranslucent(1)
	TNT1 A 0 A_SetShootable
	TNT1 A 0 A_ChangeFlag(NOPAIN,1)
	Goto SeeLoop2
  SPTeleportFast:
	TNT1 A 0 A_PlaySound("tsi/teleport1",6)
	TNT1 A 0 A_SetUserVar("user_cloaked",1)
	TNT1 A 0 ACS_NamedExecuteAlways("FadeCubes",0)
	1TSE DEFGHIJK 2 Bright
	TNT1 A 0 ACS_NamedExecuteAlways("TerrorSpeed2",0,4,1)
	TNT1 A 0 A_SpawnItemEx("TSIFLare",0,0,33)
	TNT1 A 0 A_ChangeFlag(FLOAT,1)
	TNT1 A 0 A_ChangeFlag(FLOATBOB,1)
	TNT1 A 0 A_ChangeFlag(NOGRAVITY,1)
	TNT1 A 0 A_ChangeFlag(NOBLOCKMONST,1)
	TNT1 A 0 A_ChangeFlag(FLOORCLIP,0)
	TNT1 A 0 A_SetTranslucent(1,1)
	TNT1 A 0 A_SetScale(0.12,0.12)
	TNT1 A 0 A_SetUserVar("user_tic",400)
	TNT1 A 0 A_PlaySound("tsi/orbloop",5,1.0,TRUE)
	Goto OrbFly
  SPTeleportSuper:
	TNT1 A 0 A_PlaySound("tsi/teleport1",6)
	1TSE DEFGHIJK 2 Bright
	TNT1 A 0 A_SpawnItemEx("TSIFLare",0,0,33)
	TNT1 A 0 A_ChangeFlag(FLOAT,1)
	TNT1 A 0 A_ChangeFlag(NOGRAVITY,1)
	TNT1 A 0 A_ChangeFlag(NOBLOCKMONST,1)
	TNT1 A 0 A_ChangeFlag(FLOORCLIP,0)
	TNT1 A 0 A_SetTranslucent(1,1)
	TNT1 A 0 A_SetScale(0.12,0.12)
	TNT1 A 0 A_SetUserVar("user_tic",0)
	CSA9 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	CSA9 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	Goto OrbEnd
  Teleport:
    TNT1 A 0 A_JumpIf(user_mode == 1,"Teleport2")
    TNT1 A 0 A_ChangeFlag(NOPAIN,1)
	1TSE ABC 2 Bright
	TNT1 A 0 A_FaceTarget
	1TSE C 1 Bright A_UnSetShootable
    TNT1 A 0 A_Jump(30,"SPTeleportSuper")
	TNT1 A 0 A_Jump(92,"SPTeleportFast")
	TNT1 A 0 A_JumpIfTargetInLOS("SPTeleportSuper")
	TNT1 A 0 A_PlaySound("tsi/teleport1",6)
	TNT1 A 0 ACS_NamedExecuteAlways("FadeCubes",0)
	1TSE DEFGHIJK 2 Bright
	TNT1 A 0 A_SpawnItemEx("TSIFLare",0,0,33)
	TNT1 A 0 A_SetUserVar("user_cloaked",1)
	TNT1 A 0 A_ChangeFlag(FLOAT,1)
	TNT1 A 0 A_ChangeFlag(FLOATBOB,1)
	TNT1 A 0 A_ChangeFlag(NOGRAVITY,1)
	TNT1 A 0 A_ChangeFlag(NOBLOCKMONST,1)
	TNT1 A 0 A_ChangeFlag(FLOORCLIP,0)
	TNT1 A 0 A_SetTranslucent(1,1)
	TNT1 A 0 A_SetScale(0.12,0.12)
	TNT1 A 0 A_SetUserVar("user_tic",0)
	TNT1 A 0 A_PlaySound("tsi/orbloop",5,1.0,TRUE)
  OrbFly:
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 A 1 Bright A_Chase("OrbEnd2","",CHF_NOPLAYACTIVE)
	TNT1 A 0 A_SetUserVar("user_tic",user_tic+Random(1,5))
	TNT1 A 0 A_JumpIf(user_tic >= 500,"OrbEnd2")
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 B 1 Bright A_Chase("OrbEnd2","",CHF_NOPLAYACTIVE)
	TNT1 A 0 A_SetUserVar("user_tic",user_tic+Random(1,5))
	TNT1 A 0 A_JumpIf(user_tic >= 500,"OrbEnd2")
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 C 1 Bright A_Chase("OrbEnd2","",CHF_NOPLAYACTIVE)
	TNT1 A 0 A_SetUserVar("user_tic",user_tic+Random(1,5))
	TNT1 A 0 A_JumpIf(user_tic >= 500,"OrbEnd2")
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 D 1 Bright A_Chase("OrbEnd2","",CHF_NOPLAYACTIVE)
	TNT1 A 0 A_SetUserVar("user_tic",user_tic+Random(1,5))
	TNT1 A 0 A_JumpIf(user_tic >= 500,"OrbEnd2")
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 E 1 Bright A_Chase("OrbEnd2","",CHF_NOPLAYACTIVE)
	TNT1 A 0 A_SetUserVar("user_tic",user_tic+Random(1,5))
	TNT1 A 0 A_JumpIf(user_tic >= 500,"OrbEnd2")
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 F 1 Bright A_Chase("OrbEnd2","",CHF_NOPLAYACTIVE)
	TNT1 A 0 A_SetUserVar("user_tic",user_tic+Random(1,5))
	TNT1 A 0 A_JumpIf(user_tic >= 500,"OrbEnd2")
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 G 1 Bright A_Chase("OrbEnd2","",CHF_NOPLAYACTIVE)
	TNT1 A 0 A_SetUserVar("user_tic",user_tic+Random(1,5))
	TNT1 A 0 A_JumpIf(user_tic >= 500,"OrbEnd2")
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 H 1 Bright A_Chase("OrbEnd2","",CHF_NOPLAYACTIVE)
	TNT1 A 0 A_JumpIfCloser(500,"OrbEnd2")
	TNT1 A 0 A_SetUserVar("user_tic",user_tic+Random(1,5))
	TNT1 A 0 A_JumpIf(user_tic >= 500,"OrbEnd2")
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 I 1 Bright A_Chase("OrbEnd2","",CHF_NOPLAYACTIVE)
	TNT1 A 0 A_SetUserVar("user_tic",user_tic+Random(1,5))
	TNT1 A 0 A_JumpIf(user_tic >= 500,"OrbEnd2")
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 J 1 Bright A_Chase("OrbEnd2","",CHF_NOPLAYACTIVE)
	TNT1 A 0 A_SetUserVar("user_tic",user_tic+Random(1,5))
	TNT1 A 0 A_JumpIf(user_tic >= 500,"OrbEnd2")
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 K 1 Bright A_Chase("OrbEnd2","",CHF_NOPLAYACTIVE)
	TNT1 A 0 A_SetUserVar("user_tic",user_tic+Random(1,5))
	TNT1 A 0 A_JumpIf(user_tic >= 500,"OrbEnd2")
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 L 1 Bright A_Chase("OrbEnd2","",CHF_NOPLAYACTIVE)
	TNT1 A 0 A_SetUserVar("user_tic",user_tic+Random(1,5))
	TNT1 A 0 A_JumpIf(user_tic >= 500,"OrbEnd2")
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 M 1 Bright A_Chase("OrbEnd2","",CHF_NOPLAYACTIVE)
	TNT1 A 0 A_SetUserVar("user_tic",user_tic+Random(1,5))
	TNT1 A 0 A_JumpIf(user_tic >= 500,"OrbEnd2")
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 N 1 Bright A_Chase("OrbEnd2","",CHF_NOPLAYACTIVE)
	TNT1 A 0 A_SetUserVar("user_tic",user_tic+Random(1,5))
	TNT1 A 0 A_JumpIf(user_tic >= 500,"OrbEnd2")
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 O 1 Bright A_Chase("OrbEnd2","",CHF_NOPLAYACTIVE)
	TNT1 A 0 A_SetUserVar("user_tic",user_tic+Random(1,5))
	TNT1 A 0 A_JumpIf(user_tic >= 500,"OrbEnd2")
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 P 1 Bright A_Chase("OrbEnd2","",CHF_NOPLAYACTIVE)
	TNT1 A 0 A_SetUserVar("user_tic",user_tic+Random(1,5))
	TNT1 A 0 A_JumpIf(user_tic >= 500,"OrbEnd2")
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 Q 1 Bright A_Chase("OrbEnd2","",CHF_NOPLAYACTIVE)
	TNT1 A 0 A_JumpIfCloser(500,"OrbEnd2")
	TNT1 A 0 A_SetUserVar("user_tic",user_tic+Random(1,5))
	TNT1 A 0 A_JumpIf(user_tic >= 500,"OrbEnd2")
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 R 1 Bright A_Chase("OrbEnd2","",CHF_NOPLAYACTIVE)
	TNT1 A 0 A_SetUserVar("user_tic",user_tic+Random(1,5))
	TNT1 A 0 A_JumpIf(user_tic >= 500,"OrbEnd2")
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 S 1 Bright A_Chase("OrbEnd2","",CHF_NOPLAYACTIVE)
	TNT1 A 0 A_SetUserVar("user_tic",user_tic+Random(1,5))
	TNT1 A 0 A_JumpIf(user_tic >= 500,"OrbEnd2")
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 T 1 Bright A_Chase("OrbEnd2","",CHF_NOPLAYACTIVE)
	TNT1 A 0 A_SetUserVar("user_tic",user_tic+Random(1,5))
	TNT1 A 0 A_JumpIf(user_tic >= 500,"OrbEnd2")
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 U 1 Bright A_Chase("OrbEnd2","",CHF_NOPLAYACTIVE)
	TNT1 A 0 A_SetUserVar("user_tic",user_tic+Random(1,5))
	TNT1 A 0 A_JumpIf(user_tic >= 500,"OrbEnd2")
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 V 1 Bright A_Chase("OrbEnd2","",CHF_NOPLAYACTIVE)
	TNT1 A 0 A_SetUserVar("user_tic",user_tic+Random(1,5))
	TNT1 A 0 A_JumpIf(user_tic >= 500,"OrbEnd2")
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 W 1 Bright A_Chase("OrbEnd2","",CHF_NOPLAYACTIVE)
	TNT1 A 0 A_SetUserVar("user_tic",user_tic+Random(1,5))
	TNT1 A 0 A_JumpIf(user_tic >= 500,"OrbEnd2")
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 "X" 1 Bright A_Chase("OrbEnd2","",CHF_NOPLAYACTIVE)
	TNT1 A 0 A_JumpIfCloser(500,"OrbEnd2")
	TNT1 A 0 A_SetUserVar("user_tic",user_tic+Random(1,5))
	TNT1 A 0 A_JumpIf(user_tic >= 500,"OrbEnd2")
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 "Y" 1 Bright A_Chase("OrbEnd2","",CHF_NOPLAYACTIVE)
	TNT1 A 0 A_SetUserVar("user_tic",user_tic+Random(1,5))
	TNT1 A 0 A_JumpIf(user_tic >= 500,"OrbEnd2")
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 "Z" 1 Bright A_Chase("OrbEnd2","",CHF_NOPLAYACTIVE)
	TNT1 A 0 A_SetUserVar("user_tic",user_tic+Random(1,5))
	TNT1 A 0 A_JumpIf(user_tic >= 500,"OrbEnd2")
	TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA0 A 1 Bright A_Chase("OrbEnd2","",CHF_NOPLAYACTIVE)
	TNT1 A 0 A_SetUserVar("user_tic",user_tic+Random(1,5))
	TNT1 A 0 A_JumpIf(user_tic >= 500,"OrbEnd2")
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA0 B 1 Bright A_Chase("OrbEnd2","",CHF_NOPLAYACTIVE)
	TNT1 A 0 A_SetUserVar("user_tic",user_tic+Random(1,5))
	TNT1 A 0 A_JumpIf(user_tic >= 500,"OrbEnd2")
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA0 C 1 Bright A_Chase("OrbEnd2","",CHF_NOPLAYACTIVE)
	TNT1 A 0 A_SetUserVar("user_tic",user_tic+Random(1,5))
	TNT1 A 0 A_JumpIf(user_tic >= 500,"OrbEnd2")
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA0 D 1 Bright A_Chase("OrbEnd2","",CHF_NOPLAYACTIVE)
	TNT1 A 0 A_SetUserVar("user_tic",user_tic+Random(1,5))
	TNT1 A 0 A_JumpIf(user_tic >= 500,"OrbEnd2")
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA0 E 1 Bright A_Chase("OrbEnd2","",CHF_NOPLAYACTIVE)
	TNT1 A 0 A_SetUserVar("user_tic",user_tic+Random(1,5))
	TNT1 A 0 A_JumpIf(user_tic >= 500,"OrbEnd2")
	Loop
  OrbEnd2:
	TNT1 A 0 A_SpawnItemEx("TSIOrbitCube1",0,0,0,0,0,0,0,SXF_SETMASTER,0,user_mastertid)
	TNT1 A 0 A_SpawnItemEx("TSIOrbitCube2",0,0,0,0,0,0,120,SXF_SETMASTER,0,user_mastertid)
	TNT1 A 0 A_SpawnItemEx("TSIOrbitCube3",0,0,0,0,0,0,240,SXF_SETMASTER,0,user_mastertid)
  OrbEnd:
	TNT1 A 0 A_SetScale(1,1)
	TNT1 A 0 A_SetTranslucent(1,0)
	TNT1 A 0 A_PlaySound("tsi/teleport2",7)
	1TSE KJIHGFED 2 Bright
	TNT1 A 0 A_SetUserVar("user_cloaked",0)
	TNT1 A 0 A_ChangeFlag(FLOAT,0)
	TNT1 A 0 A_ChangeFlag(FLOATBOB,0)
	TNT1 A 0 A_ChangeFlag(NOGRAVITY,0)
	TNT1 A 0 A_ChangeFlag(NOBLOCKMONST,0)
	TNT1 A 0 A_ChangeFlag(FLOORCLIP,1)
	1TSE C 1 Bright A_SetShootable
	TNT1 A 0 A_StopSound(5)
	1TSE CBA 2 Bright
	TNT1 A 0 A_ChangeFlag(NOPAIN,0)
	Goto SeeLoop
  SummonBoss2:
    TNT1 A 0 A_ChangeFlag(NOPAIN,1)
	2TSI EFG 5 Bright
	TNT1 A 0 A_PlaySound("nemesisremilia/pyro",CHAN_BODY)
	TNT1 A 0 A_SpawnItemEx("TSIHellExp",0,0,40,0,0,0,0,SXF_NOCHECKPOSITION)
	TNT1 AAAAAAAAAAAAAAAA 0 A_SpawnItemEx("TSIHellExpParticle",random(-12,12),random(-12,12),random(0,60),random(-2,2),random(-2,2),random(-2,2),Random(0,360))
    TNT1 A 0 A_SpawnItemEx("ShamanHellBossSummoner",0,0,35,0,0,0,Angle,SXF_SETMASTER|SXF_NOCHECKPOSITION,0,user_mastertid+2)
	TNT1 A 0 ACS_NamedExecuteAlways("TerrorBossActive",0,1)
	TNT1 A 0 A_SetUserVar("user_cloaked",1)
	TNT1 A 0 A_UnSetShootable
	2TSI GGGGGGGGGGGGGGG 1 Bright A_FadeOut(0.8,0)
	TNT1 A 0 A_SetTranslucent(0)
	TNT1 A 0 A_ChangeFlag(THRUACTORS,1)
  SummonBoss2Loop:
    TNT1 A 1 A_Wander
	TNT1 A 0 Healthing(1)
	Loop
  Summon2End:
	TNT1 A 0 A_PlaySound("nemesisremilia/pyro",CHAN_BODY)
	TNT1 A 0 A_SpawnItemEx("TSIHellExp2",0,0,40,0,0,0,0,SXF_NOCHECKPOSITION)
	TNT1 A 0 A_SpawnItemEx("TSIOrbitCube1",0,0,0,0,0,0,0,SXF_SETMASTER,0,user_mastertid)
	TNT1 A 0 A_SpawnItemEx("TSIOrbitCube2",0,0,0,0,0,0,120,SXF_SETMASTER,0,user_mastertid)
	TNT1 A 0 A_SpawnItemEx("TSIOrbitCube3",0,0,0,0,0,0,240,SXF_SETMASTER,0,user_mastertid)
	TNT1 AAAAAAAAAAAAAAAA 0 A_SpawnItemEx("TSIHellExpParticle",random(-12,12),random(-12,12),random(0,60),random(-2,2),random(-2,2),random(-2,2),Random(0,360))
	2TSI GGGGGFFFFFEEEEE 1 Bright A_FadeIn(0.8)
	TNT1 A 0 A_SetTranslucent(1)
	TNT1 A 0 A_SetUserVar("user_cloaked",0)
	TNT1 A 0 A_SetUserVar("user_maxsummon",user_maxsummon+1)
	TNT1 A 0 ACS_NamedExecuteAlways("TerrorBossSummonDelay",0)
	TNT1 A 0 A_UnSetShootable
	TNT1 A 0 A_ChangeFlag(THRUACTORS,0)
	TNT1 A 0 A_ChangeFlag(NOPAIN,0)
	Goto See
  SummonBoss:
    TNT1 A 0 ACS_NamedExecuteAlways("FadeCubes",0)
    TNT1 A 0 A_JumpIf(user_mode == 1,"SummonBoss2")
    TNT1 A 0 A_ChangeFlag(NOPAIN,1)
	1TSE ABC 2 Bright
	1TSE C 1 Bright A_UnSetShootable
	TNT1 A 0 A_PlaySound("tsi/teleport1",6)
	1TSE DEFGHIJK 2 Bright
	TNT1 A 0 ACS_NamedExecuteAlways("TerrorSpeed2",0,4,2)
	TNT1 A 0 ACS_NamedExecuteAlways("TerrorBossActive",0,0)
	TNT1 A 0 A_SpawnItemEx("TSIFLare",0,0,33)
	TNT1 A 0 A_SetUserVar("user_cloaked",1)
	TNT1 A 0 A_ChangeFlag(FLOAT,1)
	TNT1 A 0 A_ChangeFlag(NOGRAVITY,1)
	TNT1 A 0 A_ChangeFlag(NOBLOCKMONST,1)
	TNT1 A 0 A_ChangeFlag(FLOORCLIP,0)
	TNT1 A 0 A_ChangeFlag(SOLID,0)
	TNT1 A 0 A_SetTranslucent(1,1)
	TNT1 A 0 A_SetScale(0.12,0.12)
	TNT1 A 0 A_PlaySound("tsi/orbloop",5,1.0,TRUE)
	TNT1 A 0 A_SpawnItemEx("ShamanSPBossSummoner",0,0,35,0,0,0,Angle,SXF_SETMASTER|SXF_NOCHECKPOSITION,0,user_mastertid+2)
  SummonBossLoop:
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 A 1 Bright A_Wander
	TNT1 A 0 Healthing(1)
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 B 1 Bright A_Wander
	TNT1 A 0 Healthing(1)
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 C 1 Bright A_Wander
	TNT1 A 0 Healthing(1)
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 D 1 Bright A_Wander
	TNT1 A 0 Healthing(1)
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 E 1 Bright A_Wander
	TNT1 A 0 Healthing(1)
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 F 1 Bright A_Wander
	TNT1 A 0 Healthing(1)
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 G 1 Bright A_Wander
	TNT1 A 0 Healthing(1)
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 H 1 Bright A_Wander
	TNT1 A 0 Healthing(1)
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 I 1 Bright A_Wander
	TNT1 A 0 Healthing(1)
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 J 1 Bright A_Wander
	TNT1 A 0 Healthing(1)
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 K 1 Bright A_Wander
	TNT1 A 0 Healthing(1)
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 L 1 Bright A_Wander
	TNT1 A 0 Healthing(1)
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 M 1 Bright A_Wander
	TNT1 A 0 Healthing(1)
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 N 1 Bright A_Wander
	TNT1 A 0 Healthing(1)
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 O 1 Bright A_Wander
	TNT1 A 0 Healthing(1)
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 P 1 Bright A_Wander
	TNT1 A 0 Healthing(1)
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 Q 1 Bright A_Wander
	TNT1 A 0 Healthing(1)
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 R 1 Bright A_Wander
	TNT1 A 0 Healthing(1)
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 S 1 Bright A_Wander
	TNT1 A 0 Healthing(1)
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 T 1 Bright A_Wander
	TNT1 A 0 Healthing(1)
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 U 1 Bright A_Wander
	TNT1 A 0 Healthing(1)
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 V 1 Bright A_Wander
	TNT1 A 0 Healthing(1)
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 W 1 Bright A_Wander
	TNT1 A 0 Healthing(1)
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 "X" 1 Bright A_Wander
	TNT1 A 0 Healthing(1)
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 "Y" 1 Bright A_Wander
	TNT1 A 0 Healthing(1)
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA9 "Z" 1 Bright A_Wander
	TNT1 A 0 Healthing(1)
	TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA0 A 1 Bright A_Wander
	TNT1 A 0 Healthing(1)
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA0 B 1 Bright A_Wander
	TNT1 A 0 Healthing(1)
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA0 C 1 Bright A_Wander
	TNT1 A 0 Healthing(1)
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA0 D 1 Bright A_Wander
	TNT1 A 0 Healthing(1)
    TNT1 A 0 A_SpawnItemEx("ArmorParticleBlue",random(3,-3),random(3,-3),random(35,32),random(1,-1),random(1,-1),random(1,-1),random(0,360))
	CSA0 E 1 Bright A_Wander
	TNT1 A 0 Healthing(1)
	Loop
  SummonEnd:
	TNT1 A 0 A_SetScale(1,1)
	TNT1 A 0 A_SetTranslucent(1,0)
	TNT1 A 0 A_PlaySound("tsi/teleport2",6)
	1TSE KJIHGFED 2 Bright
	TNT1 A 0 A_SetUserVar("user_cloaked",0)
	TNT1 A 0 A_SetUserVar("user_maxsummon",user_maxsummon+1)
	TNT1 A 0 ACS_NamedExecuteAlways("TerrorBossSummonDelay",0)
	TNT1 A 0 A_ChangeFlag(FLOAT,0)
	TNT1 A 0 A_ChangeFlag(SOLID,1)
	TNT1 A 0 A_ChangeFlag(NOGRAVITY,0)
	TNT1 A 0 A_ChangeFlag(NOBLOCKMONST,0)
	TNT1 A 0 A_ChangeFlag(FLOORCLIP,1)
	TNT1 A 0 A_SpawnItemEx("TSIOrbitCube1",0,0,0,0,0,0,0,SXF_SETMASTER,0,user_mastertid)
	TNT1 A 0 A_SpawnItemEx("TSIOrbitCube2",0,0,0,0,0,0,120,SXF_SETMASTER,0,user_mastertid)
	TNT1 A 0 A_SpawnItemEx("TSIOrbitCube3",0,0,0,0,0,0,240,SXF_SETMASTER,0,user_mastertid)
	1TSE C 1 Bright A_SetShootable
	TNT1 A 0 A_StopSound(5)
	1TSE CBA 2 Bright
	TNT1 A 0 A_ChangeFlag(NOPAIN,0)
	Goto See
  Disappear:
	TNT1 A 0 A_ChangeFlag(FLOAT,0)
	TNT1 A 0 A_ChangeFlag(SOLID,1)
	TNT1 A 0 A_ChangeFlag(NOGRAVITY,0)
	TNT1 A 0 A_ChangeFlag(NOBLOCKMONST,0)
	TNT1 A 0 A_ChangeFlag(FLOORCLIP,1)
    TNT1 A 0 A_StopSound(5)
	TNT1 A 0 A_SetScale(1,1)
	TNT1 A 0 A_SetTranslucent(1,0)
	TNT1 A 0 A_PlaySound("tsi/teleport2",6)
    1TSE KJIHGFEDCBA 2 Bright
	TNT1 A 0 A_JumpIf(user_disappear == 2,3)
	TNT1 A 0 A_PlaySound("tsi/vanish1",CHAN_VOICE,1.0,FALSE,ATTN_NONE)
	TNT1 A 0 A_Jump(255,2)
	TNT1 A 0 A_PlaySound("tsi/vanish2",CHAN_VOICE,1.0,FALSE,ATTN_NONE)
	1TSI EFG 4 Bright A_FaceTarget
    //TNT1 A 0 A_PlaySound("medeus/businesselsewhere",CHAN_VOICE)
	1TSI GGGGGGGGGGGGGGGGGGGGGGGGGGGGGG 3 Bright A_FaceTarget
	TNT1 A 0 A_SetUserVar(user_missile,0)
	TNT1 A 0 A_PlaySound("medeus/finalteleport",7)
  DisappearLoop:
    TNT1 A 0 A_SpawnItemEx("ArmorparticleWhite",random(-12,12),random(-12,12),random(0,70),random(-1,1),random(-1,1),random(-1,1),Random(0,360))
	1TSI G 1 Bright A_SpawnItemEx("HQLightningBig",Random(-20,20),Random(-20,20),Random(-30,30),0,0,0,0,0,128)
	TNT1 A 0 A_JumpIf(user_missile >= 175,2)
    TNT1 A 0 A_SetUserVar(user_missile,user_missile+1)
	Loop
    TNT1 A 0 A_Stop
	1TSI G 47 Bright A_SpawnItemEx("MedeusFinalPortalWhite",0,0,40)
	TNT1 A 0 A_SpawnItemEx("TSIFLare",0,0,40)
	TNT1 A 0 A_JumpIf(user_disappear == 2,"Drop2")
	TNT1 A 0 A_SpawnItemEx("NemesisHealthBonusMax",0,0,8,random(1,8),0,2,random(0,360))
	TNT1 A 0 A_SpawnItemEx("NemesisHealthBonusMax",0,0,8,random(1,8),0,2,random(0,360))
	TNT1 A 0 A_SpawnItemEx("NemesisArmorBonus32",0,0,8,random(1,8),0,2,random(0,360))
	TNT1 A 0 A_SpawnItemEx("NemesisArmorBonus32",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),0,128)
	TNT1 A 0 A_SpawnItemEx("Nemesis Rifle",0,0,8,random(1,8),0,2,random(0,360),0,128)
	TNT1 A 0 A_SpawnItemEx("TerrorSphere",0,0,8,random(1,8),0,2,random(0,360),0,200)
	TNT1 A 0 A_SpawnItemEx("NemesisPowerShard",0,0,8,random(1,8),0,2,random(0,360),0,180)
	TNT1 A 0 A_SpawnItemEx("NemesisRuneSpawnerTier1",0,0,8,random(1,8),0,2,random(0,360),0,64)
	TNT1 A 0 A_SpawnItemEx("NemesisRuneSpawnerTier1",0,0,8,random(1,8),0,2,random(0,360),0,64)
	TNT1 A 0 A_SpawnItemEx("NemesisRuneSpawnerTier1",0,0,8,random(1,8),0,2,random(0,360),0,64)
	TNT1 A 0 A_PlaySound("medeus/vanish")
	TNT1 A 1 A_Fall
	Stop
  Drop2:
	TNT1 AA 0 A_SpawnItemEx("NemesisHealthBonusMax",0,0,8,random(1,8),0,2,random(0,360))
	TNT1 AA 0 A_SpawnItemEx("NemesisHealthBonusMax",0,0,8,random(1,8),0,2,random(0,360))
	TNT1 AA 0 A_SpawnItemEx("NemesisArmorBonus32",0,0,8,random(1,8),0,2,random(0,360))
	TNT1 AA 0 A_SpawnItemEx("NemesisArmorBonus32",0,0,8,random(1,8),0,2,random(0,360))
	TNT1 AAAAA 0 A_SpawnItemEx("NemesisDemonicEnergy",0,0,8,random(0,8),random(0,8),2,random(0,360),0,80)
	TNT1 AA 0 A_SpawnItemEx("NemesisGreaterDemonicEnergy",0,0,8,random(0,8),random(0,8),2,random(0,360),0,60)
	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),0,128)
	TNT1 A 0 A_SpawnItemEx("Nemesis Rifle",0,0,8,random(1,8),0,2,random(0,360),0,128)
	TNT1 A 0 A_SpawnItemEx("TerrorSphere",0,0,8,random(1,8),0,2,random(0,360),0,200)
	TNT1 A 0 A_SpawnItemEx("NemesisPowerShard",0,0,8,random(1,8),0,2,random(0,360),0,150)
	TNT1 A 0 A_SpawnItemEx("NemesisSuperSphere",0,0,8,random(1,8),0,2,random(0,360),0,180)
	TNT1 A 0 A_SpawnItemEx("NemesisRuneSpawnerTier2",0,0,8,random(1,8),0,2,random(0,360),0,64)
	TNT1 A 0 A_SpawnItemEx("NemesisRuneSpawnerTier2",0,0,8,random(1,8),0,2,random(0,360),0,64)
	TNT1 A 0 A_SpawnItemEx("NemesisRuneSpawnerTier2",0,0,8,random(1,8),0,2,random(0,360),0,64)
	TNT1 A 0 A_PlaySound("medeus/vanish")
	TNT1 A 1 A_Fall
	Stop
  Pain:
    TNT1 A 0 A_Pain
    TNT1 A 0 A_JumpIf(user_maxsummon >= 8,3)
	TNT1 A 0 A_JumpIf(user_summondelay >= 1,2)
	TNT1 A 0 A_JumpIfHealthLower(3200,"SummonBoss")
	TNT1 A 0 A_Jump(45,"Teleport")
	Goto See
  Death:
  XDeath:
    TNT1 A 0 A_SetTranslucent(1)
	TNT1 A 0 ACS_NamedExecuteAlways("NMDestroyed",0)
	TNT1 A 0 A_KillChildren
	TNT1 A 0 A_SpawnItemEx("TSIStaff",0,4,20,-2,4,5,25) //FRandom(5,8)
    1TSI J 70 Bright A_Scream
	TNT1 A 0 A_SpawnItemEx("CircleSpawnFX2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
	TNT1 A 0 A_SpawnItemEx("TSILightningSpawner",0,0,30,0,0,0,0,SXF_NOCHECKPOSITION)
	TNT1 A 0 A_Quake(5,540,0,5000,"tsi/quake")
	1TSI JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ 3 Bright A_SpawnItemEx("NemesisTormentorSkullShotDeathSmall",Random(-5,5),Random(-5,5),Random(30,40),Random(1,4),Random(1,4),Random(5,10),Random(0,360),0,168) //140
	TNT1 A 0 A_PlaySound("scary/scream",CHAN_ITEM,1.0,FALSE,ATTN_NONE)
	TNT1 A 0 A_PlaySound("tsi/soulspawn1",6,1.0,FALSE,ATTN_NONE)
	TNT1 A 0 A_CheckSight(2)
	TNT1 A 0 A_GiveToTarget("TSIDeathFlash",1)
	TNT1 A 0 A_SpawnitemEx("TSILootOrb1",0,0,35,0,0,5,0,SXF_NOCHECKPOSITION)
	TNT1 A 0 A_SpawnitemEx("LootOrbDeathExplosion2",0,0,35,0)
	1TSI JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ 3 Bright A_SpawnItemEx("NemesisTormentorSkullShotDeathSmall",Random(-5,5),Random(-5,5),Random(30,40),Random(1,4),Random(1,4),Random(5,10),Random(0,360),0,168) //105
	TNT1 A 0 A_PlaySound("scary/scream",CHAN_ITEM,1.0,FALSE,ATTN_NONE)
	TNT1 A 0 A_PlaySound("tsi/soulspawn2",6,1.0,FALSE,ATTN_NONE)
	TNT1 A 0 A_CheckSight(2)
	TNT1 A 0 A_GiveToTarget("TSIDeathFlash",1)
	TNT1 A 0 A_SpawnitemEx("TSILootOrb2",0,0,35,0,0,5,0,SXF_NOCHECKPOSITION)
	TNT1 A 0 A_SpawnitemEx("LootOrbDeathExplosion2",0,0,35,0)
	1TSI JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ 3 Bright A_SpawnItemEx("NemesisTormentorSkullShotDeathSmall",Random(-5,5),Random(-5,5),Random(30,40),Random(1,4),Random(1,4),Random(5,10),Random(0,360),0,168)
	TNT1 A 0 A_PlaySound("scary/scream",CHAN_ITEM,1.0,FALSE,ATTN_NONE)
	TNT1 A 0 A_PlaySound("tsi/soulspawn3",6,1.0,FALSE,ATTN_NONE)
	TNT1 A 0 A_CheckSight(2)
	TNT1 A 0 A_GiveToTarget("TSIDeathFlash",1)
	TNT1 A 0 A_SpawnitemEx("TSILootOrb3",0,0,35,0,0,5,0,SXF_NOCHECKPOSITION)
	TNT1 A 0 A_SpawnitemEx("LootOrbDeathExplosion2",0,0,35,0)
	1TSI JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ 3 Bright A_SpawnItemEx("NemesisTormentorSkullShotDeathSmall",Random(-5,5),Random(-5,5),Random(30,40),Random(1,4),Random(1,4),Random(5,10),Random(0,360),0,168)
	TNT1 A 0 A_PlaySound("scary/scream",CHAN_ITEM,1.0,FALSE,ATTN_NONE)
	TNT1 A 0 A_PlaySound("tsi/soulspawnrandom",6,1.0,FALSE,ATTN_NONE)
	TNT1 A 0 A_CheckSight(2)
	TNT1 A 0 A_GiveToTarget("TSIDeathFlash",1)
	TNT1 A 0 A_SpawnitemEx("TSILootOrb4",0,0,35,0,0,5,0,SXF_NOCHECKPOSITION)
	TNT1 A 0 A_SpawnitemEx("LootOrbDeathExplosion2",0,0,35,0)
	1TSI JJJJJJJJJJJJJJJJJJJJ 3 Bright A_SpawnItemEx("NemesisTormentorSkullShotDeathSmall",Random(-5,5),Random(-5,5),Random(30,40),Random(1,4),Random(1,4),Random(5,10),Random(0,360),0,168)
	1TSI J 60 Bright 
	//TNT1 A 0 A_CheckSight(2)
	//TNT1 A 0 A_Jump(128,"Suicide")
  Staydead: //MedeusFinalPortalWhite
	1TSI K 5
	1TSI L 5 A_Fall
	1TSI M 5
	1TSI N 110 A_SpawnItem("NemesisDeathBall")
	TNT1 A 0 A_SpawnItem("HellionSmokeAttack")
	1TSI NNNNNNNNNNNNNNNNNNNNNNNNNNNNNN 1 A_SpawnItem("NemesisCYNItemRandomizer")
	1TSI NNNNNNNNNNNNNNNNNNNNNNNNNNNNNN 1 A_SpawnItem("NemesisCYNItemRandomizer")
	1TSI N 1 A_SpawnItem("NemesisHKSuperItemRandomizer")
	1TSI N -1
	Stop
  Suicide: //tsi/suicide
	ZAMI KLM 5
	ZAMI M 110 A_SpawnItem("NemesisDeathBall")
	ZAMI E 0 A_PlaySound("zamasuimp/sight",7,1,0,0.5)
	TNT1 A 0 A_PlaySound("zamasu/paaaahhhii",2,1.0,0,ATTN_NONE)
	ZAMI LKJIE 5
	ZAMI E 5 Bright A_FaceTarget
	TNT1 A 0 ThrustThing(angle*256/360, 20, 0, 0)
	TNT1 A 0 ThrustThingZ(0,random(40,60),0,1)
	ZAMI E 35
	ZAMI M 0 A_SpawnItem("ZamasuNuke",0,0,0,0)
	ZAMI NOPQ 3
	ZAMI R 5 A_Fall
	ZAMI ST 3
	ZAMI U 100
	TNT1 A 0 A_SpawnItem("HellionSmokeAttack")
	ZAMI UUUUUUUUUUUUUUUUUUUUUUUUUUUUUU 1 A_SpawnItem("NemesisCYNItemRandomizer")
	ZAMI UUUUUUUUUUUUUUUUUUUUUUUUUUUUUU 1 A_SpawnItem("NemesisCYNItemRandomizer")
	ZAMI U 1 A_SpawnItem("NemesisHKSuperItemRandomizer")
	ZAMI U -1
	Stop
  Raise:
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("VileHealEffect",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
	ZAMI LKJI 5
	Goto See
  Null:
	TNT1 A 0 ACS_NamedExecuteAlways("NMDestroyed",0,1,tid)
	TNT1 A 0 A_KillChildren
	TNT1 A 1
	Stop
    }
}

ACTOR TSIStaff : CHSHammer
{
States
{
  Spawn:
    TNT1 A 0
    1TSE L 1 A_CheckFloor("Bounce1")
    Wait
  Bounce1:
    1TSE M 5
    1TSE M 1 A_CheckFloor("Death")
    Wait
  Death:
    TNT1 A 0 A_ChangeFlag(MBFBOUNCER,0)
	TNT1 A 0 A_ChangeFlag(BOUNCEONFLOORS,0)
    1TSE N -1 
    Stop
	}
}

Actor TSILaserBeam : ELegBanishedLaserBeam
{
Damage 4
DamageType "AdvancedImp"
Species "Imps"
MissileType "TSIBeamTrailSpawner"
Obituary "%o was stared at by a beholder."
Scale 0.7
States
  {
    Spawn:
	  TNT1 A 0
	  TNT1 A 4 A_PlaySound("beholder/laser", CHAN_AUTO|CHAN_NOPAUSE)
	  Loop
    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("TSILaserFlare")
      T3FS ABCDEFGHIJKLMNOP 2 bright A_FadeOut(0.06)
      Stop
  }
}

ACTOR TSIBeamTrailSpawner : TrueLegendaryLaserBeamTrailSpawner
{
  DamageType "AdvancedImp"
  Obituary "%o was stared at by a beholder."
  States
  {
    Spawn:
      TNT1 A 0
	  TNT1 A 0 A_Explode(1,128,0,False,64)
      TNT1 A 2 A_SpawnItemEx("TSILaserBeamTrail", random (-3, 3), 0, random (-3, 3), 0, 0, 0, 0, 160)
      Stop
  }
}

ACTOR TSILaserBeamTrail : TrueLegendaryLaserBeamTrail
{
  Radius 8
  Height 8
  Scale 1
  Alpha 0.75
  Species "Imps"
}

ACTOR TSILaserFlare : TrueLegendaryFlare { Scale 0.2 }

ACTOR NemesisTormentorSkullShotDeathSmall : NemesisTormentorSkullShotDeath
{
  Speed 20
  Damage 10
  Damagetype "BombBreath"
  Scale 0.7
  -SEEKERMISSILE
  States
  {
  Spawn:
	TNT1 A 0 A_Weave(3,3,3.0,3.0)
    NFX1 AA 1 Bright A_SpawnItem("TrueNemesisHellionSmokeSmall")
	TNT1 A 0 A_Weave(3,3,3.0,3.0)
    NFX1 AA 1 Bright A_SpawnItem("TrueNemesisHellionSmokeSmall")
	TNT1 A 0 A_Weave(3,3,3.0,3.0)
    NFX1 AA 1 Bright A_SpawnItem("TrueNemesisHellionSmokeSmall")
	TNT1 A 0 A_Weave(3,3,3.0,3.0)
    NFX1 AA 1 Bright A_SpawnItem("TrueNemesisHellionSmokeSmall")
    Loop
  Death:
	TNT1 A 0 A_Setscale(1.0)
	TNT1 A 0 A_Explode(30,100)
    NESK ABCDEFGHIJKL 2 Bright A_Explode(10,100)
    Stop
  }
}

Actor TrueNemesisHellionSmokeSmall : TrueNemesisHellionSmoke { Scale 0.2 }

ACTOR TSILightningSpawner : BluePowerLineSpawner
{
Reactiontime 15
States
{
Spawn:
	TNT1 A 0 NoDelay A_JumpIf(ACS_ExecuteWithResult(304) == 1, "NULL")
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 Bright A_SpawnItemEx("NemLightningBoltWhite3",Random(6,-6),Random(6,-6),Random(6,-6),0,0,0,0,128)
	TNT1 A 0 A_CountDown
    Loop
    }
}

Actor CircleSpawnFX2 : CircleSpawnFX
{
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_SetUserVar("user_x",0)
		TNT1 A 0 A_SetUserVar("user_y",0)
		TNT1 A 0 A_SetUserVar("user_r",50)
	SpawnLoop:
		TNT1 A 0 A_SetUserVar("user_y",sqrt((user_r*user_r)-(user_x*user_x)))
		TNT1 A 1 A_SpawnItemEx("HemNemesisPentaFire",user_x,user_y,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("HemNemesisPentaFire",user_x,-user_y,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("HemNemesisPentaFire",-user_x,user_y,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("HemNemesisPentaFire",-user_x,-user_y,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SetUserVar("user_x",user_x+1)
		TNT1 A 0 A_JumpIf(user_x > user_r,"Death")
		Loop
	Death:
		TNT1 A 1
		Stop
		
	}
}

ACTOR TSIDeathFlash : CrusaderBuff
{
	States 
	{
		Pickup:
		    TNT1 A 1 A_SetBlend("White",0.9,25)
			stop
	}
}

ACTOR HemNemesisPentaFire : HemLegPentaFire { Translation "0:255=%[0.00,0.00,0.00]:[2.00,2.00,2.00]" }

Actor TSIThrustTarget : CrusaderBuff
{
  States
  {
  Pickup:
	TNT1 A 1
	TNT1 A 0 ThrustThing(angle*256/360+128,38)
	Stop
  }
}

ACTOR TSITeleportCircleSpawner : Crusaderbuff
{
	States 
	{
		Pickup:
		    TNT1 A 1
			TNT1 A 0 A_SpawnItemEx("TSITeleportCircle",0,0,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0,tid+450)
			stop
	}
}

ACTOR TSITeleportCircleSpawner2 : Crusaderbuff
{
	States 
	{
		Pickup:
		    TNT1 A 1
			TNT1 A 0 A_SpawnItemEx("TSITeleportCircleHell",0,0,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0,tid+450)
			stop
	}
}

Actor TSIFireFlameShot : FireFlameShot
{
-THRUSPECIES
-NOBOSSRIP
+DONTHURTSPECIES
+RIPPER
Species "Imps"
States
{
  XDeath:
	TNT1 A 0
	TNT1 A 0 A_PlaySound("Welder/FlameOn",CHAN_BODY,1.0,0)
	TNT1 H 1 Bright A_SpawnItemEx("TSIWelderFlare",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS|SXF_SETMASTER,160)
	Stop
	}
}

Actor TSIWelderFlare : WelderFlare { Species "Imps" }

Actor TSIOrbitCube1 : PatriarchOrbitCube1
{
  Scale 0.7
  Alpha 0
  -CLIENTSIDEONLY
  +NOTELEPORT
  +NOBLOCKMAP
  Tag "\c[c4]Terror Shaman Imp Orbit Cube\c-"
  states
  {
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_FadeIn(0.1)
    CAB4 AA 1 Bright A_Warp(AAPTR_MASTER,21,0,70,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_FadeIn(0.1)
	CAB4 BB 1 Bright A_Warp(AAPTR_MASTER,21,0,70,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_FadeIn(0.1)
	CAB4 CC 1 Bright A_Warp(AAPTR_MASTER,21,0,70,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_FadeIn(0.1)
	CAB4 DD 1 Bright A_Warp(AAPTR_MASTER,21,0,70,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_FadeIn(0.1)
	CAB4 EE 1 Bright A_Warp(AAPTR_MASTER,21,0,70,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_FadeIn(0.1)
	CAB4 FF 1 Bright A_Warp(AAPTR_MASTER,21,0,70,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_FadeIn(0.1)
	CAB4 GG 1 Bright A_Warp(AAPTR_MASTER,21,0,70,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_FadeIn(0.1)
	CAB4 HH 1 Bright A_Warp(AAPTR_MASTER,21,0,70,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_FadeIn(0.1)
	CAB4 II 1 Bright A_Warp(AAPTR_MASTER,21,0,70,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_FadeIn(0.1)
	CAB4 JJ 1 Bright A_Warp(AAPTR_MASTER,21,0,70,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_FadeIn(0.1)
	CAB4 KK 1 Bright A_Warp(AAPTR_MASTER,21,0,70,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_FadeIn(0.1)
	CAB4 LL 1 Bright A_Warp(AAPTR_MASTER,21,0,70,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_FadeIn(0.1)
  Warp:
	CAB4 AABBCCDDEEFFGGHHIIJJKKLL 1 Bright A_Warp(AAPTR_MASTER,21,0,70,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	Loop
  Death.Destroy:
  Death.DestroyCubes:
	TNT1 A 0 A_ChangeFlag(NOINTERACTION,0)
	TNT1 A 0 A_ChangeFlag(BOUNCEONFLOORS,1)
	TNT1 A 0 A_ChangeFlag(MBFBOUNCER,1)
	TNT1 A 0 ThrustThingZ(0,25,0,0)
	TNT1 A 0 ThrustThing(angle*256/120+90,5)
    CAB4 A 1 A_CheckFloor("DeathFade")
	Wait
  DeathFade:
    CAB4 A 70
	CAB4 AAAAAAAAAAAA 1 A_FadeOut(0.1,0)
	Stop
  Death.FadeCubes:
    TNT1 A 0 A_ChangeFlag(NOGRAVITY,1)
    CAB4 AABBCCDDEEFFGGHHIIJJKKLL 1 Bright A_Fadeout(0.05,0)
	Stop
	}
}

Actor TSIOrbitCube2 : TSIOrbitCube1
{
  Tag "\c[c4]Terror Shaman Imp Orbit Cube\c-"
  States
  {	
   Spawn:
    TNT1 A 0
	TNT1 A 0 A_FadeIn(0.1)
    CAB5 AA 1 Bright A_Warp(AAPTR_MASTER,21,0,70,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_FadeIn(0.1)
	CAB5 BB 1 Bright A_Warp(AAPTR_MASTER,21,0,70,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_FadeIn(0.1)
	CAB5 CC 1 Bright A_Warp(AAPTR_MASTER,21,0,70,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_FadeIn(0.1)
	CAB5 DD 1 Bright A_Warp(AAPTR_MASTER,21,0,70,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_FadeIn(0.1)
	CAB5 EE 1 Bright A_Warp(AAPTR_MASTER,21,0,70,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_FadeIn(0.1)
	CAB5 FF 1 Bright A_Warp(AAPTR_MASTER,21,0,70,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_FadeIn(0.1)
	CAB5 GG 1 Bright A_Warp(AAPTR_MASTER,21,0,70,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_FadeIn(0.1)
	CAB5 HH 1 Bright A_Warp(AAPTR_MASTER,21,0,70,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_FadeIn(0.1)
	CAB5 II 1 Bright A_Warp(AAPTR_MASTER,21,0,70,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_FadeIn(0.1)
	CAB5 JJ 1 Bright A_Warp(AAPTR_MASTER,21,0,70,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_FadeIn(0.1)
	CAB5 KK 1 Bright A_Warp(AAPTR_MASTER,21,0,70,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_FadeIn(0.1)
	CAB5 LL 1 Bright A_Warp(AAPTR_MASTER,21,0,70,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_FadeIn(0.1)
  Warp:
	CAB5 AABBCCDDEEFFGGHHIIJJKKLL 1 Bright A_Warp(AAPTR_MASTER,21,0,70,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	Loop
  Death.Destroy:
  Death.DestroyCubes:
	TNT1 A 0 A_ChangeFlag(NOINTERACTION,0)
	TNT1 A 0 A_ChangeFlag(BOUNCEONFLOORS,1)
	TNT1 A 0 A_ChangeFlag(MBFBOUNCER,1)
	TNT1 A 0 ThrustThingZ(0,25,0,0)
	TNT1 A 0 ThrustThing(angle*256/120+240,5)
    CAB5 A 1 A_CheckFloor("DeathFade")
	Wait
  DeathFade:
    CAB5 A 70
	CAB5 AAAAAAAAAAAA 1 A_FadeOut(0.1,0)
	Stop
  Death.FadeCubes:
    TNT1 A 0 A_ChangeFlag(NOGRAVITY,1)
    CAB5 AABBCCDDEEFFGGHHIIJJKKLL 1 Bright A_Fadeout(0.05,0)
	Stop
  }
}

Actor TSIOrbitCube3 : TSIOrbitCube1
{
  Tag "\c[c4]Terror Shaman Imp Orbit Cube\c-"
  States
  {	
   Spawn:
    TNT1 A 0
	TNT1 A 0 A_FadeIn(0.1)
    CAB6 AA 1 Bright A_Warp(AAPTR_MASTER,21,0,70,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_FadeIn(0.1)
	CAB6 BB 1 Bright A_Warp(AAPTR_MASTER,21,0,70,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_FadeIn(0.1)
	CAB6 CC 1 Bright A_Warp(AAPTR_MASTER,21,0,70,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_FadeIn(0.1)
	CAB6 DD 1 Bright A_Warp(AAPTR_MASTER,21,0,70,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_FadeIn(0.1)
	CAB6 EE 1 Bright A_Warp(AAPTR_MASTER,21,0,70,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_FadeIn(0.1)
	CAB6 FF 1 Bright A_Warp(AAPTR_MASTER,21,0,70,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_FadeIn(0.1)
	CAB6 GG 1 Bright A_Warp(AAPTR_MASTER,21,0,70,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_FadeIn(0.1)
	CAB6 HH 1 Bright A_Warp(AAPTR_MASTER,21,0,70,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_FadeIn(0.1)
	CAB6 II 1 Bright A_Warp(AAPTR_MASTER,21,0,70,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_FadeIn(0.1)
	CAB6 JJ 1 Bright A_Warp(AAPTR_MASTER,21,0,70,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_FadeIn(0.1)
	CAB6 KK 1 Bright A_Warp(AAPTR_MASTER,21,0,70,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_FadeIn(0.1)
	CAB6 LL 1 Bright A_Warp(AAPTR_MASTER,21,0,70,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	TNT1 A 0 A_FadeIn(0.1)
  Warp:
	CAB6 AABBCCDDEEFFGGHHIIJJKKLL 1 Bright A_Warp(AAPTR_MASTER,21,0,70,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	Loop
  Death.Destroy:
  Death.DestroyCubes:
	TNT1 A 0 A_ChangeFlag(NOINTERACTION,0)
	TNT1 A 0 A_ChangeFlag(BOUNCEONFLOORS,1)
	TNT1 A 0 A_ChangeFlag(MBFBOUNCER,1)
	TNT1 A 0 ThrustThingZ(0,25,0,0)
	TNT1 A 0 ThrustThing(angle*256/120+240,5)
    CAB6 A 1 A_CheckFloor("DeathFade")
	Wait
  DeathFade:
    CAB6 A 70
	CAB6 AAAAAAAAAAAA 1 A_FadeOut(0.1,0)
	Stop
  Death.FadeCubes:
    TNT1 A 0 A_ChangeFlag(NOGRAVITY,1)
    CAB6 AABBCCDDEEFFGGHHIIJJKKLL 1 Bright A_Fadeout(0.05,0)
	Stop
  }
}

Actor TSIMagicStrafing : TLegZombieStrafing
{
  States
  {
  Pickup:
    NULL A 1 
	NULL A 1 A_SpawnItem("NMBlueRageFlameSpawner",0,0,0,0)
	NULL A 1 A_Jump(188,2)
	NULL A 1 A_GiveInventory("LegZombieJumping",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("LegZombieStrafeSens",1,3)
	NULL A 1 A_GiveInventory("LegZombieStrafeSens",1)
	NULL A 1 A_Jump(256,2)	
	NULL A 1 A_TakeInventory("LegZombieStrafeSens",1)
	NULL A 1 A_JumpIfInventory("LegZombieStrafeSens",1,3)
	NULL A 1 ThrustThing(angle*256/360+38.7,5,0,0)
	NULL A 1 A_Jump(256,2)	
	NULL A 1 ThrustThing(angle*256/360+38.7,-5,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)
    Stop
	NULL A 1 A_Recoil(1)
    Stop	
  }
}

Actor TSIFireStrafing : TLegZombieStrafing
{
  States
  {
  Pickup:
    NULL A 1 
	NULL A 1 A_SpawnItem("NMRageFlameSpawner",0,0,0,0)
	NULL A 1 A_Jump(188,2)
	NULL A 1 A_GiveInventory("LegZombieJumping",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("LegZombieStrafeSens",1,3)
	NULL A 1 A_GiveInventory("LegZombieStrafeSens",1)
	NULL A 1 A_Jump(256,2)	
	NULL A 1 A_TakeInventory("LegZombieStrafeSens",1)
	NULL A 1 A_JumpIfInventory("LegZombieStrafeSens",1,3)
	NULL A 1 ThrustThing(angle*256/360+38.7,5,0,0)
	NULL A 1 A_Jump(256,2)	
	NULL A 1 ThrustThing(angle*256/360+38.7,-5,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)
    Stop
	NULL A 1 A_Recoil(1)
    Stop	
  }
}

Actor TSIVileMark : LegNecromancerVileFire
{
Alpha 0
Height 1
Radius 1
Reactiontime 70
+NOBLOCKMAP
+NOGRAVITY
+SEEKERMISSILE
+NODAMAGETHRUST
+EXTREMEDEATH
States
{
  Spawn:
    NADA A 0 NoDelay A_Quake(5,540,0,36,"worlds/quake")
	NADA A 0 A_PlaySound("tsi/vilemark",5)
	NADA A 0 A_PlaySound("tsi/vilefire",6)
    NADA A 0 A_SetTranslucent(0.1,1)
	NADA A 0 A_SpawnItemEx("HFireSpawner")
	NADA A 1 Bright A_Fire
	NADA A 0 A_SetTranslucent(0.2,1)
	NADA A 0 A_SpawnItemEx("HFireSpawner")
	NADA A 1 Bright A_Fire
	NADA A 0 A_SetTranslucent(0.3,1)
	NADA A 0 A_SpawnItemEx("HFireSpawner")
	NADA A 1 Bright A_Fire
	NADA A 0 A_SetTranslucent(0.4,1)
	NADA A 0 A_SpawnItemEx("HFireSpawner")
	NADA A 1 Bright A_Fire
	NADA A 0 A_SetTranslucent(0.5,1)
	NADA A 0 A_SpawnItemEx("HFireSpawner")
	NADA A 1 Bright A_Fire
	NADA A 0 A_SetTranslucent(0.6,1)
	NADA A 0 A_SpawnItemEx("HFireSpawner")
	NADA A 1 Bright A_Fire
	NADA A 0 A_SetTranslucent(0.7,1)
	NADA A 0 A_SpawnItemEx("HFireSpawner")
	NADA A 1 Bright A_Fire
	NADA A 0 A_SetTranslucent(0.8,1)
	NADA A 0 A_SpawnItemEx("HFireSpawner")
	NADA A 1 Bright A_Fire
	NADA A 0 A_SetTranslucent(0.9,1)
	NADA A 0 A_SpawnItemEx("HFireSpawner")
	NADA A 1 Bright A_Fire
	NADA A 0 A_SetTranslucent(1.0,1)
  Count:
    NADA A 0 A_SpawnItemEx("HFireSpawner")
	NADA A 1 Bright A_Fire
	NADA A 0 A_CountDown
	Loop
  Death:
    TNT1 A 0 A_StopSound(5)
	TNT1 A 0 A_StopSound(6)
    TNT1 A 0 A_StopSound(7)
	TNT1 A 0 A_Explode(18,798)
	TNT1 A 0 A_Explode(48,590)
	TNT1 A 0 A_Explode(144,320)
	TNT1 A 0 A_Explode(256,220)
	TNT1 A 0 Radius_Quake(6,28,0,32,0)
    TNT1 A 0 A_PlaySound("digger/explode")
	TNT1 A 0 A_PlaySound("hemissilelauncher/far",6)
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("OrangeParticleSpawner",0,0,0,0,0,0,0,0,128) 
	TNT1 A 0 A_CustomMissile("SmokeFX3",0,0,random(80,100),2,random(80,100))
	TNT1 A 0 A_SpawnItemEx("HEMLFire",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
	CGE2 A 1 Bright A_SpawnItemEx("RPGRocketKaBoom",0,0,0,0,0,0,0)
    CGE2 BCDEFGHIJK 3 Bright A_CustomMissile("SmokeFX3",0,0,random(80,100),2,random(80,100))
    CGE2 LLLLLLLLLLLLL 1 Bright A_FadeOut(0.1,0)
    Stop
  }
}

Actor TSIVileMarkExtreme : TSIVileMark
{
Reactiontime 90
States
{
  Death:
    TNT1 A 0 A_StopSound(5)
	TNT1 A 0 A_StopSound(6)
	TNT1 A 0 A_Explode(1000,500,0,1)
	TNT1 A 0 Radius_Quake(15,20,0,20,0)
	TNT1 A 0 A_CustomMissile("FuelExplosion01",0,0,0,6)
	TNT1 A 0 A_CustomMissile("FuelExplosion01",0,0,45,6)
	TNT1 A 0 A_CustomMissile("FuelExplosion01",0,0,90,6)
	TNT1 A 0 A_CustomMissile("FuelExplosion01",0,0,135,6)
	TNT1 A 0 A_CustomMissile("FuelExplosion01",0,0,180,6)
    TNT1 A 0 A_CustomMissile("FuelExplosion01",0,0,225,6)
    TNT1 A 0 A_CustomMissile("FuelExplosion01",0,0,270,6)
    TNT1 A 0 A_CustomMissile("FuelExplosion01",0,0,315,6)
    TNT1 A 0 A_Mushroom("HFCyberMushroomFireballs",8)
    HFBA DEFGHIJKLMN 1 BRIGHT 
	TNT1 A 0 A_SpawnItemEx("PyroShotEx",0,0,0,0,0,0,0)
    Stop
  }
}

Actor TSIVileMarkUltra : TSIVileMark
{
Reactiontime 110
States
{
  Death:
    NADA A 0 A_StopSound(5)
	NADA A 0 A_StopSound(6)
	TNT1 A 0 A_SpawnItemEx("EFGFusionNukeFX",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_SpawnItemEx("TerminatorEFGFusionNukeExplode",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	TNT1 AAAAAAAA 3 A_SpawnItemEx("WelderFlare",0,0,0,random(2,4),random(2,4),2,random(0,360),SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS|SXF_SETMASTER,64)
    Stop
  }
}

Actor TSIVileMark2 : TSIVileMark
{
  States
  {
  Death:
	TNT1 A 1 
    Stop
  }
}

Actor TSIFireHugger : FrostIceWave
{
Damagetype "HFCyb3r"
ActiveSound ""
DeathSound ""
Species "Imps"
States
{
  Spawn:
   TNT1 A 5 A_SpawnItemEx("HFCyberFireballExplosion",0,0,10)
   Loop
  Death:
   TNT1 A 0
   Stop
   }
}

Actor HFCyberFireballExplosion : HFCyberFireballs
{
Speed 0
SeeSound ""
DeathSound "shadowninja/attack"
States
{
  Spawn:
    TNT1 A 1
	Goto Death
  Death:
	TNT1 A 0 A_Explode(190, 192)
	TNT1 A 0 A_SpawnItemEx("LCABaseScorch", 0, 0, 0, 0, 0, 0, Random(0,359))
    TNT1 AAAA 0 A_CustomMissile ("OrangeParticleSpawner", 0, 0, random (0, 360), 2, random (0, 180))
	EXPL A 0 Radius_Quake(15,20,0,20,0)
	BEXP B 0 A_Scream
	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
	TNT1 A 0 A_SpawnItemEx("CyberSuperMeteor_m_Explosion", 0, 0, 0, 0, 0, 0, -1, SXF_NOCHECKPOSITION)//A_CustomMissile("Meteor_m_Explosion",0+Random(5,80),0+Random(35,-35),0+Random(0,370))
	TNT1 A 0 A_SpawnItemEx("HFCyberSuperMeteorSmoke", 0, 0, 0, 0.01 * Random(-125, 125), 0.01 * Random(-125, 125), 0.01 * Random(25, 245), 0, 128, 0)
	Stop
	}
}

Actor TSILightningActivator : NDefilerMindfuckHeart
{
States
{
Pickup:
	TNT1 A 1 A_SetBlend("LightBlue",0.4,10)
	TNT1 A 0 A_PlaySound("tsi/lightgiver",7,1.0,0,0.5)
	TNT1 A 0 A_SpawnItemEx("TSILightningMaster",0,0,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION)
	TNT1 A 0 ACS_NamedExecuteAlways("TSILightning",0)
	Stop
	}
}

Actor TSILightningMaster
{
Monster
Scale 1
Health 0x7FFFFFFF
Mass 0x7FFFFFFF
Speed 1
Radius 1
Height 1
Species "Player"
Obituary "%o was struck by Terror Shaman Imp's lightning."
+NOCLIP
+NOPAIN
+NOFEAR
+FRIENDLY
-SOLID
-SHOOTABLE
-COUNTKILL
var int user_timer;
var int user_counter;
States
{
  Spawn:
	TNT1 A 0 NoDelay A_Quake(5,540,0,36,"worlds/quake")
  Set:
    TNT1 A 0 A_SetUserVar("user_timer",Random(10,25))
  Looping:
    TNT1 A 0 A_JumpIf(user_counter >= 10,"NULL")
    TNT1 A 0 A_JumpIf(user_timer == 0,"SpawnLightning")
    TNT1 A 1 A_SetUserVar("user_timer",user_timer-1)
    TNT1 A 0 A_Warp(AAPTR_FRIENDPLAYER,0,0,0,0,WARPF_ABSOLUTEANGLE|WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE,"Looping")
	Goto NULL
  SpawnLightning:
    TNT1 A 0 A_SpawnItemEX("TSILightning",Random(-500,500),Random(-500,500))
	TNT1 A 0 A_SetUserVar("user_counter",user_counter+1)
	Goto Set
	}
}

Actor TSILightning : NemesisLightning2
{
Damagetype "Legendary"
States
{
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_PlaySoundEx("thepain/light",7)    
	TNT1 A 0 Radius_Quake(175,8,512,1024,0)
	TNT1 AAA 0 A_CustomMissile("LegendaryNecroBolt",30,0,random(0,360),2)
	TNT1 A 0 A_Explode(150,300)
	TNT1 AAA 0 A_CustomMissile("SmokeFX3",0,0,random(0,360),2,random(0,360))
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("LegCardiThunderSpark",0,0,0,random(1,10),0,random(1,10),random(0,359),129)
	DV08 ABCBCAB 3 Bright
	Stop
    }     
}

Actor TSIEnergySeekerBallTest : RandomSpawner { +DROPPED DropItem "TSIEnergySeekerBall" 256 }

Actor TSIEnergySeekerBall : PetrovecBolt
{
Const int BallDmg = 6;
Const int BallRad = 300;
Const int BallMin = 64;
Const int Thresh = 5;
Const int MaxTurn = 10;
Radius 20
Height 20
Speed 15
Damage (Random(5,10))
Scale 0.5
BounceCount 99999
BounceFactor 0.7
WallBounceFactor 0.7
ReactionTime 6
Damagetype "Legendary"
Species "Imps"
Obituary "%o got caught by one of Terror Shaman Imp's traps."
//+RIPPER
-BOUNCEONACTORS
+DONTREFLECT
+THRUACTORS
+CANBOUNCEWATER
+DONTHURTSPECIES
States
{
  Spawn:
    TNT1 A 0 NoDelay A_PlaySound("plasma/flyultimate",5,1.0,1)
	TNT1 A 0 A_PlaySound("plasma/flyultimate",6,1.0,1)
  Looping:
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB1B A 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB1B B 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB1B C 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB1B D 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB1B E 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB1B F 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB1B G 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB1B H 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB1B I 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB1B J 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB1B K 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB1B L 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB1B M 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB1B N 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB1B O 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB1B P 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB1B Q 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB1B R 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB1B S 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB1B T 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB1B U 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB1B V 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB1B W 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB1B "X" 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB1B "Y" 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB1B "Z" 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB2B A 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB2B B 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB2B C 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB2B D 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB2B E 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB2B F 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB2B G 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB2B H 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB2B I 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB2B J 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB2B K 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB2B L 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB2B M 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB2B N 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB2B O 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB2B P 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB2B Q 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB2B R 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB2B S 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB2B T 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB2B U 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB2B V 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB2B W 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB2B "X" 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB2B "Y" 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB2B "Z" 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB3B A 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB3B B 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB3B C 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB3B D 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB3B E 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB3B F 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB3B G 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB3B H 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB3B I 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB3B J 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB3B K 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallTrail",0,random(-2,2),random(-2,2),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("T3DBFGBallParticleFloater",random(-12,12),random(-12,12),random(12,22),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	EB3B L 1 Bright A_SeekerMissile(Thresh,MaxTurn,SMF_LOOK|SMF_PRECISE,64,16)
	TNT1 A 0 A_Explode(BallDmg,BallRad,FALSE,FALSE,BallMin)
	"####" "#" 0 A_Countdown
	Loop
	/*
    EB1B ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 Bright A_SeekerMissile(0,90,SMF_LOOK|SMF_PRECISE,64,16)
	EB2B ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 Bright A_SeekerMissile(0,90,SMF_LOOK|SMF_PRECISE,64,16)
	EB3B ABCDEFGHIJKL 1 Bright A_SeekerMissile(0,90,SMF_LOOK|SMF_PRECISE,64,16)
	"####" "#" 0 A_Countdown
	Loop
	*/
  Death:
    "####" "#" 0 A_SetScale(1.0)
    "####" "#" 0 Radius_Quake(9,8,0,16,0)
	"####" "#" 0 Radius_Quake(8,10,0,18,0)
	"####" "#" 0 Radius_Quake(7,12,0,20,0)
	"####" "#" 0 Radius_Quake(6,14,0,22,0)
	"####" "#" 0 Radius_Quake(5,16,0,24,0)
	"####" "#" 0 Radius_Quake(4,18,0,26,0)
	"####" "#" 0 Radius_Quake(3,20,0,28,0)
	"####" "#" 0 Radius_Quake(2,24,0,30,0)
	"####" "#" 0 Radius_Quake(1,26,0,32,0)
	"####" "#" 0 A_PlaySound("plasmahit/ultimate",5)
	"####" "#" 0 A_PlaySound("plasmahit/ultimate",6)
	"####" "#" 0 A_SpawnItemEx("FreezeBFGShockWave",0,0,0)
	"####" "####################" 0 A_SpawnItemEx("BFire1", 0,0,0, (0.1)*Random(-80, 80), 0, (0.1)*Random(-80, 80), Random(0, 360), 128)
	"####" "####################" 0 A_SpawnItemEx("BFire2", 0,0,0, (0.1)*Random(-80, 80), 0, (0.1)*Random(-80, 80), Random(0, 360), 128)
	"####" "####################" 0 A_SpawnItemEx("BFire3", 0,0,0, (0.1)*Random(-80, 80), 0, (0.1)*Random(-80, 80), Random(0, 360), 128)
	"####" "#" 1 Bright A_Explode(250,340)
	"####" "####################################################################" 1 Bright A_FadeOut(0.05)
	Stop
	}
}

ACTOR BFire1
{
   Speed 0
   Height 4
   Radius 2
   Damage 0
   RenderStyle Add
   Alpha 1.0
   Scale 1.0
   +NOINTERACTION
   +ForceXYBillboard
   +CLIENTSIDEONLY
   +NONETID
   States
   {
   Spawn:
	  FIRB A 0 A_SetScale(ScaleX+0.01)
	  FIRB A 1 Bright A_FadeOut(0.02)
      Loop
   Death:
	  TNT1 A 1
	  Stop
   }
}

ACTOR BFire2 : BFire1
{
   States
   {
   Spawn:
	  FIRB B 0 A_SetScale(ScaleX+0.01)
	  FIRB B 1 Bright A_FadeOut(0.02)
      Loop
   }
}

ACTOR BFire3 : BFire1
{
   States
   {
   Spawn:
	  FIRB C 0 A_SetScale(ScaleX+0.01)
	  FIRB C 1 Bright A_FadeOut(0.02)
      Loop
   }
}

ACTOR PlanetBeamEnemy : PlanetBeam
{
Damage (200)
Species "Imps"
DamageType "Legendary"
-DONTBLAST
-THRUSPECIES
-FOILINVUL
+DONTHURTSPECIES
States
{
Death:
    TNT1 A 0 A_PlaySoundEx("PlanetCrackerImpact","Normal")
    TNT1 A 0 A_Explode(500,256,0,1)
	TNT1 A 0 A_Explode(250,540,0,1)
    TNT1 A 0 A_SpawnItemEx("PlanetCrackerImpact1", 0, 0, 0, 0, 0, 0, 0, 128, 0)
    TNT1 A 0 A_SpawnItemEx("PlanetCrackerImpact2", 0, 0, 0, 0, 0, 0, 0, 128, 0)
    TNT1 A 0 A_SpawnItemEx("PlanetCrackerImpact3", 0, 0, 0, 0, 0, 0, 0, 128, 0)
    TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("IonRainFlare",random(-150,150),random(-150,150),random(-25,50),0,0,frandom(1,2),0,0,0)
    TNT1 A 1 A_SpawnItemEx("PlanetCrackerBeamHit", 0, 0, 0, 0, 0, 0, 0, 128, 0)
    TNT1 AAAAAAAAAAA 1 A_SpawnItemEx("IonRainFlare",random(-150,150),random(-150,150),random(-25,50),0,0,frandom(1,2),0,0,0)
    Stop
	}
}

ACTOR PlanetBeamSuperEnemy : PlanetBeamSuper
{
Damage 600
Species "Imps"
DamageType "Legendary"
-NODAMAGETHRUST
-FOILINVUL
-PIERCEARMOR
-THRUSPECIES
+DONTHURTSPECIES
States
{
  Death:
      TNT1 A 0 A_StopSoundEx("Body")
      TNT1 A 0 A_PlaySound("weapons/PlanetCrackerBoom",6)
      TNT1 A 0 A_Explode(500,256,0,1)
	  TNT1 A 0 A_Explode(250,540,0,1)
	  TNT1 AA 0 A_SpawnItemEx("BlueGuruStruckGlowX",0,0,10,0,0,0,0,128,0)
	  TNT1 AA 0 A_SpawnItemEx("BlueGuruStruckGlowY",0,0,10,0,0,0,0,128,0)
	  TNT1 AAAAAA 0 A_SpawnItemEx("playertruelegbfgsmoke",random(126,-126),random(126,-126),random(66,-66),0.00001*random(100000,-100000),0.00001*random(100000,-100000),0.00001*random(100000,-100000),random(0,359),SXF_TRANSFERPOINTERS,0)
      PBAX BBBB 1 A_SpawnItemEx("PlanetCrackerProjectileBoom", 0, 0, 0, 0.1*random(20,15), 0.1*random(25,15), 2+random(1,-1), 0, 128, 0)
      PBAX BBBB 1 A_SpawnItemEx("PlanetCrackerProjectileBoom", 0, 0, 0, random(3,2), random(3,2), 3+random(3,2), 0, 128, 0)
	  PBAX A 0 A_SpawnItemEx("PCPlasmaticSpawnerEnemy",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
	  PBAX B 1 A_FadeOut(0.05)
      Wait
	}
}

ACTOR PCPlasmaticSpawnerEnemy : PCPlasmaticSpawner
{
-FOILINVUL
-PIERCEARMOR
-NODAMAGETHRUST
-THRUSPECIES
+DONTHURTSPECIES
Species "Imps"
DamageType "Legendary"
States
{
  Spawn:
	TNT1 A 0 
	TNT1 AAAAAAAAA 1 A_SpawnItemEx("LegRevBall3", 0, 0, 0, 0.1*Random(-5,5), 0.1*Random(-5, 5), 0.01*Random(20, 30), random(0,359), SXF_TRANSFERPOINTERS, 0)
	TNT1 AAAAAAAAA 1 A_SpawnItemEx("LegRevBall3", 0, 0, 0, 0.1*Random(-5,5), 0.1*Random(-5, 5), 0.01*Random(20, 30), random(0,359), SXF_TRANSFERPOINTERS, 0)
	LROC DD 3 Bright A_SetTranslucent(0.75,1)
	Stop
}
}

ACTOR IonCannonShotEnemy : IonCannonShot
{
Species "Imps"
DamageType "Legendary"
-THRUSPECIES
-NODAMAGETHRUST
-FOILINVUL
-PIERCEARMOR
+DONTHURTSPECIES
States
{
  Death:
      TNT1 A 0 A_StopSoundEx("Body")
      TNT1 A 0 A_PlaySound("weapons/PlanetCrackerBoom",6)
      TNT1 A 0 A_BFGSpray("PlanetCrackerProjectileSpray",30,30)
      TNT1 A 0 A_Explode(5000,512,0,1)
	  TNT1 AA 0 A_SpawnItemEx("BlueGuruStruckGlowX",0,0,10,0,0,0,0,128,0)
	  TNT1 AA 0 A_SpawnItemEx("BlueGuruStruckGlowY",0,0,10,0,0,0,0,128,0)
	  TNT1 AAAAAA 0 A_SpawnItemEx("playertruelegbfgsmoke",random(126,-126),random(126,-126),random(66,-66),0.00001*random(100000,-100000),0.00001*random(100000,-100000),0.00001*random(100000,-100000),random(0,359),SXF_TRANSFERPOINTERS,0)
      PBAX BBBB 4 A_SpawnItemEx("PlanetCrackerProjectileBoom", 0, 0, 0, 0.1*random(20,15), 0.1*random(25,15), 2+random(1,-1), 0, 128, 0)
      PBAX BBBB 4 A_SpawnItemEx("PlanetCrackerProjectileBoom", 0, 0, 0, random(3,2), random(3,2), 3+random(3,2), 0, 128, 0)
      TNT1 A 0 A_PlaySound("weapons/PlanetCrackerRain",0)
      PBAX B 5 A_SpawnItemEx("IonRain",0,0,0,0,0,0,0,128,0)
      PBAX BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB 2 A_SpawnItemEx("BeamFire", 0, 0, 0, 0.1*Random(-3,3), 0.1*Random(-3, 3), 0.01*Random(20, 30), random(0,359), 128, 0)
      PBAX B 1 ACS_ExecuteAlways(384, 0, 0, 0, 0)
	  PBAX A 0 A_SpawnItemEx("PCStrikeSpawnerEnemy",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS|SXF_NOCHECKPOSITION)
	  PBAX B 1 A_FadeOut(0.05)
	  TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 5 A_Explode(50,512,0,1)
	  TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 5 A_Explode(50,512,0,1)
      Stop
	}
}

ACTOR PCStrikeSpawnerEnemy : LegCybThorStrikeSpawner
{
//+NODAMAGETHRUST
+DONTHURTSPECIES
Species "Imps"
DamageType "Legendary"
States
{
  Spawn:
	TNT1 A 0 
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("PCStrikeBeam")
    TNT1 A 0 A_SpawnItemEx("PCStrikeBeam2")
	TNT1 AAAAAAA 5 A_SpawnItemEx("TrueLegSpark",random(-1200,1200),random(-1200,1200),random(50,800),0,0,frandom(1,2),0,SXF_TRANSFERPOINTERS,0)
	TNT1 A 0 A_GiveToTarget("BlueWarn",1,AAPTR_DEFAULT)
	TNT1 AAAAAAA 5 A_SpawnItemEx("TrueLegSpark",random(-1200,1200),random(-1200,1200),random(50,800),0,0,frandom(1,2),0,SXF_TRANSFERPOINTERS,0)
	TNT1 AAAAAAA 5 A_SpawnItemEx("TrueLegSpark",random(-1200,1200),random(-1200,1200),random(50,800),0,0,frandom(1,2),0,SXF_TRANSFERPOINTERS,0)
	TNT1 AAAAAAA 5 A_SpawnItemEx("TrueLegSpark",random(-1200,1200),random(-1200,1200),random(50,800),0,0,frandom(1,2),0,SXF_TRANSFERPOINTERS,0)
	TNT1 AAAAAAA 5 A_SpawnItemEx("TrueLegSpark",random(-1200,1200),random(-1200,1200),random(50,800),0,0,frandom(1,2),0,SXF_TRANSFERPOINTERS,0)
	TNT1 AAAAAAA 5 A_SpawnItemEx("TrueLegSpark",random(-1200,1200),random(-1200,1200),random(50,800),0,0,frandom(1,2),0,SXF_TRANSFERPOINTERS,0)
	TNT1 AAAAAAA 5 A_SpawnItemEx("TrueLegSpark",random(-1200,1200),random(-1200,1200),random(50,800),0,0,frandom(1,2),0,SXF_TRANSFERPOINTERS,0)
	TNT1 AAAAAAAAA 5 A_SpawnItemEx("TrueLegSpark",random(-1200,1200),random(-1200,1200),random(50,800),0,0,frandom(1,2),0,SXF_TRANSFERPOINTERS,0)
	TNT1 A 0 A_SpawnItemEx("TrueLegSpark",random(-1200,1200),random(-1200,1200),random(50,800),0,0,frandom(1,2),0,SXF_TRANSFERPOINTERS,0) 
	LROC B 0 A_Explode(10000,5000,0,1) //Yeah, you might need to keep your distance
	LROC B 0 A_Explode(5000,7500,0)
	LROC C 0 A_Explode(2500,10000,0)
	LROC DD 3 Bright A_SetTranslucent(0.75,1)
	Stop
}
}

Actor TSIBluePowerCircle : SignetFloorEffect
{
+CLIENTSIDEONLY
Alpha 0
var int user_tic;
States
{
  Spawn:
    TNT1 A 0 NoDelay A_SetUserVar(user_tic,0)
  Appear:
    NADA A 1 Bright A_Warp(AAPTR_MASTER,0,0,0,0,WARPF_NOCHECKPOSITION|WARPF_ABSOLUTEANGLE|WARPF_INTERPOLATE)
	TNT1 A 0 A_FadeIn(0.05)
	TNT1 A 0 A_JumpIf(user_tic >= 20,2)
	TNT1 A 0 A_SetUserVar(user_tic,user_tic+1)
	Loop
	NADA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 Bright A_Warp(AAPTR_MASTER,0,0,0,0,WARPF_NOCHECKPOSITION|WARPF_ABSOLUTEANGLE|WARPF_INTERPOLATE)
	NADA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 Bright A_Warp(AAPTR_MASTER,0,0,0,0,WARPF_NOCHECKPOSITION|WARPF_ABSOLUTEANGLE|WARPF_INTERPOLATE)
	TNT1 A 0 A_SetUserVar(user_tic,0)
  Death:
    NADA A 1 Bright A_Warp(AAPTR_MASTER,0,0,0,0,WARPF_NOCHECKPOSITION|WARPF_ABSOLUTEANGLE|WARPF_INTERPOLATE)
	TNT1 A 0 A_FadeOut(0.05,0)
	TNT1 A 0 A_JumpIf(user_tic >= 20,2)
	TNT1 A 0 A_SetUserVar(user_tic,user_tic+1)
	Loop
	TNT1 A 0
	Stop
	}
}

Actor TSITeleportCircle : SignetFloorEffect
{
Alpha 0
-ISMONSTER
var int user_tic;
States
{
  Spawn:
    TNT1 A 0 NoDelay A_SetUserVar(user_tic,0)
	TNT1 A 0 A_PlaySound("tsi/teleportself")
  Appear:
    NADA A 1 Bright A_FadeIn(0.05)
	TNT1 A 0 A_JumpIf(user_tic >= 20,2)
	TNT1 A 0 A_SetUserVar(user_tic,user_tic+1)
	Loop
	TNT1 A 0 A_SetUserVar(user_tic,0)
  Looping:
	NADA A 1 Bright A_SpawnItemEx("TSISerpExpParticle2",Random(-30,30),Random(-30,30),2,0,0,Random(1,2),0,0,128)
	TNT1 A 0 A_JumpIf(user_tic >= 175,2)
	TNT1 A 0 A_SetUserVar(user_tic,user_tic+1)
	Loop
	TNT1 A 0 A_SetUserVar(user_tic,0)
  Death:
    NADA A 1 Bright A_FadeOut(0.05,0)
	TNT1 A 0 A_JumpIf(user_tic >= 20,2)
	TNT1 A 0 A_SetUserVar(user_tic,user_tic+1)
	Loop
	TNT1 A 0
	Stop
	}
}

Actor TSITeleportCircleHell : TSITeleportCircle
{
Alpha 0
-ISMONSTER
var int user_tic;
States
{
  Spawn:
    TNT1 A 0 NoDelay A_SetUserVar(user_tic,0)
	TNT1 A 0 A_PlaySound("tsi/teleportself3")
  Appear:
    NADA A 1 Bright A_FadeIn(0.05)
	TNT1 A 0 A_JumpIf(user_tic >= 20,2)
	TNT1 A 0 A_SetUserVar(user_tic,user_tic+1)
	Loop
	TNT1 A 0 A_SetUserVar(user_tic,0)
  Looping:
	NADA A 1 Bright A_SpawnItemEx("MiniHellFlame",Random(-30,30),Random(-30,30),2,0,0,Random(1,2),0,0,128)
	TNT1 A 0 A_JumpIf(user_tic >= 175,2)
	TNT1 A 0 A_SetUserVar(user_tic,user_tic+1)
	Loop
	TNT1 A 0 A_SetUserVar(user_tic,0)
  Death:
    NADA A 1 Bright A_FadeOut(0.05,0)
	TNT1 A 0 A_JumpIf(user_tic >= 20,2)
	TNT1 A 0 A_SetUserVar(user_tic,user_tic+1)
	Loop
	TNT1 A 0
	Stop
	}
}

ACTOR TSIMinionSpawnerSerpentGiver : CrusaderBuff
{
Obituary "%o was killed by one of Terror Shaman Imp's minions."
	States 
	{
		Pickup:
		    TNT1 A 1 A_SetBlend("White",0.4,10)
		    TNT1 A 0 A_PlaySound("tsi/trap",7,1.0,0,0.5)
			TNT1 A 0 A_SpawnItemEx("TSIMinionSpawnerDropped",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
			stop
	}
}

ACTOR TSIMinionSpawnerDropped : RandomSpawner
{
+DROPPED
DropItem "TSIMinionSpawnerSerpent", 256, 1
}

Actor TSIMinionSpawnerSerpent : NemesisHKSummoner
{
var int user_failchance;
States
{
  Spawn:
    TNT1 A 0 Nodelay A_SetUserVar("user_failchance",128)
	TNT1 A 0 A_JumpIfInventory("TSIMinionSpawnerInv",3,"IncreaseSpawnChance2X",AAPTR_MASTER)
	TNT1 A 0 A_JumpIfInventory("TSIMinionSpawnerInv",2,"IncreaseSpawnChance",AAPTR_MASTER)
    TNT1 A 0 A_JumpIfInventory("TSIMinionSpawnerInv",1,"Death",AAPTR_MASTER)
	Goto Death
  IncreaseSpawnChance:
    TNT1 A 0 A_SetUserVar("user_failchance",80)
	Goto Death
  IncreaseSpawnChance2X:
	TNT1 A 0 A_SetUserVar("user_failchance",64)
  Death:
    TNT1 A 0 A_Jump(255,"SabreClaws")
  SabreClaws:
    TNT1 AAAAAAAAAAAAAAAA 0 A_SpawnItemEx("TSISabreClawSpawner",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS|SXF_NOCHECKPOSITION,user_failchance)
	TNT1 A 1 A_Fall
	Stop
	}
}

ACTOR TSIMinionSpawnerHellGiver : CrusaderBuff
{
Obituary "%o was killed by one of Terror Shaman Imp's minions."
	States 
	{
		Pickup:
		    TNT1 A 1 A_SetBlend("White",0.4,10)
		    TNT1 A 0 A_PlaySound("tsi/trap",7,1.0,0,0.5)
			TNT1 A 0 A_SpawnItemEx("TSIMinionSpawnerDropped2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
			stop
	}
}

ACTOR TSIMinionSpawnerDropped2 : RandomSpawner
{
+DROPPED
DropItem "TSIMinionSpawnerHell", 256, 1
}

Actor TSIMinionSpawnerHell : NemesisHKSummoner
{
var int user_failchance;
States
{
  Spawn:
    TNT1 A 0 Nodelay A_SetUserVar("user_failchance",128)
	TNT1 A 0 A_JumpIfInventory("TSIMinionSpawnerInv",3,"IncreaseSpawnChance2X",AAPTR_MASTER)
	TNT1 A 0 A_JumpIfInventory("TSIMinionSpawnerInv",2,"IncreaseSpawnChance",AAPTR_MASTER)
    TNT1 A 0 A_JumpIfInventory("TSIMinionSpawnerInv",1,"Death",AAPTR_MASTER)
	Goto Death
  IncreaseSpawnChance:
    TNT1 A 0 A_SetUserVar("user_failchance",80)
	Goto Death
  IncreaseSpawnChance2X:
	TNT1 A 0 A_SetUserVar("user_failchance",64)
  Death:
    TNT1 A 0 A_Jump(255,"Orcs","beholders")
  Beholders:
    TNT1 AAAAAAAAAAAAAAAA 0 A_SpawnItemEx("TSIBeholderSpawner",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS|SXF_NOCHECKPOSITION,user_failchance)
	TNT1 A 1 A_Fall
	Stop
  Orcs:
    TNT1 AAAAAAAAAAAAAAAA 0 A_SpawnItemEx("TSIOrcSpawner",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS|SXF_NOCHECKPOSITION,user_failchance)
	TNT1 A 1 A_Fall
	Stop
	}
}

Actor TSIMinionSpawnerInv : Inventory {inventory.maxamount 999}

Actor TSISabreClawSpawner : NemesisHKSummoner
{
States
{
   Spawn:
    TNT1 A 0
	TNT1 A 0 A_SetAngle(random(0,359))
	TNT1 A 1 A_Recoil(-10)
	TNT1 A 0 A_JumpIf(user_limit > 3,"Death")
	TNT1 A 0 A_SetUserVar("user_limit",user_limit+1)
	TNT1 A 1 A_Recoil(-4)
	TNT1 A 2 A_Jump(48,"Death")
    Goto Spawn+3
   Death:
    TNT1 A 0 A_Stop
    TNT1 A 1 A_SetTics(Random(15,35))
	TNT1 A 35 A_SpawnItemEx("TSISpawnCircleSerpent",0,0,5,0,0,0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("TSIFLare",0,0,33)
	TNT1 A 0 A_PlaySound("tsi/teleportself2")
	Goto SpawnMonster
   SpawnMonster:
	TNT1 A 0 A_SpawnItemEx("DualSabreClaw",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
	TNT1 A 1 A_Fall
	Stop
	}
}

Actor TSIBeholderSpawner : TSISabreClawSpawner
{
States
{
   Death:
    TNT1 A 0 A_Stop
    TNT1 A 1 A_SetTics(Random(15,35))
	TNT1 A 35 A_SpawnItemEx("TSISpawnCircleHell",0,0,5,0,0,0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("TSIHellExp2",0,0,33)
	TNT1 A 0 A_PlaySound("nemesisremilia/pyro")
	TNT1 A 0 A_SpawnItemEx("Beholder",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
	TNT1 A 1 A_Fall
	Stop
	}
}

Actor TSIOrcSpawner : TSISabreClawSpawner
{
States
{
   Death:
    TNT1 A 0 A_Stop
    TNT1 A 1 A_SetTics(Random(15,35))
	TNT1 A 35 A_SpawnItemEx("TSISpawnCircleHell",0,0,5,0,0,0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("TSIHellExp2",0,0,33)
	TNT1 A 0 A_PlaySound("nemesisremilia/pyro")
	TNT1 A 0 A_Jump(255,"Orc01","Orc04","Orc05","Orc13","Orc15","Orc16","Orc17","Orc21","Orc23","Orc25","Orc26","Orc28","Orc29","Orc48")
   Orc01:
    TNT1 A 5 A_SpawnItemEx("Orc01",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS,0,tid)
	TNT1 A 1 A_Fall
	Stop
   Orc04:
    TNT1 A 5 A_SpawnItemEx("Orc04",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS,0,tid)
	TNT1 A 1 A_Fall
	Stop
   Orc05:
    TNT1 A 5 A_SpawnItemEx("Orc05",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS,0,tid)
	TNT1 A 1 A_Fall
	Stop
   Orc13:
    TNT1 A 5 A_SpawnItemEx("Orc13",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS,0,tid)
	TNT1 A 1 A_Fall
	Stop
   Orc15:
    TNT1 A 5 A_SpawnItemEx("Orc15",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS,0,tid)
	TNT1 A 1 A_Fall
	Stop
   Orc16:
    TNT1 A 5 A_SpawnItemEx("Orc16",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS,0,tid)
	TNT1 A 1 A_Fall
	Stop
   Orc17:
    TNT1 A 5 A_SpawnItemEx("Orc17",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS,0,tid)
	TNT1 A 1 A_Fall
	Stop
   Orc21:
    TNT1 A 5 A_SpawnItemEx("Orc21",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS,0,tid)
	TNT1 A 1 A_Fall
	Stop
   Orc23:
    TNT1 A 5 A_SpawnItemEx("Orc23",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS,0,tid)
	TNT1 A 1 A_Fall
	Stop
   Orc25:
    TNT1 A 5 A_SpawnItemEx("Orc25",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS,0,tid)
	TNT1 A 1 A_Fall
	Stop
   Orc26:
    TNT1 A 5 A_SpawnItemEx("Orc26",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS,0,tid)
	TNT1 A 1 A_Fall
	Stop
   Orc28:
    TNT1 A 5 A_SpawnItemEx("Orc28",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS,0,tid)
	TNT1 A 1 A_Fall
	Stop
   Orc29:
    TNT1 A 5 A_SpawnItemEx("Orc29",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS,0,tid)
	TNT1 A 1 A_Fall
	Stop
   Orc48:
    TNT1 A 5 A_SpawnItemEx("Orc48",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS,0,tid)
	TNT1 A 1 A_Fall
	Stop
	}
}

ACTOR TSITrapSpawnerSerpent : CrusaderBuff
{
Obituary "%o got caught by one of Terror Shaman Imp's traps."
	States 
	{
		Pickup:
		    TNT1 A 1 A_SetBlend("White",0.4,10)
		    TNT1 A 0 A_PlaySound("tsi/trap",7,1.0,0,0.5)
			TNT1 A 0 A_SpawnItemEx("TSITrapSelectorSpawnerSerpent",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
			stop
	}
}

ACTOR TSITrapSpawnerSerpent2 : CrusaderBuff
{
Obituary "%o got caught by one of Terror Shaman Imp's traps."
	States 
	{
		Pickup:
		    TNT1 A 1 A_SetBlend("White",0.4,10)
		    TNT1 A 0 A_PlaySound("tsi/trap",7,1.0,0,0.5)
			TNT1 A 0 A_SpawnItemEx("TSITrapSelectorSpawnerSerpent2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
			stop
	}
}

ACTOR TSITrapSelectorSpawnerSerpent : RandomSpawner
{
+DROPPED
DropItem "TSITrapSelectorSerpent", 256, 1
}

ACTOR TSITrapSelectorSpawnerSerpent2 : RandomSpawner
{
+DROPPED
DropItem "TSITrapSelectorSerpent2", 256, 1
}

Actor TSITrapSelectorSerpent : NemesisHKSummoner
{
Obituary "%o got caught by one of Terror Shaman Imp's traps."
States
{
  Spawn:
    TNT1 A 0 NoDelay A_Jump(255,"RedeemerTraps")
  RedeemerTraps:
    TNT1 AAAAAAAAAAAAAAAA 0 A_SpawnItemEx("TSITrapRedeemer",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,64)
	Goto Death
  IonStrike:
    TNT1 A 0 A_SpawnItemEx("TSITrapIon",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	TNT1 A 350 A_Quake(5,250,0,1000,"worlds/quake")
	Goto Death
  Brimstone:
    TNT1 A 0 A_SpawnItemEx("TSITrapBrimstone",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	Goto Death
  EnergyBall:
    TNT1 A 0 A_SpawnItemEx("TSITrapEnergyBall",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
   Death:
	TNT1 A 1 A_Fall
	Stop
	}
}

Actor TSITrapSelectorSerpent2 : TSITrapSelectorSerpent
{
States
{
  Spawn:
    TNT1 A 0 NoDelay A_Jump(255,"RedeemerTraps","IonStrike","Brimstone","EnergyBall")
  RedeemerTraps:
    TNT1 AAAAAAAAAAAAAAAA 0 A_SpawnItemEx("TSITrapRedeemer",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,64)
	Goto Death
	}
}

Actor TSITrapRedeemer : TSISabreClawSpawner
{
Obituary "%o got caught by one of Terror Shaman Imp's traps."
States
{
   Death:
    TNT1 A 0 A_Stop
    TNT1 A 1 A_SetTics(Random(15,35))
	TNT1 A 35 A_SpawnItemEx("TSISpawnCircleSerpent",0,0,5,0,0,0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("TSIFLare",0,0,33)
	TNT1 A 0 A_PlaySound("tsi/teleportself2")
	TNT1 A 0 A_SpawnItemEx("TSILegRedTrap",0,0,16)
	TNT1 A 1 A_Fall
	Stop
	}
}

Actor TSILegRedTrap : LegRedTrap2 { Obituary "%o got caught by one of Terror Shaman Imp's traps." }

Actor TSITrapIon : TSITrapRedeemer
{
States
{
   Death:
    TNT1 A 0 A_Stop
    TNT1 A 1 A_SetTics(Random(15,200))
	TNT1 A 0 A_SpawnItemEx("PCStrikeSpawnerTrap",0,0,5,0,0,0,0,SXF_NOCHECKPOSITION,0)
	TNT1 A 1 A_Fall
	Stop
	}
}

Actor TSITrapBrimstone : TSITrapRedeemer
{
States
{
   Death:
    TNT1 A 0 A_Stop
    TNT1 A 1 A_SetTics(Random(15,35))
	TNT1 A 60 A_SpawnItemEx("TSISpawnCircleSerpent",0,0,5,0,0,0,0,0,0)
	TNT1 A 0 A_PlaySound("weapons/brimstonefire")
	TNT1 A 0 A_SpawnItemEx("TSIBrimstoner",0,0,40,0,0,0,0,SXF_NOCHECKPOSITION,0)
	TNT1 A 1 A_Fall
	Stop
	}
}

Actor TSITrapEnergyBall : TSITrapRedeemer
{
States
{
   Death:
    TNT1 A 0 A_Stop
    TNT1 A 1 A_SetTics(Random(15,35))
	TNT1 A 45 A_SpawnItemEx("TSISpawnCircleSerpent",0,0,5,0,0,0,0,0,0)
	TNT1 A 0 A_PlayWeaponSound("weapons/plasmaultimate")
	TNT1 A 0 A_SpawnItemEx("TSIBlueSpawnEffect",0,0,40)
	TNT1 A 0 A_SpawnItemEx("TSITrapEnergyBallAttack",0,0,40,0,0,0,0,SXF_NOCHECKPOSITION,0) //A_SpawnItemEx("TSITrapEnergyBallAttack",0,0,40,0,0,0,0,SXF_NOCHECKPOSITION,0) //A_CustomMissile("TSITrapEnergyBallAttack",40,0,0)
	TNT1 A 1 A_Fall
	Stop
	}
}

ACTOR TSITrapSpawnerHell : Crusaderbuff
{
	States 
	{
		Pickup:
		    TNT1 A 1 A_SetBlend("White",0.4,10)
		    TNT1 A 0 A_PlaySound("tsi/trap",7,1.0,0,0.5)
			TNT1 A 0 A_SpawnItemEx("TSITrapSelectorSpawnerHell",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
			stop
	}
}

ACTOR TSITrapSpawnerHell2 : Crusaderbuff
{
	States 
	{
		Pickup:
		    TNT1 A 1 A_SetBlend("White",0.4,10)
		    TNT1 A 0 A_PlaySound("tsi/trap",7,1.0,0,0.5)
			TNT1 A 0 A_SpawnItemEx("TSITrapSelectorSpawnerHell2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
			stop
	}
}


ACTOR TSITrapSelectorSpawnerHell : RandomSpawner
{
+DROPPED
DropItem "TSITrapSelectorHell", 256, 1
}

ACTOR TSITrapSelectorSpawnerHell2 : RandomSpawner
{
+DROPPED
DropItem "TSITrapSelectorHell2", 256, 1
}

Actor TSITrapSelectorHell : NemesisHKSummoner
{
Obituary "%o got caught by one of Terror Shaman Imp's traps."
States
{
  Spawn:
    TNT1 A 0 NoDelay A_Jump(255,"ConstantFire","Groundhands")
  Volcano:
    TNT1 A 0 A_SpawnItemEx("TSITrapVolcano",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	Goto Death
  ConstantFire:
    TNT1 A 0 A_SpawnItemEx("TSITrapConstantFire",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0)
	Goto Death
  GroundFire:
    TNT1 A 0 A_SpawnItemEx("TSITrapFireWall",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0)
	Goto Death
  Groundhands:
    TNT1 A 0 A_SpawnItemEx("TSITrapGroundHands",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
   Death:
	TNT1 A 1 A_Fall
	Stop
	}
}

Actor TSITrapSelectorHell2 : TSITrapSelectorHell
{
States
{
  Spawn:
    TNT1 A 0 NoDelay A_Jump(255,"Volcano","ConstantFire","GroundFire","Groundhands")
  Volcano:
    TNT1 A 0 A_SpawnItemEx("TSITrapVolcano",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	Goto Death
	}
}

Actor TSITrapVolcano : TSITrapRedeemer
{
States
{
   Death:
    TNT1 A 0 A_Stop
    TNT1 A 1 A_SetTics(Random(15,35))
	TNT1 A 60 A_SpawnItemEx("TSISpawnCircleHell",0,0,5,0,0,0,0,0,0)
	//TNT1 A 0 A_PlaySound("weapons/brimstonefire")
	TNT1 A 0 A_SpawnItemEx("TSITrapVolcanoAttack",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	TNT1 A 1 A_Fall
	Stop
	}
}

Actor TSITrapConstantFire : TSITrapRedeemer
{
States
{
   Death:
    TNT1 A 0 A_Stop
    TNT1 A 1 A_SetTics(Random(15,35))
	TNT1 A 60 A_SpawnItemEx("TSISpawnCircleHell",0,0,5,0,0,0,0,0,0)
	TNT1 A 10 A_SpawnItem("HFFireSpawned")
	TNT1 A 0 A_Mushroom("HFCyberMushroomFireballs",8)
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("HellFlame",0,0,0,random(0,30),0,random(0,10),random(0,360),SXF_TRANSFERPOINTERS)
	TNT1 A 10 A_SpawnItem("HFFireSpawned")
	TNT1 AAAAAA 5 A_SpawnItemEx("HFire",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
	TNT1 A 1 A_Fall
	Stop
	}
}

Actor TSITrapGroundHands : TSITrapRedeemer
{
States
{
   Death:
    TNT1 A 0 A_Stop
    TNT1 A 1 A_SetTics(Random(15,35))
	TNT1 A 15 A_SpawnItemEx("TSISpawnCircleHell",0,0,5,0,0,0,0,0,0)
	TNT1 A 10 A_SpawnItem("HFFireSpawned")
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 3 A_SpawnItemEx("TSIUndeadhandProjectile",random(-300,300),random(-300,300),0,0,0,0,0,SXF_TRANSFERPOINTERS)
	TNT1 A 10 A_SpawnItem("HFFireSpawned")
	TNT1 AAAAAA 5 A_SpawnItemEx("HFire",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
	TNT1 A 1 A_Fall
	Stop
	}
}

Actor TSIUndeadhandProjectile : HFUndeadhandProjectile { Obituary "%o got caught by one of Terror Shaman Imp's traps." }

Actor TSITrapFireWall : TSITrapRedeemer
{
var int user_tic;
States
{
   Death:
    TNT1 A 0 A_Stop
    TNT1 A 1 A_SetTics(Random(15,35))
	TNT1 A 60 A_SpawnItemEx("TSISpawnCircleHell",0,0,5,0,0,0,0,0,0)
   FireWall:
	TNT1 A 0 A_CustomMissile("BAALFirewall", 0, 0, 0)
	TNT1 A 0 A_CustomMissile("BAALFirewall", 0, 0, 10)
	TNT1 A 0 A_CustomMissile("BAALFirewall", 0, 0, 20)
	TNT1 A 0 A_CustomMissile("BAALFirewall", 0, 0, 30)
	TNT1 A 0 A_CustomMissile("BAALFirewall", 0, 0, 40)
	TNT1 A 0 A_CustomMissile("BAALFirewall", 0, 0, 50)
	TNT1 A 0 A_CustomMissile("BAALFirewall", 0, 0, 60)
	TNT1 A 0 A_CustomMissile("BAALFirewall", 0, 0, 70)
	TNT1 A 0 A_CustomMissile("BAALFirewall", 0, 0, 80)
	TNT1 A 0 A_CustomMissile("BAALFirewall", 0, 0, 90)
	TNT1 A 0 A_CustomMissile("BAALFirewall", 0, 0, 100)
	TNT1 A 0 A_CustomMissile("BAALFirewall", 0, 0, 110)
	TNT1 A 0 A_CustomMissile("BAALFirewall", 0, 0, 120)
	TNT1 A 0 A_CustomMissile("BAALFirewall", 0, 0, 130)
	TNT1 A 0 A_CustomMissile("BAALFirewall", 0, 0, 140)
	TNT1 A 0 A_CustomMissile("BAALFirewall", 0, 0, 150)
	TNT1 A 0 A_CustomMissile("BAALFirewall", 0, 0, 160)
	TNT1 A 0 A_CustomMissile("BAALFirewall", 0, 0, 180)
	TNT1 A 0 A_CustomMissile("BAALFirewall", 0, 0, 190)
	TNT1 A 0 A_CustomMissile("BAALFirewall", 0, 0, 200)
	TNT1 A 0 A_CustomMissile("BAALFirewall", 0, 0, 210)
	TNT1 A 0 A_CustomMissile("BAALFirewall", 0, 0, 220)
	TNT1 A 0 A_CustomMissile("BAALFirewall", 0, 0, 230)
	TNT1 A 0 A_CustomMissile("BAALFirewall", 0, 0, 240)
	TNT1 A 0 A_CustomMissile("BAALFirewall", 0, 0, 250)
	TNT1 A 0 A_CustomMissile("BAALFirewall", 0, 0, 260)
	TNT1 A 0 A_CustomMissile("BAALFirewall", 0, 0, 270)
	TNT1 A 0 A_CustomMissile("BAALFirewall", 0, 0, 280)
	TNT1 A 0 A_CustomMissile("BAALFirewall", 0, 0, 290)
	TNT1 A 0 A_CustomMissile("BAALFirewall", 0, 0, 300)
	TNT1 A 0 A_CustomMissile("BAALFirewall", 0, 0, 310)
	TNT1 A 0 A_CustomMissile("BAALFirewall", 0, 0, 320)
	TNT1 A 0 A_CustomMissile("BAALFirewall", 0, 0, 330)
	TNT1 A 0 A_CustomMissile("BAALFirewall", 0, 0, 340)
	TNT1 A 0 A_CustomMissile("BAALFirewall", 0, 0, 350)
	TNT1 A 0 A_Quake(5,20,0,1000,"")
	TNT1 A 35 A_PlayWeaponSound("baal/firenova")
	TNT1 A 0 A_JumpIf(user_tic >= 2,2)
	TNT1 A 0 A_SetUserVar(user_tic,user_tic+1)
	Loop
	TNT1 A 1 A_Fall
	Stop
	}
}

Actor TSIVolcano
{
	Height 50
	Radius 20
	Mass 0x7FFFFFFFF
	Speed 0
	Damage 0
	Scale 1.2
	Projectile
	Obituary "%o Became one with Terror Shaman Imp's Volcano."
	+FLOORHUGGER
	+FORCERADIUSDMG
	+EXTREMEDEATH
	+NOCLIP
	+NOBLOCKMAP
	-SOLID
	+NOINTERACTION
	+INVULNERABLE
	DamageType "Fire"
	DeathType "Extreme"
	States
	{
	Spawn:
		VRIS A 0 NoDelay A_Quake(8,320,0,1000,"worlds/quake")
		VRIS ABCDEFGHIJKLMNOPQRSTU 1
		TNT1 A 0 A_PlaySound("explosion/far",CHAN_AUTO)
		VOLC B 0 A_SpawnItemEx("VolcanoEruption",0,0,105,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS)
		VOLC B 200 bright
		VOLC A 70 bright
	Death:
		VRIS UTSRQPONMLKJIHGFEDCBA 1
		VRIS AAAAAAAAAA 1 A_FadeOut(0.1)
		Stop
	}
}

Actor VolcanoEruption
{
	Height 4
	Radius 4
	Speed 0
	Scale 1.5
	DeathSound "efg/explode"
	Projectile
	+EXTREMEDEATH
	+FULLVOLDEATH
	+FULLVOLACTIVE
	+NOINTERACTION
	+FORCERADIUSDMG
	+INVULNERABLE
	DamageType "HFCyb3r"
	DeathType "Extreme"
	Obituary "%o Became one with Terror Shaman Imp's Volcano."
	var int user_boomtime;
	States
	{
	Spawn:
		TNT1 A 0 NoDelay A_PlaySound("efg/explode",7,1,0)
		TNT1 A 0 A_SpawnItemEx("VCPrimaryFX",0,0,25,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("VolcanoExplosionFXSpawner",0,0,25,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 AAAAAAAAAAAAAAA 0 A_SpawnItemEx("Meteorite",0,0,0,0+random(5,20),0+random(5,20),0+random(15,25),0+random(0,360),SXF_NOCHECKPOSITION|SXF_SETMASTER)
		TNT1 A 8 A_Explode(128,768,0)
		TNT1 A 8 A_Explode(128,512,0)
	Boom:
		TNT1 A 0 A_Explode(128,512,0)
		TNT1 A 0 A_SpawnItemEx("HellFlame",0,0,25,random(0,30),0,random(0,10),random(0,360))
		TNT1 AAAAAAAA 1 A_CustomMissile("VolcanoMeteor",0,0+random(0,2),0+random(0,360),6,0+random(1,90))
		TNT1 A 0 A_JumpIf(user_boomtime >= 17,"Death")
		TNT1 A 0 A_SetUserVar(user_boomtime,user_boomtime+1)
		Loop
	Death:
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_CustomMissile("VolcanoMeteor",0,0+random(0,2),0+random(0,360),6,0+random(1,90))
		TNT1 AAAAAAAAAAAAAAAAAA 1 A_CustomMissile("VolcanoMeteor",0,0+random(0,2),0+random(0,360),6,0+random(1,90))
		Stop
	}
}

Actor VolcanoMeteor
{
	Height 7
	Speed 25
	Radius 9
	Scale .75
	Projectile
	+EXTREMEDEATH
	+DONTSPLASH
	-NOGRAVITY
	+SKYEXPLODE
	+FORCERADIUSDMG
	+BLOODLESSIMPACT
	DamageType "HFCyb3r"
	BounceType "Doom"
	BounceFactor .4
	SeeSound "volcano/bounce"
	DeathSound "comet/explosion"
	Obituary "%o Became one with Terror Shaman Imp's Volcano."
	RenderStyle Add
	States
	{
	Spawn:
		MSP1 A 0 NoDelay A_Explode(35,128,0)
		MSP1 A 0 A_SpawnItemEx("EFLMeteorFlames",2,0,0,frandom(1,4),frandom(-10,10),frandom(-10,10),0,SXF_NOCHECKPOSITION)
		MSP1 A 2 Bright A_JumpIf(waterlevel>=1,"Death")
		MSP1 A 0 A_Explode(35,128,0)
		MSP1 A 0 A_SpawnItemEx("EFLMeteorFlames",2,0,0,frandom(1,4),frandom(-10,10),frandom(-10,10),0,SXF_NOCHECKPOSITION)
		MSP1 B 2 Bright A_JumpIf(waterlevel>=1,"Death")
		MSP1 A 0 A_Explode(35,128,0)
		MSP1 A 0 A_SpawnItemEx("EFLMeteorFlames",2,0,0,frandom(1,4),frandom(-10,10),frandom(-10,10),0,SXF_NOCHECKPOSITION)
		MSP1 C 2 Bright A_JumpIf(waterlevel>=1,"Death")
		MSP1 A 0 A_Explode(35,128,0)
		MSP1 A 0 A_SpawnItemEx("EFLMeteorFlames",2,0,0,frandom(1,4),frandom(-10,10),frandom(-10,10),0,SXF_NOCHECKPOSITION)
		MSP1 D 2 Bright A_JumpIf(waterlevel>=1,"Death")
		MSP1 A 0 A_Explode(35,128,0)
		MSP1 A 0 A_SpawnItemEx("EFLMeteorFlames",2,0,0,frandom(1,4),frandom(-10,10),frandom(-10,10),0,SXF_NOCHECKPOSITION)
		MSP1 E 2 Bright A_JumpIf(waterlevel>=1,"Death")
		MSP1 A 0 A_Explode(35,128,0)
		MSP1 A 0 A_SpawnItemEx("EFLMeteorFlames",2,0,0,frandom(1,4),frandom(-10,10),frandom(-10,10),0,SXF_NOCHECKPOSITION)
		MSP1 F 2 Bright A_JumpIf(waterlevel>=1,"Death")
		Loop
	Death:
		GRNE A 0 A_Scream
		GRNE A 0 A_Explode(90,192,0)
		TNT1 A 0 A_SpawnItemEx("CyberSuperMeteor_m_Explosion", 0, 0, 0, 0, 0, 0, -1, SXF_NOCHECKPOSITION)
		TNT1 AAAA 0 A_SpawnItemEx("HFCyberSuperMeteorSmoke", 0, 0, 0, 0.01 * Random(-125, 125), 0.01 * Random(-125, 125), 0.01 * Random(25, 245), 0, 128, 0)
		TNT1 AAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("EFLIdleFire1",0,0,15,frandom(10,12),0,0,random(0,359),SXF_NOCHECKPOSITION)
		Stop
	}
}

Actor Meteorite : VolcanoMeteor
{
	+RIPPER
	+BLOODLESSIMPACT
	Damage 1
	BounceType "Doom"
	BounceFactor 0.1
	Scale 1.4
	DeathSound "Huge/Explosion"
	DamageType "HFCyb3r"
	Obituary "%o Became one with Terror Shaman Imp's Volcano."
	States
	{
	Spawn:
	  TNT1 A 0 ThrustThingZ(0,7,0,1)
	  TNT1 A 0 ThrustThing(0+random(0,360),4,0,1)
	  HFBA A 0 A_JumpIf(waterlevel >= 1,"Death")
	  HFBA ABC 1 Bright A_SpawnItemEx("HFExTrail",0,0,0,0,0,0,0)
	  Goto Spawn+2
    Death:
	  TNT1 A 0 Radius_Quake(15,20,0,20,0)
	  HFBA D 0 A_CustomMissile("PyroFuelExplosion01",0,0,0,30)
      HFBA D 0 A_CustomMissile("PyroFuelExplosion01",0,0,65,30)
      HFBA D 0 A_CustomMissile("PyroFuelExplosion01",0,0,120,30)
      HFBA D 0 A_CustomMissile("PyroFuelExplosion01",0,0,165,30)
      HFBA D 0 A_CustomMissile("PyroFuelExplosion01",0,0,220,30)
      HFBA D 0 A_CustomMissile("PyroFuelExplosion01",0,0,265,30)
      HFBA D 0 A_CustomMissile("PyroFuelExplosion01",0,0,330,30)
      HFBA D 0 A_CustomMissile("PyroFuelExplosion01",0,0,375,30)
      //HFBA D 0 A_Mushroom("HFCyberMushroomFireballs",8)
	  TNT1 A 0 A_Explode(220,256,0)
      HFBA DEFGHIJKLMN 1 BRIGHT 
	  TNT1 A 0 A_SpawnItemEx("PyroShotEx",0,0,0,0,0,0,0)
	  TNT1 A 0 A_SpawnItemEx("PyroShotEx",0,0,0,0,0,0,0)
      Stop
	}
}

Actor EFLIdleFire1
{
	+NOINTERACTION
	+CLIENTSIDEONLY
	Speed 0
	Radius 1
	Height 1
	RenderStyle Add
	Alpha 0.35
	Scale 0.39
	Translation "0:255=%[0.0,0.0,0]:[1,0.5,0]"
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(128,"FT2","FT3","FT4","FT5") 
		X003 ABCDE 2 Bright A_FadeOut(0.03)
		TNT1 A 0 A_ScaleVelocity(0.8)
		X003 FGHIJ 2 Bright A_FadeOut(0.03)
		TNT1 A 0 A_ScaleVelocity(0.7)
		X003 KLMNO 2 Bright A_FadeOut(0.03)
		TNT1 A 0 A_ScaleVelocity(0.55)
		X003 PQRST 2 Bright A_FadeOut(0.03)
		TNT1 A 0 A_ScaleVelocity(0.45)
		X003 UVWXYZ 2 Bright A_FadeOut(0.035)
		Wait
	FT2:
		X004 ABCDE 2 Bright A_FadeOut(0.03)
		TNT1 A 0 A_ScaleVelocity(0.8)
		X004 FGHIJ 2 Bright A_FadeOut(0.03)
		TNT1 A 0 A_ScaleVelocity(0.7)
		X004 KLMNO 2 Bright A_FadeOut(0.03)
		TNT1 A 0 A_ScaleVelocity(0.55)
		X004 PQ 2 Bright A_FadeOut(0.03)
		Wait
	FT3:
		/*X005 ABCDEFGHI 1 Bright A_FadeOut(0.015)
		X005 JKLMNOPQRSTUVWX 2 Bright A_FadeOut(0.03)*/
		X005 ABCDE 2 Bright A_FadeOut(0.015)
		TNT1 A 0 A_ScaleVelocity(0.8)
		X005 FGHIJ 2 Bright A_FadeOut(0.03)
		TNT1 A 0 A_ScaleVelocity(0.7)
		X005 KLMNO 2 Bright A_FadeOut(0.03)
		TNT1 A 0 A_ScaleVelocity(0.55)
		X005 PQRST 2 Bright A_FadeOut(0.03)
		TNT1 A 0 A_ScaleVelocity(0.45)
		X005 UVWXYZ 2 Bright A_FadeOut(0.035)
		Wait
	FT4:
		X006 ABCDE 2 Bright A_FadeOut(0.03)
		TNT1 A 0 A_ScaleVelocity(0.8)
		X006 FGHIJ 2 Bright A_FadeOut(0.03)
		TNT1 A 0 A_ScaleVelocity(0.7)
		X006 KLMNO 2 Bright A_FadeOut(0.03)
		TNT1 A 0 A_ScaleVelocity(0.55)
		X006 P 2 Bright A_FadeOut(0.03) //QRST
		//TNT1 A 0 A_ScaleVelocity(0.45)
		//X006 UVWXYZ 2 Bright A_FadeOut(0.035)
		Wait
	FT5:
		X015 ABCDE 2 Bright A_FadeOut(0.042)
		TNT1 A 0 A_ScaleVelocity(0.8)
		X015 FGHIJ 2 Bright A_FadeOut(0.042)
		TNT1 A 0 A_ScaleVelocity(0.7)
		X015 KLMNO 2 Bright A_FadeOut(0.042)
		TNT1 A 0 A_ScaleVelocity(0.55)
		X015 PQRST 2 Bright A_FadeOut(0.042)
		TNT1 A 0 A_ScaleVelocity(0.45)
		X015 UVWX 2 Bright A_FadeOut(0.047)
		Wait
	}
}

Actor EFLMeteorFlames : EFLIdleFire1
{
	Scale .50
}

Actor VCPrimaryFX
{
	var int user_x[3];
	var int user_angle[5];
	var int user_count;
	+NOINTERACTION
	States
	{
	Spawn:
		TNT1 A 0 NoDelay A_SpawnItemEx("MeteorExploSpriteBig",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SetUserArray("user_angle",1,random(1,4))
		TNT1 A 0 A_SetUserArray("user_angle",2,10)
		TNT1 A 0 A_SetUserArray("user_angle",0,user_angle[1]*user_angle[2])
		TNT1 A 0 A_SetUserArray("user_x",1,1)
		TNT1 A 0 A_SetUserArray("user_x",0,(45))
		TNT1 A 0 A_SetUserArray("user_x",2,user_x[0])
	Spread:
		TNT1 A 0 A_SpawnItemEx("MeteorExploSprites",((user_x[2]*user_x[1])+frandom(-10,10)),0,0,0,0,random(-4,4),user_angle[0],SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SetUserArray("user_angle",1,random(1,4))
		TNT1 A 0 A_SetUserArray("user_angle",0,user_angle[0]+(user_angle[1]*user_angle[2]))
		TNT1 A 0 A_JumpIf(user_angle[0]>=360,1)
		Loop
	SpreadOut:
		TNT1 A 1 A_SetUserArray("user_angle",2,user_angle[2]-1)
		TNT1 A 0 A_SetUserArray("user_angle",0,user_angle[1]*user_angle[2])
		TNT1 A 0 A_SetUserArray("user_x",1,user_x[1]+1)
		TNT1 A 0 A_SetUserArray("user_x",2,user_x[0])
		TNT1 A 0 A_JumpIf((user_angle[2]<=4)&&(user_count>=1),"End")
		TNT1 A 0 A_JumpIf(user_angle[2]<=1,1)
		Goto Spread
	Spread2:
		TNT1 A 1 A_SetUserVar("user_count",1)
		TNT1 A 0 A_SetUserArray("user_angle",2,10)
		TNT1 A 0 A_SetUserArray("user_x",1,1)
		Goto Spread
	End:
		TNT1 A 0
		Stop
	}
}

Actor VolcanoExplosionFXSpawner
{
	var int user_count;
	+NOINTERACTION
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 AAAAAAAAAA 0 A_SpawnItemEx("VolcanoExplosionBack",frandom(-25,25),0,frandom(-25,25),0,0,0,random(0,359),SXF_NOCHECKPOSITION)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("VolcanoExplosionBack",frandom(-25,25),0,frandom(-25,25),0,0,0,random(0,359),SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SetUserVar("user_count",0)
	Smoker:
		TNT1 AAAA 0 A_SpawnItemEx("SmokeFX2",random(0,5),0,random(10,25),random(1,3),0,random(5,8),random(0,359),SXF_NOCHECKPOSITION,128)
		TNT1 A 0 A_SpawnItemEx("VolcanoExplosionBack",random(-15,15),0,random(-15,15),0,0,0,random(0,359),SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("PBDebris",random(0,3),0,random(0,2),random(15,30),0,random(10,35),random(0,359),SXF_NOCHECKPOSITION,175)
		TNT1 A 1 A_SetUserVar("user_count",user_count+1)
		TNT1 A 0 A_JumpIf(user_count>=190,1)
		Loop
		TNT1 A 0
		Stop
	}
}

Actor PBDebris
{
Projectile
BounceType "Doom"
Speed 25
Radius 1
Height 1
Gravity 0.75
WallBounceFactor 0.9
BounceFActor 0.6
+CANBOUNCEWATER
+BOUNCEONCEILINGS
-NOGRAVITY
+NOTONAUTOMAP
+NOTELESTOMP
+ALLOWBOUNCEONACTORS
+BOUNCEONACTORS
+BOUNCEONWALLS
+BOUNCEONFLOORS
var int user_ticker;
var int user_limit;
States
{
	Spawn:
		TNT1 A 0 NoDelay A_SetUserVar("user_limit",random(20,400))
		TNT1 A 0 A_SetUserVar("user_ticker",0)
	ParticleSpawner:
		TNT1 A 1 A_SpawnItemEx("PBDebrisPuff",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERTRANSLATION)
		TNT1 A 0 A_SetUserVar("user_ticker",user_ticker+1)
		TNT1 A 0 A_JumpIf(user_ticker>=user_limit,"Death")
		Loop
	Death:
		TNT1 A 0
		Stop
	}
}

Actor PBDebrisPuff
{
	+NOINTERACTION 
	+NOTELESTOMP
	+CLIENTSIDEONLY
	Scale 0.25
	RenderStyle Add
	Translation "0:255=%[0,0,0]:[1,0.5,0]"
	States
	{
	Spawn:
		TNT1 A 0 NoDelay A_SetScale(ScaleX*random(-1,1),ScaleY*random(-1,1))
		TNT1 A 0 A_SpawnItemEx("PBDebrisSmoke",frandom(0,1),0,frandom(0,1),frandom(0,1),0,1,random(0,360),SXF_NOCHECKPOSITION|SXF_TRANSFERTRANSLATION)
		TNT1 A 0 A_Jump(128,"Two","Three")
	One:
		X006 ABCDEFGHIJKLMNOP 1 Bright 
		Stop
	Two:
		X007 ABCDEFGHIJ 1 Bright 
		Stop
	Three:
		X033 ABCDEFGHIJKLMNOPQR 1 Bright 
		Stop
	}
}

Actor VolcanoExplosionBack
{
	+NOINTERACTION
	+CLIENTSIDEONLY
	RenderStyle Add
	Scale 1.15
	Alpha 0.45
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(255,"s1","s2","s3","s4","s5","s6","s7")
	s1:
		X001 ABCDEFGHIJKLMNOPQRS 3 Bright A_FadeOut(0.01)
		X001 S 1 Bright A_FadeOut(0.03)
		Wait
	s2:
		X002 ABCDEFGHIJKLMNOPQRSTU 3 Bright A_FadeOut(0.01)
		X002 U 1 Bright A_FadeOut(0.03)
		Wait
	s3:
		X003 ABCDEFGHIJLKMNOPQRSTUVWXYZ 3 Bright A_FadeOut(0.01)
		X003 Z 1 Bright A_FadeOut(0.03)
		Wait
	s4:
		X004 ABCDEFGHIJKLMNOPQ 3 Bright A_FadeOut(0.01)
		X004 Q 1 Bright A_FadeOut(0.03)
		Wait
	s5:
		X005 ABCDEFGHIJKLMNOPQRSTUVWX 3 Bright A_FadeOut(0.01)
		X005 X 1 Bright A_FadeOut(0.03)
		Wait
	s6:
		X006 ABCDEFGHIJLKMNOP 3 Bright A_FadeOut(0.01)
		X006 P 1 Bright A_FadeOut(0.03)
		Wait
	s7:
		X007 ABCDEFGHIJ 3 Bright A_FadeOut(0.01)
		X007 J 1 Bright A_FadeOut(0.03)
		Wait
	}
}

Actor MeteorExploSpriteBig
{
	+NOINTERACTION
	Scale 1.25
	States
	{
	Spawn:
		X125 ABC 4 Bright
		X125 DEFGHI 3 bright
		X125 JJKKLLMMNNOOPPQQRR 1 Bright A_FadeOut(0.04)
		Wait
	}
}

Actor MeteorExploSprites
{
	+NOINTERACTION
	Scale 0.40
	RenderStyle Add
	States
	{
	Spawn:
		TNT1 A 0 NoDelay A_SetScale(frandom(0.30,0.45))
		TNT1 A 0 A_JumpIf((z-floorz)<=(4.0),"WarpUp")
		Goto Effect
	WarpUp:
		TNT1 A 0 A_Warp(AAPTR_DEFAULT,0,0,random(6,12),0,WARPF_NOCHECKPOSITION|WARPF_TOFLOOR)
		TNT1 A 0 A_ChangeVelocity(0,0,frandom(0.0,4.0),3)
	Effect:
		X125 ABCDEFG random(1,3) Bright
		X125 HIJKLMNOPQR 1 Bright A_FadeOut(0.05)
		Wait
	}
}

ACTOR TSIBrimstoner : Brimstoner
{
Speed 10
PainChance 15
tag "\c[m5]Magical Obelisk\c-"
obituary "%o was scorched by Terror Shaman Imp's obelisk."
Species "Imps"
DamageFactor "Legendary", 0.0
-FRIENDLY
-DONTBLAST
-NOCLIP
-STANDSTILL
var int user_burnout;
var int user_reload;
var int user_hurt;
var int user_hurtcounter;
States
{
  Spawn:
    TNT1 A 0 NoDelay A_PlaySound("weapons/brimstoneloop",5,0.85,1)
	TNT1 A 0 A_SpawnItemEx("TSIBrimstoneExplode",0,0,0)
	TNT1 A 0 A_SpawnItemEx("TSIBrimstoneImpact",0,0,10)
	TNT1 A 0 A_SpawnItemEx("TSIBrimstoneGLDEF")
	TNT1 A 0 A_SetUserVar(user_burnout,0)
	TNT1 A 0 A_SetUserVar(user_reload,0)
  Idle:
    TNT1 A 0 A_SpawnItemEx("TSIBrimstonerTrailSpark",random(10,-10),random(10,-10),random(10,-10),0,0,0)
    TNT1 AA 0 A_SpawnItemEx("TSIBrimstoneSmoke",random(23,-23),random(23,-23),random(23,-23),frandom(0.3,0.6),frandom(0.3,0.6),frandom(-0.2,0.5),random(0,359))
	TNT1 A 0 A_SetUserVar(user_reload,user_reload+1)
    LFLR A 1 Bright A_Look
	TNT1 A 0 A_JumpIf(user_burnout >= 700,"Death")
	TNT1 A 0 A_SetUserVar(user_burnout,user_burnout+1)
    Loop
  See:
    TNT1 A 0 A_JumpIf(user_hurt == 1,"See2")
	TNT1 A 0 A_JumpIf(user_hurt == 2,"See3")
    TNT1 A 0 A_SpawnItemEx("TSIBrimstonerTrailSpark",random(10,-10),random(10,-10),random(10,-10),0,0,0)
    TNT1 AA 0 A_SpawnItemEx("TSIBrimstoneSmoke",random(23,-23),random(23,-23),random(23,-23),frandom(0.3,0.6),frandom(0.3,0.6),frandom(-0.2,0.5),random(0,359))
	TNT1 A 0 A_SetUserVar(user_reload,user_reload+1)
    LFLR A 1 Bright A_Chase("Missile","Missile",CHF_DONTMOVE)
	TNT1 A 0 A_JumpIf(user_burnout >= 700,"Death")
	TNT1 A 0 A_SetUserVar(user_burnout,user_burnout+1)
	Loop
  See2:
    TNT1 A 0 A_SpawnItemEx("TSIBrimstonerTrailSpark",random(10,-10),random(10,-10),random(10,-10),0,0,0)
    TNT1 AA 0 A_SpawnItemEx("TSIBrimstoneSmoke",random(23,-23),random(23,-23),random(23,-23),frandom(0.3,0.6),frandom(0.3,0.6),frandom(-0.2,0.5),random(0,359))
	TNT1 A 0 A_SetUserVar(user_reload,user_reload+1)
    LFLR A 1 Bright A_Chase
	TNT1 A 0 A_JumpIf(user_burnout >= 700,"Death")
	TNT1 A 0 A_SetUserVar(user_burnout,user_burnout+1)
	TNT1 A 0 A_JumpIf(user_hurtcounter >= 200,"Restore")
	TNT1 A 0 A_SetUserVar(user_hurtcounter,user_hurtcounter+1)
	Loop
  See3:
    TNT1 A 0 A_SpawnItemEx("TSIBrimstonerTrailSpark",random(10,-10),random(10,-10),random(10,-10),0,0,0)
    TNT1 AA 0 A_SpawnItemEx("TSIBrimstoneSmoke",random(23,-23),random(23,-23),random(23,-23),frandom(0.3,0.6),frandom(0.3,0.6),frandom(-0.2,0.5),random(0,359))
	TNT1 A 0 A_SetUserVar(user_reload,user_reload+1)
    LFLR A 1 Bright A_Chase
	TNT1 A 0 A_JumpIf(user_burnout >= 700,"Death")
	TNT1 A 0 A_SetUserVar(user_burnout,user_burnout+1)
	Loop
  Missile:
    TNT1 A 0 A_JumpIf(user_burnout >= 700,"Death")
	TNT1 A 0 A_SetUserVar(user_burnout,user_burnout+1)
    TNT1 A 0 A_JumpIf(user_reload <= 70,"See")
	TNT1 A 0 A_SetUserVar(user_reload,0)
    TNT1 A 0 A_SpawnItemEx("TSIBrimstonerTrailSpark",random(10,-10),random(10,-10),random(10,-10),0,0,0)
    TNT1 A 0 A_SpawnItemEx("TSIBrimstoneLaunch",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS,0)
    TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("TSIBrimstoneSmokeDeath",random(28,-28),random(28,-28),random(28,-28),frandom(-4,4),frandom(1,4),frandom(-3,4),random(0,359))
    TNT1 AA 0 A_SpawnItemEx("TSIBrimstoneSmoke",random(23,-23),random(23,-23),random(23,-23),frandom(0.3,0.6),frandom(0.3,0.6),frandom(-0.2,0.5),random(0,359))
    TNT1 A 0 A_PlaySound("weapons/brimstonebigfire")
    TNT1 A 0 A_PlaySound("Weapons/BrimstoneExplode",6)
    TNT1 A 0 A_GiveInventory("BurnoutCounter",25)
    LFLR A 1 Bright A_FaceTarget
    TNT1 A 0 A_SpawnItemEx("TSIBrimstonerTrailSpark",random(10,-10),random(10,-10),random(10,-10),0,0,0)
    TNT1 AA 0 A_SpawnItemEx("TSIBrimstoneSmoke",random(23,-23),random(23,-23),random(23,-23),frandom(0.3,0.6),frandom(0.3,0.6),frandom(-0.2,0.5),random(0,359))
    LFLR A 1 Bright A_CustomMissile("TSIBrimstoneProjectile")
    LFLR A 1 Bright A_ClearTarget
    TNT1 A 0 A_SpawnItemEx("TSIBrimstonerTrailSpark",random(10,-10),random(10,-10),random(10,-10),0,0,0)
    TNT1 AA 0 A_SpawnItemEx("TSIBrimstoneSmoke",random(23,-23),random(23,-23),random(23,-23),frandom(0.3,0.6),frandom(0.3,0.6),frandom(-0.2,0.5),random(0,359))
    goto Spawn
  Restore:
    TNT1 A 0 A_ChangeFlag(NOPAIN,0)
	TNT1 A 0 A_ChangeFlag(NOFEAR,1)
	TNT1 A 0 A_ChangeFlag(FRIGHTENED,0)
	TNT1 A 0 A_SetUserVar(user_hurt,2)
	Goto See
  Pain:
    TNT1 A 0 A_ChangeFlag(NOPAIN,1)
	TNT1 A 0 A_ChangeFlag(FLOATBOB,0)
	TNT1 A 0 A_ChangeFlag(NOFEAR,0)
	TNT1 A 0 A_ChangeFlag(FRIGHTENED,1)
	TNT1 A 0 A_SetUserVar(user_hurt,1)
	TNT1 A 0 A_SetUserVar(user_hurtcounter,Random(10,60))
	Goto See
  Death:
    TNT1 A 0 A_PlaySound("weapons/brimstonedead",5)
    TNT1 A 0 A_SpawnItemEx("TSIBrimstoneImpact",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
    TNT1 A 0 A_SpawnItemEx("TSIBrimstoneGLDEF")
    Stop
	}
}

Actor TSITrapVolcanoAttack : TSIBrimstoner
{
Speed 0
Obituary "%o Became one with Terror Shaman Imp's Volcano."
-SOLID
-SHOOTABLE
States
{
  Spawn:
    TNT1 A 1 A_Look
	Loop
  See:
    TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Chase("Missile","Missile",CHF_DONTMOVE)
	TNT1 A 1 A_Die
	Goto Death
  Missile:
    TNT1 A 0 A_FaceTarget
    TNT1 A 1 A_CustomMissile("TSIVolcano",0,0,0,CMF_AIMDIRECTION)
	TNT1 A 1 A_Die
  Death:
    TNT1 A 1 A_Fall
	Stop
	}
}

Actor TSITrapEnergyBallAttack : TSITrapVolcanoAttack
{
Obituary "%o Became one with Terror Shaman Imp's Energy Ball."
States
{
  Spawn:
    TNT1 A 1 A_Look
	Loop
  See:
    TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Chase("Missile","Missile",CHF_DONTMOVE)
	TNT1 A 1 A_Die
	Goto Death
  Missile:
    TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_PlayWeaponSound("weapons/plasmaultimate")
	TNT1 A 0 A_SpawnItemEx("TSIBlueSpawnEffect",0,0,30)
    TNT1 A 1 A_CustomMissile("TSIEnergySeekerBall",0,0,0,CMF_AIMDIRECTION)
	TNT1 A 1 A_Die
  Death:
    TNT1 A 1 A_Fall
	Stop
	}
}
    
ACTOR TSIBrimstoneGLDEF : BrimstoneInherit
{
States
{
  Spawn:
	TNT1 A 21
	Stop
	}
}

ACTOR TSIBrimstoneImpact : BrimstoneImpact
{
DamageType "Legendary"
States
{
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_Explode(100,224,0)
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("TSIBrimstonerTrailSpark", random(10,-10), random(10,-10), random(10,-10), frandom(4,6), frandom(4,6), frandom(-6,6), random(0,359), 128, 0)
	TNT1 AA 0 A_SpawnItemEx("TSIBrimstoneSmoke",random(23,-23),random(23,-23),random(23,-23),frandom(0.3,0.6),frandom(0.3,0.6),frandom(-0.2,0.5),random(0,359),128,0)
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("TSIBrimstoneSmokeDeath",random(28,-28),random(28,-28),random(28,-28),frandom(-4,4),frandom(1,4),frandom(-3,4),random(0,359),128,0)
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("TSIBrimstoneSmokeDeath",random(28,-28),random(28,-28),random(28,-28),frandom(1,4),frandom(1,4),frandom(1,4),random(0,359),128,0)
	Stop
	}
}

Actor TSIBrimstoneProjectile : BrimstoneObeliskProjectile
{
DamageType "Legendary"
Species "Imps"
MissileType "TSIBrimstoneTrail"
Damage (Random(25,55))
-THRUSPECIES
+DONTHURTSPECIES
states
{
  Spawn:
    TNT1 A 0
    TNT1 A 1 A_PlaySound("weapons/brimstonefly",5,1.0,1)
    Loop
  Death:
    TNT1 A 0 A_PlaySound("Weapons/brimstonxExp",5)
    TNT1 AAAAAAAAAA 0 A_SpawnItemEx("TSIBrimstonerTrailSpark",random(19,-19),random(19,-19),random(19,-19),0,0,0)
    TNT1 A 0 A_SpawnItemEx("TSIBrimstoneExplode",0,0,0)
    TNT1 A 0 A_Explode(150,128,0,1)
    TNT1 A 1
    stop
  }
}

ACTOR TSIBrimstoneTrail : BrimstoneObeliskTrail
{
States
{
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_SetScale(ScaleX, ScaleY -0.0875)
    LFLR A 2 bright A_SpawnItemEx("TSIBrimstonerTrailSpark", random(4,-4), random(4,-4), random(4,-4), 0, 0, 0, 0, 128, 0)
    LFLR A 2 bright
  Trolololo:
    LFLR A 0 A_JumpIf(ScaleY <= 0, "NULL")
    LFLR A 0 A_SetScale(ScaleX -0.01, ScaleY -0.01)
    LFLR A 1 bright A_FadeOut(0.295)
    Loop
  }
}

ACTOR TSIBrimstoneExplode : BrimstoneObeliskExplode
{
states
  {
  Spawn:
    YAE7 ABCDEFGHIJKLMNOPQRS 1 bright A_FadeOut(0.05)
    stop
  }
}

ACTOR TSIBrimstonerTrailSpark : BrimstoneObeliskTrailSpark
{
States
{
  Spawn:
	TNT1 A 0 NoDelay A_JumpIf(ScaleX <= 0,"NULL")
	TNT1 A 0 A_SetScale(ScaleX-0.00075)
    LFLR A 3 bright A_ChangeVelocity (frandom(-0.8, 0.8), frandom(-0.8, 0.8), frandom(-0.8, 0.8), 0)
    LFLR A 1 bright A_FadeOut(0.05)
    Loop
    }
}

ACTOR TSIBrimstoneSmoke : BrimstoneSmoke
{
States
{
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "NULL")
	OZS1 FGHIJKLMNOPQRST 1 Bright
	OZS1 UVWXYZ 1 Bright A_FadeOut(0.05)
	Stop
	}
}

ACTOR TSIBrimstoneSmokeDeath : BrimstoneSmokeDeath
{
States
{
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "NULL")
	OZS1 FGHIJKLMNOPQRST 2
	OZS1 UVWXYZ 2 A_FadeOut(0.1)
	Stop
	}
}

ACTOR TSIBrimstoneLaunch : BrimstoneLaunch
{
States
{
Spawn:
	TNT1 A 0
	TNT1 AAAAAAAA 0 A_SpawnItemEx("TSIBrimstoneBlast",random(40,-40),random(40,-40),random(40,-40),frandom(0.05,0.1),frandom(0.05,0.1),frandom(0.075,0.125),random(0,359),SXF_TRANSFERPOINTERS,0)
	Stop
	}
}

ACTOR TSIBrimstoneBlast : BrimstoneBlast
{
Damagetype "Legendary"
States
{
  Spawn:
	TNT1 A 0 NoDelay A_Explode(45,128,0)
    RPEZ ABCDEFGHIJKLMNO 1 Bright
	RPEZ PQRSTU 2 A_FadeOut
	Stop
	}
}

ACTOR PCStrikeSpawnerTrap : PCStrikeSpawnerEnemy
{
Speed 0
States
{
  Spawn:
    TNT1 A 0 NoDelay A_PlaySound("tsi/ionstrike",CHAN_AUTO)
	TNT1 A 0 A_PlaySound("tsi/ionstrike2",CHAN_AUTO)
	TNT1 A 140 A_SpawnItem("TSIStrikeBeamTrap",0,0,0)
    TNT1 A 0 A_SpawnItem("TSIStrikeBeamTrap2",0,0,0)
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("TSISerpExpParticle2",random(-50,50),random(-50,50),random(0,800),0,0,frandom(1,2),0,0,0)
	TNT1 A 0 A_Explode(400,1000,0,0)
	TNT1 A 0 A_Explode(200,2500,0,0)
	TNT1 A 0 A_Explode(145,4000,0,0)
	TNT1 A 0 A_PlaySound("explosion/far",CHAN_AUTO)
	TNT1 A 0 A_SpawnItem("BlueStrike2LowSound",0,0,0)
	//TNT1 A 0 A_SpawnItem("PCHyperFlareSmall",0,0,0)
	TNT1 A 1
	Stop
}
}

Actor BlueStrike2LowSound : BlueStrike
{
Species "Imps"
DamageType "Legendary"
States
{
  Spawn:
   TNT1 A 0
   TNT1 A 0 A_SpawnItem("BlueGlare", 0, 0, 0)
   TNT1 A 0 A_SpawnItem("IonFloor", 0, 0, 0)
   TNT1 A 0 A_SpawnItem("IonSphere", 0, 0, 0)
   TNT1 A 0 A_SpawnItem("IonBlasphemy", 0, 0, 0)
   TNT1 A 0 A_SpawnItem("IonPole", 0, 0, 0)
   TNT1 A 0 A_SpawnItem("IonSmokePole", 0, 0, 0)
   TNT1 A 0 A_SpawnItem("IonDebris", 0, 0, 0)
   BBLU A 1 Bright A_PlaySound("weapons/PlanetCrackerBlast2",0)
   BBLU A 1 Bright A_SetTranslucent(0.9, 1)
   BBLU A 1 Bright A_SetTranslucent(1.0, 1)
   BBLU A 0 A_Explode(5000,2048,0,1)
   BBLU AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 Bright A_FadeOut(0.02)
   TNT1 A 105
   stop
 }
}

Actor PCHyperFlareSmall : PCHyperFlare
{
Scale 0.6
States
 {
  Spawn:
   BLUF A 1 Bright A_FadeOut(0.05)
   Wait
 }
}

Actor TSIStrikeBeamTrap : LegCybThorStrikeBeam
{
Alpha 0.5
XScale 1
States
{
  Spawn:
	THOR AAAAAAAAAAAAAAAAAAAAAAAAA 1 Bright A_FadeIn(0.05)
	THOR A 180 Bright
	THOR AAAAAAAAAAAAAAAAAAAA 1 Bright A_SetScale(ScaleX-0.05,ScaleY)
  Fade:
	THOR A 1 Bright A_FadeOut(0.05)
	Loop
 }
}

Actor TSIStrikeBeamTrap2 : TSIStrikeBeamTrap
{
XScale 4.0
Alpha 0.1
States
{
  Spawn:
	THOR AAAAAAAAAAAAAAAAAAAAAAAAA 1 Bright A_FadeIn(0.02)
	THOR A 35 Bright
	THOR AAAAAAAAAAAAAAAAAAAA 1 Bright A_SetScale(ScaleX-0.2,ScaleY)
  Fade:
	THOR A 1 Bright A_FadeOut(0.05)
	Loop
 }
}

Actor TSISpawnCircleSerpent : TSITeleportCircle
{
+CLIENTSIDEONLY
States
{
  Spawn:
    TNT1 A 0 NoDelay A_SetUserVar(user_tic,0)
	TNT1 A 0 A_PlaySound("tsi/idleportal")
  Appear:
    NADA ABCDEFGHIJKLMNOP 1 Bright A_FadeIn(0.08)
  Looping:
	NADA P 1 Bright A_SpawnItemEx("TSISerpExpParticle2",Random(-30,30),Random(-30,30),2,0,0,Random(1,2),0,0,128)
	TNT1 A 0 A_JumpIf(user_tic >= 90,"Death")
	TNT1 A 0 A_SetUserVar(user_tic,user_tic+1)
	Loop
  Death:
    NADA PONMLKJIHGFEDCBA 1 Bright A_FadeOut(0.08,0)
	Stop
	}
}

Actor TSISpawnCircleHell : TSISpawnCircleSerpent
{
States
{
  Spawn:
    TNT1 A 0 NoDelay A_SetUserVar(user_tic,0)
	TNT1 A 0 A_PlaySound("tsi/firespawn")
  Appear:
    NADA ABCDEFGHIJKLMNOP 1 Bright A_FadeIn(0.08)
  Looping:
	NADA P 1 Bright A_SpawnItemEx("MiniHellFlame",Random(-30,30),Random(-30,30),2,0,0,Random(1,2),0,0,128)
	TNT1 A 0 A_JumpIf(user_tic >= 90,"Death")
	TNT1 A 0 A_SetUserVar(user_tic,user_tic+1)
	Loop
  Death:
    NADA PONMLKJIHGFEDCBA 1 Bright A_FadeOut(0.08,0)
	Stop
	}
}

Actor TSIBlueAttackCircle : TSIBluePowerCircle
{
States
{
  Spawn:
    TNT1 A 0 NoDelay A_SetUserVar(user_tic,0)
  Appear:
    NADA A 1 Bright A_Warp(AAPTR_MASTER,30,0,40,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	TNT1 A 0 A_FadeIn(0.05)
	TNT1 A 0 A_JumpIf(user_tic >= 20,2)
	TNT1 A 0 A_SetUserVar(user_tic,user_tic+1)
	Loop
	NADA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 Bright A_Warp(AAPTR_MASTER,30,0,40,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	NADA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 Bright A_Warp(AAPTR_MASTER,30,0,40,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	TNT1 A 0 A_SetUserVar(user_tic,0)
  Death:
    NADA A 1 Bright A_Warp(AAPTR_MASTER,30,0,40,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	TNT1 A 0 A_FadeOut(0.05,0)
	TNT1 A 0 A_JumpIf(user_tic >= 20,2)
	TNT1 A 0 A_SetUserVar(user_tic,user_tic+1)
	Loop
	TNT1 A 0
	Stop
	}
}

Actor TSIHellAttackCircle : TSIBlueAttackCircle {}

ACTOR PlayerTrueLegendaryBFG15KBallEnemy : PlayerTrueLegendaryBFG15KBall
{
Species "Imps"
DamageType "Legendary"
-FOILINVUL
States
{
	Death:
	   TNT1 A 0 A_Explode(180, 192)
	   TNT1 A 0 A_SpawnItemEx("LCABaseScorch", 0, 0, 0, 0, 0, 0, Random(0,359))
       TNT1 AAAAAA 0 A_CustomMissile ("LegendaryBlueParticleSpawner", 0, 0, random (0, 360), 2, random (0, 180))
	   TNT1 A 0 A_SpawnItemEx("LNCometDeath",0,0,0,0,0,0,0,128,0)
	   EXPL A 0 Radius_Quake(15,20,0,20,0)
	   BEXP B 0 BRIGHT A_Scream
       //TNT1 A 0 A_AlertMonsters
	   Stop
	   }
}

ACTOR EnemyLegendaryRailgunPROJ2 : EnemyLegendaryRailgunPROJ
{
-RIPPER
Damage (Random(70,130))
Species "Imps"
MissileType "LegRailTrailBlue"
SeeSound "tsi/gaussfire"
}

ACTOR HotWizerShot : EnemyLegendaryRailgunPROJ2
{
MissileType "NewRockeParticleTrail"
DeathSound "hemissilelauncher/exp"
Decal RocketScorch
States
{
  Spawn:
    TNT1 A 0 NoDelay A_PlaySound("rpg/fly",7,1.0,TRUE)
  Fly:
	TNT1 AAA 0 A_CustomMissile("NewRockeParticleTrail",Random(-4,4),Random(-4,4))
	TNT1 A 1 A_CustomMissile("RocketSmoke",Random(-8,-4),Random(-2,2))
	Loop
  Death:
    TNT1 A 0 A_StopSound(7)
	TNT1 A 0 A_Explode(18,798)
	TNT1 A 0 A_Explode(48,590)
	TNT1 A 0 A_Explode(144,320)
	TNT1 A 0 A_Explode(256,220)
	TNT1 A 0 Radius_Quake(6,28,0,32,0)
    TNT1 A 0 A_PlaySound("digger/explode")
	TNT1 A 0 A_PlaySound("hemissilelauncher/far",6)
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("OrangeParticleSpawner",0,0,0,0,0,0,0,0,128) 
	TNT1 A 0 A_CustomMissile("SmokeFX3",0,0,random(80,100),2,random(80,100))
	TNT1 A 0 A_SpawnItemEx("HEMLFire",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
	CGE2 A 1 Bright A_SpawnItemEx("RPGRocketKaBoom",0,0,0,0,0,0,0)
    CGE2 BCDEFGHIJK 3 Bright A_CustomMissile("SmokeFX3",0,0,random(80,100),2,random(80,100))
    CGE2 LLLLLLLLLLLLL 1 Bright A_FadeOut(0.1,0)
	Stop
	}
}

ACTOR LegRailTrailBlue : LegRailTrail
{
States
{
Spawn:
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("LegRailParticleBlue", Random(-2,2),Random(-2,2),Random(-2,2),fRandom(-0.5,0.5),fRandom(-0.5,0.5),fRandom(-0.5,0.5),Random(-0,359),0,200)
	RAP3 ABC 2 Bright A_FadeOut(0.02)
    TNT1 A 0 A_SpawnItemEx("LegRailParticleBlue", Random(-2,2),Random(-2,2),Random(-2,2),fRandom(-0.5,0.5),fRandom(-0.5,0.5),fRandom(-0.5,0.5),Random(-0,359),0,200)
	RAP3 ABC 2 Bright A_FadeOut(0.02)
	TNT1 A 0 A_SpawnItemEx("LegRailParticleBlue", Random(-2,2),Random(-2,2),Random(-2,2),fRandom(-0.5,0.5),fRandom(-0.5,0.5),fRandom(-0.5,0.5),Random(-0,359),0,200)
	RAP3 ABC 2 Bright A_FadeOut(0.02)
    TNT1 A 0 A_SpawnItemEx("LegRailParticleBlue", Random(-2,2),Random(-2,2),Random(-2,2),fRandom(-0.5,0.5),fRandom(-0.5,0.5),fRandom(-0.5,0.5),Random(-0,359),0,200)
	RAP3 ABC 2 Bright A_FadeOut(0.02)
	TNT1 A 0 A_SpawnItemEx("LegRailParticleBlue", Random(-2,2),Random(-2,2),Random(-2,2),fRandom(-0.5,0.5),fRandom(-0.5,0.5),fRandom(-0.5,0.5),Random(-0,359),0,200)
	RAP3 ABC 2 Bright A_FadeOut(0.02)
    TNT1 A 0 A_SpawnItemEx("LegRailParticleBlue", Random(-2,2),Random(-2,2),Random(-2,2),fRandom(-0.5,0.5),fRandom(-0.5,0.5),fRandom(-0.5,0.5),Random(-0,359),0,200)
	RAP3 ABC 2 Bright A_FadeOut(0.02)
	TNT1 A 0 A_SpawnItemEx("LegRailParticleBlue", Random(-2,2),Random(-2,2),Random(-2,2),fRandom(-0.5,0.5),fRandom(-0.5,0.5),fRandom(-0.5,0.5),Random(-0,359),0,200)
	RAP3 ABC 2 Bright A_FadeOut(0.02)
    TNT1 A 0 A_SpawnItemEx("LegRailParticleBlue", Random(-2,2),Random(-2,2),Random(-2,2),fRandom(-0.5,0.5),fRandom(-0.5,0.5),fRandom(-0.5,0.5),Random(-0,359),0,200)
	RAP3 ABC 2 Bright A_FadeOut(0.02)
BurnOut:
	RAP3 ABC 2 Bright A_FadeOut(0.02)
	TNT1 A 1
	RAP3 ABC 2 Bright A_FadeOut(0.04)
	TNT1 A 1
	Loop
}
}

ACTOR TSISPHornRodFX : LegNecroHellStaffBall { Damagetype "AdvancedImp" }
/*
{
  Speed 50
  Damage 6
  Damagetype "AdvancedImp"
  +STRIFEDAMAGE
  States
  {
  Spawn:
	HPRO JJKKLL 1 Bright A_SpawnItem("TSISPHornRodTrail")
	TNT1 A 0 A_SeekerMissile(15, 30)
	Loop
  Death:
	TNT1 A 0
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("TSISPHornRodParticle",0,0,0,frandom(-4,4),frandom(-4,4),frandom(-4,4),random(0,359))
	CLBA "Z" 1 Bright A_FadeOut(0.2)
	Goto Death+1
  }
}
*/

ACTOR TSISPHornRodTrail : WhiteHellStaffTrail
{
States
{
  Spawn:
  TNT1 A 2 NoDelay
  TNT1 A 0 A_Jump(256,"one","two","three")
  One:
  HPRO J 1 Bright A_FadeOut(0.1)
  TNT1 A 0 A_SetScale(0.68)
  HPRO J 1 Bright A_FadeOut(0.1)
  TNT1 A 0 A_SetScale(0.66)
  HPRO K 1 Bright A_FadeOut(0.1)
  TNT1 A 0 A_SetScale(0.64)
  HPRO K 1 Bright A_FadeOut(0.1)
  TNT1 A 0 A_SetScale(0.62)
  HPRO L 1 Bright A_FadeOut(0.1)
  TNT1 A 0 A_SetScale(0.6)
  HPRO L 1 Bright A_FadeOut(0.1)
  TNT1 A 0 A_SetScale(0.58)
  HPRO J 1 Bright A_FadeOut(0.1)
  TNT1 A 0 A_SetScale(0.56)
  HPRO J 1 Bright A_FadeOut(0.1)
  TNT1 A 0 A_SetScale(0.54)
  HPRO K 1 Bright A_FadeOut(0.1)
  TNT1 A 0 A_SetScale(0.52)
  Stop
  Two:
  HPRO K 1 Bright A_FadeOut(0.1)
  TNT1 A 0 A_SetScale(0.68)
  HPRO K 1 Bright A_FadeOut(0.1)
  TNT1 A 0 A_SetScale(0.66)
  HPRO L 1 Bright A_FadeOut(0.1)
  TNT1 A 0 A_SetScale(0.64)
  HPRO L 1 Bright A_FadeOut(0.1)
  TNT1 A 0 A_SetScale(0.62)
  HPRO J 1 Bright A_FadeOut(0.1)
  TNT1 A 0 A_SetScale(0.6)
  HPRO J 1 Bright A_FadeOut(0.1)
  TNT1 A 0 A_SetScale(0.58)
  HPRO K 1 Bright A_FadeOut(0.1)
  TNT1 A 0 A_SetScale(0.56)
  HPRO K 1 Bright A_FadeOut(0.1)
  TNT1 A 0 A_SetScale(0.54)
  HPRO L 1 Bright A_FadeOut(0.1)
  TNT1 A 0 A_SetScale(0.52)
  Stop
  Three:
  HPRO L 1 Bright A_FadeOut(0.1)
  TNT1 A 0 A_SetScale(0.68)
  HPRO L 1 Bright A_FadeOut(0.1)
  TNT1 A 0 A_SetScale(0.66)
  HPRO J 1 Bright A_FadeOut(0.1)
  TNT1 A 0 A_SetScale(0.64)
  HPRO J 1 Bright A_FadeOut(0.1)
  TNT1 A 0 A_SetScale(0.62)
  HPRO K 1 Bright A_FadeOut(0.1)
  TNT1 A 0 A_SetScale(0.6)
  HPRO K 1 Bright A_FadeOut(0.1)
  TNT1 A 0 A_SetScale(0.58)
  HPRO L 1 Bright A_FadeOut(0.1)
  TNT1 A 0 A_SetScale(0.56)
  HPRO L 1 Bright A_FadeOut(0.1)
  TNT1 A 0 A_SetScale(0.54)
  HPRO J 1 Bright A_FadeOut(0.1)
  TNT1 A 0 A_SetScale(0.52)
  Stop
  }
}

ACTOR TSISPHornRodParticle : WhiteHellStaffParticle
{
States
{
  Spawn:
  TNT1 A 2
  CLBA Z 1 Bright A_FadeOut(0.1)
  TNT1 A 0 A_SetScale(0.048)
  CLBA Z 1 Bright A_FadeOut(0.1)
  TNT1 A 0 A_SetScale(0.046)
  CLBA Z 1 Bright A_FadeOut(0.1)
  TNT1 A 0 A_SetScale(0.044)
  CLBA Z 1 Bright A_FadeOut(0.1)
  TNT1 A 0 A_SetScale(0.042)
  CLBA Z 1 Bright A_FadeOut(0.1)
  TNT1 A 0 A_SetScale(0.040)
  CLBA Z 1 Bright A_FadeOut(0.1)
  TNT1 A 0 A_SetScale(0.038)
  CLBA Z 1 Bright A_FadeOut(0.1)
  TNT1 A 0 A_SetScale(0.036)
  CLBA Z 1 Bright A_FadeOut(0.1)
  TNT1 A 0 A_SetScale(0.034)
  CLBA Z 1 Bright A_FadeOut(0.1)
  TNT1 A 0 A_SetScale(0.032)
  Stop
  }
}

ACTOR TSIGhostA : NemesisImpGhost
{
States
  {
  Spawn:
	TNT1 A 1 NoDelay A_JumpIf(ACS_ExecuteWithResult(304) == 1, "NULL")
  Fade:
	1TSI A 2 A_FadeOut(0.1,1)
	Loop
  }
}

ACTOR TSIGhostB : NemesisImpGhost
{
States
  {
  Spawn:
	TNT1 A 1 NoDelay A_JumpIf(ACS_ExecuteWithResult(304) == 1, "NULL")
  Fade:
	1TSI B 2 A_FadeOut(0.1,1)
	Loop
  }
}

ACTOR TSIGhostC : NemesisImpGhost
{
States
  {
  Spawn:
	TNT1 A 1 NoDelay A_JumpIf(ACS_ExecuteWithResult(304) == 1, "NULL")
  Fade:
	1TSI C 2 A_FadeOut(0.1,1)
	Loop
  }
}

ACTOR TSIGhostD : NemesisImpGhost
{
States
  {
  Spawn:
	TNT1 A 1 NoDelay A_JumpIf(ACS_ExecuteWithResult(304) == 1, "NULL")
  Fade:
	1TSI D 2 A_FadeOut(0.1,1)
	Loop
  }
}

ACTOR 2TSIGhostA : NemesisImpGhost
{
States
  {
  Spawn:
	TNT1 A 1 NoDelay A_JumpIf(ACS_ExecuteWithResult(304) == 1, "NULL")
  Fade:
	2TSI A 2 A_FadeOut(0.1,1)
	Loop
  }
}

ACTOR 2TSIGhostB : NemesisImpGhost
{
States
  {
  Spawn:
	TNT1 A 1 NoDelay A_JumpIf(ACS_ExecuteWithResult(304) == 1, "NULL")
  Fade:
	2TSI B 2 A_FadeOut(0.1,1)
	Loop
  }
}

ACTOR 2TSIGhostC : NemesisImpGhost
{
States
  {
  Spawn:
	TNT1 A 1 NoDelay A_JumpIf(ACS_ExecuteWithResult(304) == 1, "NULL")
  Fade:
	2TSI C 2 A_FadeOut(0.1,1)
	Loop
  }
}

ACTOR 2TSIGhostD : NemesisImpGhost
{
States
  {
  Spawn:
	TNT1 A 1 NoDelay A_JumpIf(ACS_ExecuteWithResult(304) == 1, "NULL")
  Fade:
	2TSI D 2 A_FadeOut(0.1,1)
	Loop
  }
}

Actor TSIOrbTrail : SuperLegPlasmaTrail { Scale 0.4 }

Actor TSIFLare : PlanetCrackerImpact1
{
Scale 0.3
States
{
  Spawn:
    TNT1 A 0 NoDelay //A_JumpIf(ACS_ExecuteWithResult(304) == 1, "NULL")
  Looping:
    TNT1 A 0 //A_SetScale(ScaleX +0.04, ScaleY +0.04)
    TNT1 A 0 A_FadeOut(0.07)
    1TSC A 1 Bright
    Loop
  }
}

Actor TSIHellExp : PlanetCrackerImpact1
{
Scale 1
States
{
  Spawn:
   TNT1 A 0
   RPEX ABCDEFGHIJLKMNOPQRSTU 1 Bright
   Stop
   }
}

Actor TSIHellExp2 : TSIHellExp
{
States
{
  Spawn:
   TNT1 A 0
   RPEX UTSRQPONMKLJIHGFEDCBA 1 Bright
   Stop
   }
}

Actor TSIHellExpParticle : ArmorParticleGreen
{
Scale 0.2
var int user_weave;
States
{
  Spawn:
   TNT1 A 0 NoDelay A_JumpIf(ACS_ExecuteWithResult(304) == 1, "NULL")
   TNT1 A 0 A_SetUserVar(user_weave,Random(65,135))
  Weave:
   PAO1 A 1 Bright A_ChangeVelocity(Frandom(-0.2,0.2),Frandom(-0.2,0.2),Frandom(-0.2,0.2),0) //A_Weave(1,1,1.0,1.0)
   TNT1 A 0 A_JumpIf(user_weave == 0,"Fade")
   TNT1 A 0 A_SetUserVar(user_weave,user_weave-1)
   Loop
  Fade:
   PAO1 A 1 Bright A_ChangeVelocity(Frandom(-0.2,0.2),Frandom(-0.2,0.2),Frandom(-0.2,0.2),0) //A_Weave(1,1,1.0,1.0)
   TNT1 A 0 A_FadeOut(0.08)
   Loop
  /*
  Spawn:
   TNT1 A 0 NoDelay A_JumpIf(ACS_ExecuteWithResult(304) == 1, "NULL")
   PAO1 A 1 Bright A_SetTics(Random(65,135))
  Fade:
   PAO1 A 1 Bright A_FadeOut(0.08,0)
   Loop
   */
   }
}

Actor TSIHellExpParticle2 : TSIHellExpParticle
{
Alpha 0
States
{
  Spawn:
   TNT1 A 0 NoDelay A_JumpIf(ACS_ExecuteWithResult(304) == 1, "NULL")
   PAO1 AAAAAAAAAAAAAAAAAAAAAAAAA 1 Bright A_FadeIn(0.05)
   TNT1 A 0 A_SetUserVar(user_weave,Random(35,45))
  Looping:
   PAO1 A 1 Bright A_ChangeVelocity(Frandom(-0.2,0.2),Frandom(-0.2,0.2),Frandom(-0.2,0.2),0)
   TNT1 A 0 A_JumpIf(user_weave == 0,"Fade")
   TNT1 A 0 A_SetUserVar(user_weave,user_weave-1)
   Loop
  Fade:
   PAO1 A 1 Bright A_FadeOut(0.08)
   Loop
   }
}

Actor TSISerpExpParticle : TSIHellExpParticle
{
States
{
  Spawn:
   TNT1 A 0 NoDelay A_JumpIf(ACS_ExecuteWithResult(304) == 1, "NULL")
   TNT1 A 0 A_SetUserVar(user_weave,Random(65,135))
  Weave:
   PAO2 A 1 Bright A_ChangeVelocity(Frandom(-0.2,0.2),Frandom(-0.2,0.2),Frandom(-0.2,0.2),0) //A_Weave(1,1,1.0,1.0)
   TNT1 A 0 A_JumpIf(user_weave == 0,"Fade")
   TNT1 A 0 A_SetUserVar(user_weave,user_weave-1)
   Loop
  Fade:
   PAO2 A 1 Bright A_ChangeVelocity(Frandom(-0.2,0.2),Frandom(-0.2,0.2),Frandom(-0.2,0.2),0) //A_Weave(1,1,1.0,1.0)
   TNT1 A 0 A_FadeOut(0.08)
   Loop
   }
}

Actor TSISerpExpParticle2 : TSISerpExpParticle
{
Alpha 0
States
{
  Spawn:
   TNT1 A 0 NoDelay A_JumpIf(ACS_ExecuteWithResult(304) == 1, "NULL")
   PAO2 AAAAAAAAAAAAAAAAAAAAAAAAA 1 Bright A_FadeIn(0.05)
   TNT1 A 0 A_SetUserVar(user_weave,Random(35,45))
  Looping:
   PAO2 A 1 Bright
   TNT1 A 0 A_JumpIf(user_weave == 0,"Fade")
   TNT1 A 0 A_SetUserVar(user_weave,user_weave-1)
   Loop
  Fade:
   PAO2 A 1 Bright A_FadeOut(0.08)
   Loop
   }
}

Actor TSIBlueSpawnEffect : NemesisFragmentPortal
{
Scale 1
Alpha 1
+NOTIMEFREEZE
States
{
  Spawn:
    TNT1 A 0
    TNT1 AAAAAAA 0 A_SpawnItemEx("TSISerpExpParticle",Random(-2,2),Random(-2,2),Random(5,10),Random(-1,1),Random(-1,1),Random(-1,1),Random(-360,360),0,32)
	TNT1 AAAAAAAAAA 0 A_SpawnItemEx("T3DBFGBallParticle",Random(-2,2),Random(-2,2),Random(5,10),Random(-10,10),Random(-10,10),Random(-10,10),Random(-360,360),0,32)
	T804 F 10
  SpawnLoop:
	TNT1 A 0 A_FadeOut(0.2)
	T804 F 1 Bright A_SetScale(ScaleX-0.1)
    Loop
	}
}

//Hell portal
Actor ShamanHellBossSummoner : NemesisHKSummoner
{
var int user_boss;
States
{
  Spawn:
    TNT1 A 35 NoDelay A_Quake(5,250,0,1000,"worlds/quake")
	TNT1 A 0 A_SpawnitemEx("TSIHellPortalEffect",0,0,55,0,0,0,0,SXF_NOCHECKPOSITION)
	TNT1 A 0 A_SpawnItemEx("ShamanHellBossLightSpam",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
	TNT1 A 300 A_PlaySound("tsi/endhellportal",6,1.0,FALSE,ATTN_NONE)
	TNT1 A 54 A_SpawnitemEx("DevBossGoldFX",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
    TNT1 A 0 A_JumpIf(user_boss == 1,"Tier1")
    TNT1 A 0 A_JumpIf(user_boss == 2,"Tier2")
    TNT1 A 0 A_JumpIf(user_boss == 3,"Tier3")
    TNT1 A 0 A_JumpIf(user_boss == 4,"Tier4")
    Goto Death
  Tier1:
   TNT1 A 5 A_SpawnItemEx("DeathLord",0,0,0,0,0,0,angle,SXF_TRANSFERPOINTERS|SXF_NOCHECKPOSITION,0,tid)
   Goto Death
  Tier2:
   TNT1 A 5 A_SpawnItemEx("BaalSpawned",0,0,0,0,0,0,angle,SXF_TRANSFERPOINTERS|SXF_NOCHECKPOSITION,0,tid)
   Goto Death
  Tier3:
   TNT1 A 5 A_SpawnItemEx("Maephisto2",0,0,0,0,0,0,angle,SXF_TRANSFERPOINTERS|SXF_NOCHECKPOSITION,0,tid)
   Goto Death
  Tier4:
   TNT1 A 5 A_SpawnItemEx("MephistoVile",0,0,0,0,0,0,angle,SXF_TRANSFERPOINTERS|SXF_NOCHECKPOSITION,0,tid)
   Goto Death
  Death:
   TNT1 A 1 A_Fall
   Stop
	}
}

Actor ShamanHellBossLightSpam : NemesisHKSummoner
{
States
{
  Spawn:
   TNT1 A 0
   TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 2 A_SpawnItemEx("RedLightning",Random(-400,400),Random(-400,400),-1000,0,0,0,0,0,250)
   TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 2 A_SpawnItemEx("RedLightning",Random(-400,400),Random(-400,400),-1000,0,0,0,0,0,240)
   TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 2 A_SpawnItemEx("RedLightning",Random(-400,400),Random(-400,400),-1000,0,0,0,0,0,230)
   TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 2 A_SpawnItemEx("RedLightning",Random(-400,400),Random(-400,400),-1000,0,0,0,0,0,220)
   TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 2 A_SpawnItemEx("RedLightning",Random(-400,400),Random(-400,400),-1000,0,0,0,0,0,210)
   TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 2 A_SpawnItemEx("RedLightning",Random(-400,400),Random(-400,400),-1000,0,0,0,0,0,200)
   Stop
   }
}

//BaalSpawned

Actor DevBossGoldFX
{
+CLIENTSIDEONLY
+NOINTERACTION
+NOTIMEFREEZE
+Dontsplash
+BRIGHT
Renderstyle Add
States
{
  Spawn:
    TNT1 A 0
	A00X AABBCDEFGHIJKLMNOPQRSTUVWXYZ 2
	B00X ABCDEFGHIJKLM 1 A_Fadeout(0.2,0)
	Stop
	}
}

Actor TSIHellPortalEffect : NemesisFragmentPortal
{
Scale 0.4
-BRIGHT
var int user_counter;
States
{
  Pause:
   TNT1 AAA 0 A_StopSound(5)
   TNT1 A 0 A_JumpIf(user_counter >= 50,"NULL")
   TNT1 A 1 A_SetTics(Random(5,25))
  Spawn:
   TNT1 A 0 NoDelay A_Jump(128,"alt")
   TNT1 A 0 A_PlaySound("beam/lightninghitbody",5)
   TNT1 A 0 A_SpawnItemEx("TSIHellPortalEffect2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
   SMEA L 2 Bright A_SetUserVar("user_counter",user_counter+1)
   TNT1 A 0 A_Jump(30,"Pause")
   SMEA M 2 Bright A_SetUserVar("user_counter",user_counter+1)
   TNT1 A 0 A_Jump(30,"Pause")
   SMEA N 2 Bright A_SetUserVar("user_counter",user_counter+1)
   TNT1 A 0 A_Jump(30,"Pause")
   SMEA O 2 Bright A_SetUserVar("user_counter",user_counter+1)
   TNT1 A 0 A_Jump(30,"Pause")
   SMEA A 2 Bright A_SetUserVar("user_counter",user_counter+1)
   TNT1 A 0 A_Jump(30,"Pause")
   SMEA B 2 Bright A_SetUserVar("user_counter",user_counter+1)
   TNT1 A 0 A_Jump(30,"Pause")
   SMEA C 2 Bright A_SetUserVar("user_counter",user_counter+1)
   TNT1 A 0 A_Jump(30,"Pause")
   SMEA D 2 Bright A_SetUserVar("user_counter",user_counter+1)
   TNT1 A 0 A_Jump(30,"Pause")
   SMEA E 2 Bright A_SetUserVar("user_counter",user_counter+1)
   Goto Pause
  Alt:
   TNT1 A 0 A_PlaySound("beam/lightninghitbody",5)
   TNT1 A 0 A_SpawnItemEx("TSIHellPortalEffect2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
   SMEA F 2 Bright A_SetUserVar("user_counter",user_counter+1)
   TNT1 A 0 A_Jump(30,"Pause")
   SMEA G 2 Bright A_SetUserVar("user_counter",user_counter+1)
   TNT1 A 0 A_Jump(30,"Pause")
   SMEA H 2 Bright A_SetUserVar("user_counter",user_counter+1)
   TNT1 A 0 A_Jump(30,"Pause")
   SMEA I 2 Bright A_SetUserVar("user_counter",user_counter+1)
   TNT1 A 0 A_Jump(30,"Pause")
   SMEA J 2 Bright A_SetUserVar("user_counter",user_counter+1)
   TNT1 A 0 A_Jump(30,"Pause")
   SMEA K 2 Bright A_SetUserVar("user_counter",user_counter+1)
   Goto Pause
   }
}

Actor TSIHellPortalEffect2 : 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,"TSIRedRailParticle",-15)
    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,"TSIRedRailParticle",-15)
	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,"TSIRedRailParticle",-15)
    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,"TSIRedRailParticle",-15)
	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,"TSIRedRailParticle",-15)
    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,"TSIRedRailParticle",-15)
	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,"TSIRedRailParticle",-15)
    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,"TSIRedRailParticle",-15)
	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,"TSIRedRailParticle",-15)
    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,"TSIRedRailParticle",-15)
	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,"TSIRedRailParticle",-15)
    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,"TSIRedRailParticle",-15)
	Stop
	}
}

ACTOR TSIRedRailParticle : OverseerRailParticle
{
States
{
Spawn:
	SPKR A 2 Bright
	Stop
	}
}

//SP portal
Actor ShamanSPBossSummoner : ShamanHellBossSummoner
{
States
{
  Spawn:
   TNT1 A 35
   TNT1 A 60 A_Quake(5,250,0,1000,"worlds/quake")
   TNT1 A 50 A_SpawnItemEx("ShamanSPBossLightSpam",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
   TNT1 A 115 A_SpawnitemEx("TSIPortalEffect",0,0,55,0,0,0,0,SXF_NOCHECKPOSITION)
   TNT1 A 0 A_SpawnItemEx("TSIFLare",0,0,35)
   TNT1 A 0 A_JumpIf(user_boss == 1,"Tier1")
   TNT1 A 0 A_JumpIf(user_boss == 2,"Tier2")
   TNT1 A 0 A_JumpIf(user_boss == 3,"Tier3")
   TNT1 A 0 A_JumpIf(user_boss == 4,"Tier4")
   Goto Death
  Tier1:
   TNT1 A 5 A_SpawnItemEx("MedeusBoss",0,0,0,0,0,0,angle,SXF_TRANSFERPOINTERS|SXF_NOCHECKPOSITION,0,tid)
   Goto Death
  Tier2:
   TNT1 A 5 A_SpawnItemEx("HellishAvatar",0,0,0,0,0,0,angle,SXF_TRANSFERPOINTERS|SXF_NOCHECKPOSITION,0,tid)
   Goto Death
  Tier3:
   TNT1 A 5 A_SpawnItemEx("Frostdemon",0,0,0,0,0,0,angle,SXF_TRANSFERPOINTERS|SXF_NOCHECKPOSITION,0,tid)
   Goto Death
  Tier4:
   TNT1 A 5 A_SpawnItemEx("Hellsmith",0,0,0,0,0,0,angle,SXF_TRANSFERPOINTERS|SXF_NOCHECKPOSITION,0,tid)
   Goto Death
  Death:
   TNT1 A 1 A_Fall
   Stop
	}
}

Actor ShamanSPBossLightSpam : NemesisHKSummoner
{
States
{
  Spawn:
   TNT1 A 0
   TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("BlueLightning",Random(-400,400),Random(-400,400),-1000,0,0,0,0,0,250)
   TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("BlueLightning",Random(-400,400),Random(-400,400),-1000,0,0,0,0,0,250)
   TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("BlueLightning",Random(-400,400),Random(-400,400),-1000,0,0,0,0,0,240)
   TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("BlueLightning",Random(-400,400),Random(-400,400),-1000,0,0,0,0,0,240)
   TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("BlueLightning",Random(-400,400),Random(-400,400),-1000,0,0,0,0,0,230)
   TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("BlueLightning",Random(-400,400),Random(-400,400),-1000,0,0,0,0,0,230)
   TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("BlueLightning",Random(-400,400),Random(-400,400),-1000,0,0,0,0,0,220)
   Stop
   }
}

Actor TSIPortalEffect : NemesisFragmentPortal
{
Scale 0.5
-BRIGHT
States
{
  Spawn:
    TNT1 A 0 A_SetTranslucent(0)
	TNT1 A 0 A_PlaySound("tsi/openblueportal",CHAN_VOICE)
	TNT1 A 20 Bright
    KFEF ABCD 2 Bright A_Fadein(0.3)
	KFEF DEFGHI 3 Bright
	KFEF JKLMNOP 4 Bright
	KFEF QRSTUVWXYZ 3 Bright
	TNT1 A 0 A_PlaySound("tsi/closeblueportal",CHAN_VOICE)
	KFEG ABCDEFGHIJ 1 Bright
	TNT1 A 0 A_PlaySound("tsi/endblueportal",CHAN_VOICE)
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("ArmorParticleBlue",Random(-2,2),Random(-2,2),Random(-2,2),Random(-6,6),Random(-6,6),Random(-6,6),Random(-20,20),0,64)
	KFED ABCDEFGHIJKLMNOPQRSTUVWXYZ 2 Bright
	KFEW ABC 2 Bright A_Fadeout(0.3,0)
	TNT1 A 200
	Stop
	}
}

Actor TSISPExp : TSIPortalEffect
{
States
{
  Spawn:
    TNT1 A 0
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("ArmorParticleBlue",Random(-2,2),Random(-2,2),Random(-2,2),Random(-6,6),Random(-6,6),Random(-6,6),Random(-20,20),0,64)
	KFED ABCDEFGHIJKLMNOPQRSTUVWXYZ 2 Bright
	KFEW ABC 2 Bright A_Fadeout(0.3,0)
	TNT1 A 200
	Stop
	}
}