//Not sure if this could be considered coding or a cursed spell for summoning the devil

ACTOR MonsterRemover
{
    +NOGRAVITY
	States 
	{
		Spawn:  
			TNT1 A 0 NoDelay A_RadiusGive("MonsterRemoverItem",16383,RGF_MONSTERS|RGF_NOSIGHT)
			stop
	}
}

ACTOR Heartbeat
{
    +NOGRAVITY
	States 
	{
		Spawn:  
			TNT1 A 0 NoDelay A_RadiusGive("SamaraHeartbeatLow",16383,RGF_PLAYERS|RGF_NOSIGHT)
			stop
	}
}

ACTOR HellPlayer
{
    +NOGRAVITY
	States 
	{
		Spawn:  
			TNT1 A 0 NoDelay A_RadiusGive("SamaraScarer",16383,RGF_PLAYERS|RGF_NOSIGHT)
			stop
	}
}

ACTOR Distracter
{
    +NOGRAVITY
	States 
	{
		Spawn:  
			TNT1 A 0 NoDelay A_RadiusGive("SamaradistractGiver",16383,RGF_PLAYERS|RGF_NOSIGHT)
			stop
	}
}

//781 = Samara
//782 = Samara distractrions and sound emitters
//783 = Ghouls

Actor Samara : WeaverBonnie //Ghoul's Forest: Complex Doom edition
{ //Scripted (Can break the spooky spawn limit as well as the dice removing the enemy)
//Creator: Fluffy
//Origin: Nexus Infinity
//Sprite: SAMA
//Title: "Samara Morgan"  
Scale 0.22
Health 16383
Renderstyle Translucent
DamageFactor 0.5
Seesound "samara/see"
ActiveSound "samara/active"
Attacksound ""
Painsound "samara/pain"
Deathsound "samara/death"
Tag "\c[v2]Samara Morgan\c-"
BloodColor "White" //COOM
BloodType "NewBlood"
DropItem ""
-SHOOTABLE
-BOSS
-QUICKTORETALIATE
+NOPAIN
+LOOKALLAROUND
+SEEINVISIBLE
+AVOIDMELEE
+GHOST
var int user_paintoken;
var int user_seetoken;
var int user_activetoken;
var int user_aggressiveness;
var int user_tleg;
var int user_visible;
var int user_chasespeed;
States
{
  Spawn:
   TNT1 A 0
   TNT1 A 0 A_PlaySound("samara/ambient",5,1.0,TRUE)
   TNT1 A 0 ACS_NamedExecuteAlways("SamaraStarter",0)
   TNT1 A 0 A_SetUserVar("user_chasespeed",20)
  SpawnLoop:
   SAMA AABB 10 Bright A_LookEx(LOF_FULLVOLSEESOUND,0,0,0,360,"SeeStart")
   Loop
  Idle:
   TNT1 A 0 A_JumpIf(user_activetoken == 1,1)
   Goto SpawnLoop
   SAMA A 1 A_SetTranslucent(1)
   TNT1 A 0 A_ChangeFlag(SOLID,0)
   TNT1 A 0 A_ChangeFlag(SHOOTABLE,0)
   TNT1 A 0 A_ChangeFlag(NOPAIN,1)
   TNT1 A 0 A_Changeflag(FLOAT,0)
   TNT1 A 0 A_Changeflag(NOCLIP,0)
   TNT1 A 0 A_SetUserVar("user_paintoken",0)
   TNT1 A 0 A_SetUserVar("user_visible",1)
   TNT1 A 0 A_SetUserVar("user_script",Random(500,1500))
  IdleLoop:
   SAMA AB 5 Bright A_Wander
   TNT1 A 0 A_Look
   TNT1 A 0 A_SpawnItemEx("HumanishStep2",0,0,2,0,0,-20)
   SAMA DE 5 Bright A_Wander
   TNT1 A 0 A_Look
   SAMA FG 5 Bright A_Wander
   TNT1 A 0 A_Look
   TNT1 A 0 A_SpawnItemEx("HumanishStep2",0,0,2,0,0,-20)
   SAMA HI 5 Bright A_Wander
   TNT1 A 0 A_Look
   Loop
  SeeStart:
   SAMA AB 5 Bright A_Chase("Prepare","Prepare")
   TNT1 A 0 A_SpawnItemEx("HumanishStep2",0,0,2,0,0,-20)
   TNT1 A 0 A_JumpIfTargetInLOS("Prepare",10,JLOSF_TARGETLOS)
   SAMA DEFG 5 Bright A_Chase("Prepare","Prepare")
   TNT1 A 0 A_JumpIfTargetInLOS("Prepare",10,JLOSF_TARGETLOS)
   TNT1 A 0 A_SpawnItemEx("HumanishStep2",0,0,2,0,0,-20)
   SAMA HI 5 Bright A_Chase("Prepare","Prepare")
   TNT1 A 0 A_JumpIfTargetInLOS("Prepare",10,JLOSF_TARGETLOS)
   Loop
  HideAttacking:
   TNT1 A 0 A_Stop
   TNT1 A 0 A_ChangeFlag(NOPAIN,1)
   TNT1 A 0 A_Changeflag(FLOAT,0)
   TNT1 A 0 A_Changeflag(NOCLIP,0)
   TNT1 A 0 A_Changeflag(FLOORHUGGER,0)
   TNT1 A 0 A_SetUserVar("user_paintoken",0)
   TNT1 A 0 A_SetUserVar("user_script",Random(500,1500))
   TNT1 A 0 A_SetUserVar("user_terrortoken",0)
   TNT1 A 0 A_SetUserVar("user_visible",0)
   SAMA J 1 A_Pain
   SAMA JJJJJJJJJJJJJJJJJJ 1 Bright A_FadeOut(0.06,0)
   TNT1 A 0 A_ChangeFlag(SOLID,0)
   TNT1 A 0 A_ChangeFlag(SHOOTABLE,0)
   TNT1 A 0 A_JumpIf(user_aggressiveness == 1,"aggressive")
   TNT1 A 0
   Goto SeeHidden
  Hide:
   TNT1 A 0 A_Stop
   TNT1 A 0 A_ChangeFlag(NOPAIN,1)
   TNT1 A 0 A_Changeflag(FLOAT,0)
   TNT1 A 0 A_Changeflag(NOCLIP,0)
   TNT1 A 0 A_SetUserVar("user_paintoken",0)
   TNT1 A 0 A_SetUserVar("user_script",Random(500,1500))
   TNT1 A 0 A_SetUserVar("user_terrortoken",0)
   TNT1 A 0 A_SetUserVar("user_visible",0)
   SAMA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 Bright A_FadeOut(0.03,0)
   TNT1 A 0 A_ChangeFlag(SOLID,0)
   TNT1 A 0 A_ChangeFlag(SHOOTABLE,0)
   Goto SeeHidden
  Aggressive:
   TNT1 A 0 A_SetUserVar("user_script",Random(1400,1700))
  SeeHidden:
   TNT1 A 0 A_Jump(253,3)
   TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("CheckHalloween") >= 1,2)
   TNT1 A 0 A_GiveToTarget("SamaraLightningGiver",1)
   TNT1 A 5 A_Chase("","",CHF_NOPLAYACTIVE)
   TNT1 A 0 A_JumpIf(user_script >= 2000,"Teleport")
   TNT1 A 0 A_SetUserVar("user_script",user_script+Random(1,4))
   Loop
  TeleportToPlayer:
   TNT1 A 0 A_ChangeFlag(NOPAIN,1)
   TNT1 A 0 A_ChangeFlag(SOLID,0)
   TNT1 A 0 A_ChangeFlag(SHOOTABLE,0)
   SAMA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 Bright A_FadeOut(0.03,0)
   TNT1 A 0 A_SetUserVar("user_seetoken",0)
   TNT1 A 0 A_SetUserVar("user_visible",0)
  Teleport:
   TNT1 A 0 ACS_NamedExecuteAlways("TeleportSourceToTarget",0,64.0)
   TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 5 A_Wander
  Appear:
   TNT1 A 0 A_ChangeFlag(SOLID,1)
   TNT1 A 0 A_ChangeFlag(SHOOTABLE,1)
   TNT1 A 0 A_SetUserVar("user_visible",1)
   TNT1 A 0 A_FadeIn(0.03)
   SAMA A 1 Bright A_Chase("","")
   SAMA AAAA 1 Bright A_FadeIn(0.03)
   TNT1 A 0 A_FadeIn(0.03)
   SAMA B 1 Bright A_Chase("","")
   SAMA BBBB 1 Bright A_FadeIn(0.03)
   TNT1 A 0 A_SpawnItemEx("HumanishStep2",0,0,2,0,0,-20)
   TNT1 A 0 A_FadeIn(0.03)
   SAMA D 1 Bright A_Chase("","")
   SAMA DDDD 1 Bright A_FadeIn(0.03)
   TNT1 A 0 A_FadeIn(0.03)
   SAMA E 1 Bright A_Chase("","")
   SAMA EEEE 1 Bright A_FadeIn(0.03)
   TNT1 A 0 A_FadeIn(0.03)
   SAMA F 1 Bright A_Chase("","")
   SAMA FFFF 1 Bright A_FadeIn(0.03)
   TNT1 A 0 A_FadeIn(0.03)
   SAMA G 1 Bright A_Chase("","")
   SAMA GGGG 1 Bright A_FadeIn(0.03)
   TNT1 A 0 A_FadeIn(0.03)
   TNT1 A 0 A_SpawnItemEx("HumanishStep2",0,0,2,0,0,-20)
   SAMA H 1 Bright A_Chase("","")
   SAMA HHHH 1 Bright A_FadeIn(0.03)
   TNT1 A 0 A_FadeIn(0.03)
   SAMA I 1 Bright A_Chase("","")
   SAMA IIII 1 Bright A_FadeIn(0.03)
  Appeared:
   TNT1 A 0 A_ChangeFlag(NOPAIN,0)
  See:
   TNT1 A 0 A_JumpIf(user_terrortoken == 1,"Hide")
   TNT1 A 0 A_JumpIf(user_paintoken >= 10,"Hide")
   TNT1 A 0 A_ChangeFlag(SOLID,1)
   TNT1 A 0 A_ChangeFlag(SHOOTABLE,1)
   TNT1 A 0 A_ChangeFlag(NOPAIN,0)
   TNT1 A 0 A_Jump(200,2)
   TNT1 A 0 A_JumpIfTargetInLOS("Attack")
   TNT1 A 0 A_JumpIfCloser(250,"TeleportToPlayer")
   SAMA AB 5 Bright A_Wander
   TNT1 A 0 A_SpawnItemEx("HumanishStep2",0,0,2,0,0,-20)
   SAMA DE 5 Bright A_Wander
   TNT1 A 0 A_JumpIfCloser(250,"TeleportToPlayer")
   SAMA FG 5 Bright A_Wander
   TNT1 A 0 A_SpawnItemEx("HumanishStep2",0,0,2,0,0,-20)
   TNT1 A 0 A_JumpIfCloser(250,"TeleportToPlayer")
   SAMA HI 5 Bright A_Wander
   TNT1 A 0 A_Warp(AAPTR_DEFAULT,0,0,0,0,WARPF_TESTONLY,1)
   Goto Disappear
  SeeLoop:
   TNT1 A 0 A_JumpIfCloser(250,"TeleportToPlayer")
   SAMA AB 5 Bright Fast A_Chase("Disappear","Attack")
   TNT1 A 0 A_SpawnItemEx("HumanishStep2",0,0,2,0,0,-20)
   TNT1 A 0 A_Jump(128,2)
   TNT1 A 0 A_JumpIfTargetInLOS("Attack",10,JLOSF_TARGETLOS)
   TNT1 A 0 A_CheckSight(2)
   TNT1 A 0 A_JumpIfCloser(250,"Disappear")
   SAMA DE 5 Bright Fast A_Chase("Disappear","Attack")
   TNT1 A 0 A_Jump(128,2)
   TNT1 A 0 A_JumpIfTargetInLOS("Attack",10,JLOSF_TARGETLOS)
   TNT1 A 0 A_JumpIfCloser(250,"TeleportToPlayer")
   SAMA FG 5 Bright Fast A_Chase("Disappear","Attack")
   TNT1 A 0 A_Jump(128,2)
   TNT1 A 0 A_JumpIfTargetInLOS("Attack",10,JLOSF_TARGETLOS)
   TNT1 A 0 A_SpawnItemEx("HumanishStep2",0,0,2,0,0,-20)
   TNT1 A 0 A_CheckSight(2)
   TNT1 A 0 A_JumpIfCloser(250,"Disappear")
   SAMA HI 5 Bright Fast A_Chase("Disappear","Attack")
   TNT1 A 0 A_JumpIf(user_seetoken >= 15,"TeleportToPlayer")
   TNT1 A 0 A_SetUserVar("user_seetoken",user_seetoken+1)
   Loop
  Disappear:
   TNT1 A 0 A_Jump(100,"Attack")
   TNT1 A 0 A_ChangeFlag(NOPAIN,0)
   TNT1 A 0 A_ChangeFlag(SOLID,0)
   TNT1 A 0 A_SetUserVar("user_visible",0)
   TNT1 A 0 A_FadeOut(0.06,0)
   SAMA A 1 Bright A_Wander
   SAMA AAAA 1 Bright A_FadeOut(0.03,0)
   TNT1 A 0 A_FadeOut(0.06,0)
   SAMA B 1 Bright A_Wander
   SAMA BBBB 1 Bright A_FadeOut(0.03,0)
   TNT1 A 0 A_SpawnItemEx("HumanishStep2",0,0,2,0,0,-20)
   TNT1 A 0 A_FadeOut(0.06,0)
   SAMA D 1 Bright A_Wander
   SAMA DDDD 1 Bright A_FadeOut(0.03,0)
   TNT1 A 0 A_FadeOut(0.06,0)
   SAMA E 1 Bright A_Wander
   SAMA EEEE 1 Bright A_FadeOut(0.03,0)
   TNT1 A 0 A_FadeOut(0.06,0)
   SAMA F 1 Bright A_Wander
   SAMA FFFF 1 Bright A_FadeOut(0.03,0)
   TNT1 A 0 A_FadeOut(0.06,0)
   SAMA G 1 Bright A_Wander
   SAMA GGGG 1 Bright A_FadeOut(0.03,0)
   TNT1 A 0 A_FadeOut(0.06,0)
   TNT1 A 0 A_SpawnItemEx("HumanishStep2",0,0,2,0,0,-20)
   SAMA H 1 Bright A_Wander
   SAMA HHHH 1 Bright A_FadeOut(0.03,0)
   TNT1 A 0 A_FadeOut(0.06,0)
   SAMA I 1 Bright A_Wander
   SAMA IIII 1 Bright A_FadeOut(0.03,0)
   TNT1 A 0 A_ChangeFlag(SHOOTABLE,0)
  RandomAttack:
   TNT1 A 10 A_Wander
   TNT1 A 0 A_Jump(15,"AppearAndAttack")
   Loop
  Scare:
   TNT1 A 0 A_Stop
   TNT1 A 0 A_StopSound(CHAN_VOICE)
   TNT1 A 0 A_GiveToTarget("SamaraScarer",1)
  Vanish:
   TNT1 A 0 A_ChangeFlag(NOPAIN,1)
   TNT1 A 0 A_ChangeFlag(SOLID,0)
   TNT1 A 0 A_ChangeFlag(SHOOTABLE,0)
   TNT1 A 0 A_Changeflag(FLOAT,0)
   TNT1 A 0 A_Changeflag(NOCLIP,0)
   TNT1 A 0 A_Changeflag(FLOORHUGGER,0)
   TNT1 A 0 A_SetTranslucent(0)
   TNT1 A 0 A_SetUserVar("user_terrortoken",0)
   TNT1 A 0 A_SetUserVar("user_paintoken",0)
   TNT1 A 0 A_SetUserVar("user_visible",0)
   TNT1 A 35 A_SetUserVar("user_script",Random(500,1200))
   TNT1 A 0 A_PlaySound("samara/taunt",CHAN_VOICE,1.0,FALSE,ATTN_NONE)
   TNT1 A 0 A_JumpIf(user_aggressiveness == 1,"aggressive")
   TNT1 A 0
   Goto SeeHidden
  AppearAndAttack:
   TNT1 A 0 A_ChangeFlag(SHOOTABLE,1)
   TNT1 A 0 A_SetUserVar("user_visible",1)
   SAMA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 Bright A_FadeOut(0.03,0)
  Attack:
   TNT1 A 0 A_Stop
   TNT1 A 0 A_ChangeFlag(NOPAIN,0)
   TNT1 A 0 A_ChangeFlag(SOLID,1)
   TNT1 A 0 A_Changeflag(FLOAT,1)
   TNT1 A 0 A_Changeflag(NOCLIP,1)
   TNT1 A 0 A_Changeflag(FLOORHUGGER,1)
   TNT1 A 0 A_SetTranslucent(1)
   TNT1 A 0 A_PlaySound("samara/attack",CHAN_VOICE)
   TNT1 A 0 A_SetUserVar("user_terrortoken",1)
  AttackLoop:
   TNT1 A 0 A_Recoil(-user_chasespeed)
   SAMA J 1 Bright A_FaceTarget
   TNT1 A 0 A_JumpIfCloser(40,"Scare")
   TNT1 A 0 A_Stop
   TNT1 A 0 A_Recoil(-user_chasespeed)
   SAMA J 1 Bright A_FaceTarget
   TNT1 A 0 A_JumpIfCloser(40,"Scare")
   TNT1 A 0 A_Stop
   TNT1 A 0 A_Recoil(-user_chasespeed)
   SAMA J 1 Bright A_FaceTarget
   TNT1 A 0 A_JumpIfCloser(40,"Scare")
   TNT1 A 0 A_Stop
   TNT1 A 0 A_Recoil(-user_chasespeed)
   SAMA J 1 Bright A_FaceTarget
   TNT1 A 0 A_JumpIfCloser(40,"Scare")
   TNT1 A 0 A_Stop
   TNT1 A 0 A_Recoil(-user_chasespeed)
   SAMA K 1 Bright A_FaceTarget
   TNT1 A 0 A_JumpIfCloser(40,"Scare")
   TNT1 A 0 A_Stop
   TNT1 A 0 A_Recoil(-user_chasespeed)
   SAMA K 1 Bright A_FaceTarget
   TNT1 A 0 A_JumpIfCloser(40,"Scare")
   TNT1 A 0 A_Stop
   TNT1 A 0 A_Recoil(-user_chasespeed)
   SAMA K 1 Bright A_FaceTarget
   TNT1 A 0 A_JumpIfCloser(40,"Scare")
   TNT1 A 0 A_Stop
   TNT1 A 0 A_Recoil(-user_chasespeed)
   SAMA K 1 Bright A_FaceTarget
   TNT1 A 0 A_JumpIfCloser(40,"Scare")
   TNT1 A 0 A_Stop
   Loop
  Prepare:
   TNT1 A 0 A_SetUserVar("user_activetoken",1)
   TNT1 A 0 A_ChangeFlag(SOLID,0)
   TNT1 A 0 A_FadeOut(0.03,0)
   SAMA A 1 Bright A_Wander
   SAMA AAAA 1 Bright A_FadeOut(0.03,0)
   TNT1 A 0 A_FadeOut(0.03,0)
   SAMA B 1 Bright A_Wander
   SAMA BBBB 1 Bright A_FadeOut(0.03,0)
   TNT1 A 0 A_SpawnItemEx("HumanishStep2",0,0,2,0,0,-20)
   TNT1 A 0 A_FadeOut(0.03,0)
   SAMA D 1 Bright A_Wander
   SAMA DDDD 1 Bright A_FadeOut(0.03,0)
   TNT1 A 0 A_FadeOut(0.03,0)
   SAMA E 1 Bright A_Wander
   SAMA EEEE 1 Bright A_FadeOut(0.03,0)
   TNT1 A 0 A_FadeOut(0.03,0)
   SAMA F 1 Bright A_Wander
   SAMA FFFF 1 Bright A_FadeOut(0.03,0)
   TNT1 A 0 A_FadeOut(0.03,0)
   SAMA G 1 Bright A_Wander
   SAMA GGGG 1 Bright A_FadeOut(0.03,0)
   TNT1 A 0 A_FadeOut(0.03,0)
   TNT1 A 0 A_SpawnItemEx("HumanishStep2",0,0,2,0,0,-20)
   SAMA H 1 Bright A_Wander
   SAMA HHHH 1 Bright A_FadeOut(0.03,0)
   TNT1 A 0 A_FadeOut(0.03,0)
   SAMA I 1 Bright A_Wander
   SAMA IIII 1 Bright A_FadeOut(0.03,0)
  AndThenThereWereNone:
   TNT1 AAAAAAAAAAAAAAA 0 A_Wander
   TNT1 A 90 A_Stopsound(5)
   TNT1 A 0 ACS_NamedExecuteAlways("InfinityMusic",0,9999,3498)
   TNT1 A 60 A_RadiusGive("MonsterRemoverItem",16383,RGF_MONSTERS|RGF_NOSIGHT) //40
   //TNT1 A 40 A_PlaySound("Impostor/FakeVanishSound",7,1.0,FALSE,ATTN_NONE)
   TNT1 A 400 A_PlaySound("samara/wind",6,1.0,FALSE,ATTN_NONE)
   TNT1 A 0 A_PlaySound("samara/hod",7,1.0,FALSE,ATTN_NONE)
   TNT1 A 400 ACS_NamedExecuteAlways("InfinityMusic",0,2073,3499)
   TNT1 A 400 A_SpawnItemEx("SamaraMusicPlayerStart",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0,782)
   TNT1 A 560 A_RadiusGive("SamaraHeartbeatLow",16383,RGF_PLAYERS|RGF_NOSIGHT)
   TNT1 A 180 A_RadiusGive("SamaraHellPlayerGiver",16383,RGF_PLAYERS|RGF_NOSIGHT)
   TNT1 A 0 A_JumpIf(user_tleg == 0,4)
   TNT1 A 0 A_ChangeFlag(ALWAYSFAST,1)
   TNT1 A 0 ACS_NamedExecuteAlways("SamaraTrueLeg",0)
   TNT1 A 0 A_RadiusGive("SamaraDistractGiver2",16383,RGF_PLAYERS|RGF_NOSIGHT)
   TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("CheckHalloween") >= 1,2)
   TNT1 A 0 A_RadiusGive("SamaradistractGiver",16383,RGF_PLAYERS|RGF_NOSIGHT)
   TNT1 A 0 A_SetUserVar("user_script",0)
   TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 20 ACS_NamedExecuteAlways("SamaraDarken",0,1)
   TNT1 A 0 A_ChangeFlag(BOSS,1)
   Goto SeeHidden
  Pain:
   TNT1 A 0 A_JumpIf(user_terrortoken == 1,"HideAttacking")
   TNT1 A 0 A_JumpIf(user_paintoken >= 10,"Hide")
   TNT1 A 0 A_SetUserVar("user_paintoken",user_paintoken+random(1,2))
   SAMA A 5 A_Pain
   Goto See
  XDeath:
  Death:
   TNT1 A 0 A_Stop
   TNT1 A 0 A_SetTranslucent(1)
   TNT1 A 0 A_Changeflag(FLOAT,0)
   TNT1 A 0 A_Changeflag(NOCLIP,0)
   TNT1 A 0 A_Changeflag(FLOORHUGGER,0)
   TNT1 A 0 A_SpawnItemEx("SamaraDeathCall",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
   TNT1 A 0 A_SetUserVar("user_script",0)
   SAMA A 1 Bright A_NoBlocking
   TNT1 A 0 ACS_NamedExecuteAlways("SamaraRemoveEntities",0)
   SAMA A 90 Bright A_Scream
   TNT1 A 0 A_SpawnItemEx("SamaraDeathLight",0,0,0,0)
   SAMA AAAAAAAAAAAAAAAAAAAA 2 Bright ACS_NamedExecuteAlways("SamaraDarken",0,1,1)
   SAMA A 35 Bright
   TNT1 A 0 A_Quake(7,540,0,5000,"worlds/quake")
   TNT1 A 0 A_PlaySound("brain/spit",6,1.0,0,ATTN_NONE)
   SAMA A 35 Bright A_SpawnItemEx("SamaraFloorDeath",0,0,0,0)
  DeathLoop:
   TNT1 A 0 A_JumpIf(user_script >= 73,"DeathEnd")
   TNT1 A 0 A_SetUserVar("user_script",user_script+1)
   TNT1 A 0 A_SpawnItemEx("NemesisRemiliaLightning",Random(-400,400),Random(-400,400),-1000,0,0,0,0,0,200)
   SAMA A 5 Bright A_SpawnItemEx("SamaraTracer",0,0,0,12,12,0,Random(0,360),0,164)
   Loop
  DeathEnd:
   SAMA A 44 Bright
   TNT1 A 0 A_JumpIf(user_tleg == 1,"DeathEnd2")
   SAMA A 20 Bright A_RadiusGive("SamaraFlashGiver",16383,RGF_PLAYERS|RGF_NOSIGHT)
   TNT1 A 0 A_SpawnItemEx("NemesisSphere",-60,0,0,0,0,0,45)
   TNT1 A 0 A_SpawnItemEx("SignetOfNecromancy",-60,0,0,0,0,0,90)
   TNT1 A 0 A_SpawnItemEx("LegendaryRune",-60,0,0,0,0,0,135)
   TNT1 A 0 A_SpawnItemEx("PhaseSphere",-60,0,0,0,0,0,180)
   TNT1 A 0 A_SpawnItemEx("SkullOfPower",-60,0,0,0,0,0,225)
   TNT1 A 0 A_SpawnItemEx("DemonicChalice",-60,0,0,0,0,0,270)
   TNT1 A 0 A_SpawnItemEx("DiceOfReset",-60,0,0,0,0,0,315) //ScrollOfTerror
   TNT1 A 0 A_SpawnItemEx("NemesisArmor",-60,0,0,0,0,0,360)
   TNT1 A 0 ACS_ExecuteAlways(668)
   TNT1 A 0 ACS_NamedExecuteAlways("SamaraDropRunes",0)
   TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 2 ACS_NamedExecuteAlways("SamaraDarken",0,2)
   TNT1 A 4000
   Stop
  DeathEnd2:
   SAMA A 20 Bright A_RadiusGive("SamaraFlashGiver",16383,RGF_PLAYERS|RGF_NOSIGHT)
   TNT1 A 0 A_SpawnItemEx("NemesisMegaSphere",-60,0,0,0,0,0,45)
   TNT1 A 0 A_SpawnItemEx("SignetOfNecromancy",-60,0,0,0,0,0,90)
   TNT1 A 0 A_SpawnItemEx("PresentRuneSpawner",-60,0,0,0,0,0,135)
   TNT1 A 0 A_SpawnItemEx("PhaseSphere",-60,0,0,0,0,0,180)
   TNT1 A 0 A_SpawnItemEx("SkullOfPower",-60,0,0,0,0,0,225)
   TNT1 A 0 A_SpawnItemEx("DemonicChalice",-60,0,0,0,0,0,270)
   TNT1 A 0 A_SpawnItemEx("DiceOfReset",-60,0,0,0,0,0,315) //ScrollOfTerror
   TNT1 A 0 A_SpawnItemEx("LegendaryInvulnerabilitySphere",-60,0,0,0,0,0,360)
   TNT1 A 0 ACS_ExecuteAlways(668)
   TNT1 A 0 ACS_NamedExecuteAlways("SamaraDropRunes",0)
   TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 2 ACS_NamedExecuteAlways("SamaraDarken",0,2)
   TNT1 A 4000
   Stop
   }
}

//LEGM2069 = True active LEGM2070 = Death LEGM 2071 = Transformation

//RUNES

Actor SamaraGotVitality : Inventory {inventory.maxamount 999}
Actor SamaraGotAgility : Inventory {inventory.maxamount 999}
Actor SamaraGotLegendary : Inventory {inventory.maxamount 999}
Actor SamaraGotTrueLegendary : Inventory {inventory.maxamount 999}
Actor SamaraGotTrueLegendary2 : Inventory {inventory.maxamount 999}
Actor SamaraGotVoid : Inventory {inventory.maxamount 999}
Actor SamaraGotEnraged : Inventory {inventory.maxamount 999}
Actor SamaraGotTerminator : Inventory {inventory.maxamount 999}
Actor SamaraGotTerminator2 : Inventory {inventory.maxamount 999}
Actor SamaraGotNemesis : Inventory {inventory.maxamount 999}
Actor SamaraGotSpread : Inventory {inventory.maxamount 999}
Actor SamaraGotStrength : Inventory {inventory.maxamount 999}
Actor SamaraGotHighJump : Inventory {inventory.maxamount 999}
Actor SamaraGotResistance : Inventory {inventory.maxamount 999}

ACTOR SamaraTracer
{
	Radius 5
	Height 5
	Speed 25
	RenderStyle ADD
	Alpha 0.67
	Scale 0.5
	PROJECTILE
	+FLOORHUGGER
	+THRUGHOST
	-NOGRAVITY
	+DONTSPLASH
	+CLIENTSIDEONLY
	Seesound "weapons/diasht"
	DeathSound "weapons/firex3"   
	States
	{
	Spawn:
		NULL A 0 A_SpawnItem("SamaraTracerPuff",0,0)
		NULL A 1 Bright A_CStaffMissileSlither
		loop
	Death:
		BMX9 KL 4 Bright
		BMX9 MNO 3 Bright
		stop
	}
}

ACTOR SamaraTracerPuff
{
	Radius 1
	Height 1
	Speed 0
	RENDERSTYLE ADD
	ALPHA 0.67
	Scale 0.5
	PROJECTILE
	+FLOORHUGGER
	-NOGRAVITY
	+DONTSPLASH
	+CLIENTSIDEONLY
	States
	{
	Spawn:
		BMX9 ABCDEFGHIJKL 3 Bright
		stop
   }
}

Actor SamaraDeathCall
{
Monster
Scale 1
Health 0x7FFFFFFF
Mass 0x7FFFFFFF
Speed 1
Radius 1
Height 1
Species "Hell"
+NOCLIP
+NOPAIN
+NOFEAR
-SOLID
-SHOOTABLE
-COUNTKILL
States
{
  Spawn:
    TNT1 A 0
    TNT1 A 190 ACS_NamedExecuteAlways("InfinityMusic",0,9999,3499)
    TNT1 A 4200 ACS_NamedExecuteAlways("InfinityMusic",0,2070,3500)
  Death:
    TNT1 A 1 A_SpawnItemEx("SamaraDeathCall2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
    Stop
  }
}

Actor SamaraDeathCall2 : SamaraDeathCall
{
States
{
 Spawn:
   TNT1 A 0
   TNT1 A 190 ACS_NamedExecuteAlways("InfinityMusic",0,9999,3501)
   TNT1 A 1 A_Die
   Goto Death
 Death:
   TNT1 A 5
   Stop
   }
}

Actor SamaraMusicPlayerStart : SamaraDeathCall
{
States
{
 Spawn:
   TNT1 A 3675
   TNT1 A 1 A_Jump(256,"Track1","Track2","Track3","Track4")
 Track1:
   TNT1 A 1 A_SpawnItemEx("SamaraMusicPlayer1",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0,782)
   Stop
 Track2:
   TNT1 A 1 A_SpawnItemEx("SamaraMusicPlayer2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0,782)
   Stop
 Track3:
   TNT1 A 1 A_SpawnItemEx("SamaraMusicPlayer3",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0,782)
   Stop
 Track4:
   TNT1 A 1 A_SpawnItemEx("SamaraMusicPlayer4",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0,782)
   Stop
   }
}

Actor SamaraMusicPlayer1 : SamaraDeathCall
{
States
{
 Spawn:
   TNT1 A 0
   TNT1 A 22000 ACS_NamedExecuteAlways("InfinityMusic",0,2068,3500)
   TNT1 A 190 ACS_NamedExecuteAlways("InfinityMusic",0,9999,3501)
 Death:
   TNT1 A 1 A_Jump(256,"Track2","Track3","Track4")
 Track2:
   TNT1 A 1 A_SpawnItemEx("SamaraMusicPlayer2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0,782)
   Stop
 Track3:
   TNT1 A 1 A_SpawnItemEx("SamaraMusicPlayer3",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0,782)
   Stop
 Track4:
   TNT1 A 1 A_SpawnItemEx("SamaraMusicPlayer4",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0,782)
   Stop
   }
}

Actor SamaraMusicPlayer2 : SamaraDeathCall
{
States
{
 Spawn:
   TNT1 A 0
   TNT1 A 17000 ACS_NamedExecuteAlways("InfinityMusic",0,2069,3500)
   TNT1 A 190 ACS_NamedExecuteAlways("InfinityMusic",0,9999,3501)
 Death:
   TNT1 A 1 A_Jump(256,"Track1","Track3","Track4")
 Track1:
   TNT1 A 1 A_SpawnItemEx("SamaraMusicPlayer1",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0,782)
   Stop
 Track3:
   TNT1 A 1 A_SpawnItemEx("SamaraMusicPlayer3",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0,782)
   Stop
 Track4:
   TNT1 A 1 A_SpawnItemEx("SamaraMusicPlayer4",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0,782)
   Stop
   }
}

Actor SamaraMusicPlayer3 : SamaraDeathCall
{
States
{
 Spawn:
   TNT1 A 0
   TNT1 A 18200 ACS_NamedExecuteAlways("InfinityMusic",0,2071,3500)
   TNT1 A 190 ACS_NamedExecuteAlways("InfinityMusic",0,9999,3501)
 Death:
   TNT1 A 1 A_Jump(256,"Track1","Track2","Track4")
 Track1:
   TNT1 A 1 A_SpawnItemEx("SamaraMusicPlayer1",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0,782)
   Stop
 Track2:
   TNT1 A 1 A_SpawnItemEx("SamaraMusicPlayer2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0,782)
   Stop
 Track4:
   TNT1 A 1 A_SpawnItemEx("SamaraMusicPlayer4",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0,782)
   Stop
   }
}

Actor SamaraMusicPlayer4 : SamaraDeathCall
{
States
{
 Spawn:
   TNT1 A 0
   TNT1 A 14100 ACS_NamedExecuteAlways("InfinityMusic",0,2072,3500)
   TNT1 A 190 ACS_NamedExecuteAlways("InfinityMusic",0,9999,3501)
 Death:
   TNT1 A 1 A_Jump(256,"Track1","Track2","Track3")
 Track1:
   TNT1 A 1 A_SpawnItemEx("SamaraMusicPlayer1",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0,782)
   Stop
 Track2:
   TNT1 A 1 A_SpawnItemEx("SamaraMusicPlayer2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0,782)
   Stop
 Track3:
   TNT1 A 1 A_SpawnItemEx("SamaraMusicPlayer3",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0,782)
   Stop
   }
}

Actor SamaraDeathLight : NemesisRemiliaResurrect
{
  States
  {
  Spawn:
	SWHI AAAAAA 3 Bright A_FadeIn(0.1)
	SWHI A 532 Bright
    Stop
	}
}

Actor SamaraSpirit : MainyuWhitePortal
{
Renderstyle Add
+NOTIMEFREEZE
-FORCEXYBILLBOARD
Scale 0.04
States
{
  Spawn:
   MLIU ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 Bright A_FadeIn(0.03)
   MLI2 ABCDE 1 Bright A_FadeIn(0.03)
  Weave:
   MLIU ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 Bright
   MLI2 ABCDE 1 Bright
   TNT1 A 0 A_Jump(128,"Fade")
   MLIU ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 Bright
   MLI2 ABCDE 1 Bright
  Fade:
   MLIU ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 Bright A_FadeOut(0.03,0)
   MLI2 ABCDE 1 Bright A_FadeOut(0.03,0)
   Stop
   }
}

ACTOR SamaraFloorDeath
{
RenderStyle Add
Alpha 0
Height 1
Radius 1
Reactiontime 45
+NOBLOCKMAP
+NOINTERACTION
+FLOORHUGGER
+CLIENTSIDEONLY
+BRIGHT
States
{
  Spawn:
	NADA AAAAAAAAAAAAAAAAAAA 1 Bright A_FadeIn(0.05)
  Active:
    TNT1 A 0 A_SpawnItemEx("SignetRessurectionFire2",Random(-40,40),Random(-40,40),0,0,0,0)
	NADA AAAAAAAAAA 1 Bright A_SpawnItemEx("SamaraSpirit",Random(-60,60),Random(-60,60),0,0,0,Random(2,4),Random(0,360),0,220)
	TNT1 A 0 A_CountDown
	Loop
  Death:
    TNT1 A 0
	Stop
	}
}

Actor SamaraHeartCount : Inventory {inventory.maxamount 3}

ACTOR SamaraScarer : Crusaderbuff
{
	States 
	{
		Pickup:
		    TNT1 A 1 A_GiveInventory("SamaraHeartCount",1)
			TNT1 A 0 ACS_NamedExecuteAlways("SamaraScare",0,1)
			stop
	}
}

ACTOR MonsterRemoverItem : Crusaderbuff
{
	States 
	{
		Pickup:
		    TNT1 A 1
			TNT1 A 0 A_RemoveChildren(1)
			TNT1 A 0 ACS_NamedExecuteAlways("ConsumeMonsters",0)
			stop
	}
}

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

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

Actor SamaraLightningGiver : Crusaderbuff
{
	States 
	{
		Pickup:
		    TNT1 A 1
			TNT1 A 0 ACS_NamedExecuteAlways("LightningFlashPlayer",0,1)
			stop
	}
}

ACTOR SamaraDistractGiver : Crusaderbuff
{
	States 
	{
		Pickup:
		    TNT1 A 1
			TNT1 A 0 A_SpawnItemEx("SamaraSoundEmitter",0,0,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0,782)
			TNT1 A 0 A_SpawnItemEx("SamaraDistractSpawner",0,0,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0,782)
			stop
	}
}

ACTOR SamaraDistractGiver2 : Crusaderbuff
{
	States 
	{
		Pickup:
		    TNT1 A 1
			TNT1 AAAA 0 A_SpawnItemEx("SamaraDistractSpawner2",0,0,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0,782)
			stop
	}
}

Actor SamaraDistractSpawner
{
Monster
Scale 1
Health 0x7FFFFFFF
Mass 0x7FFFFFFF
Speed 1
Radius 1
Height 1
Species "Player"
+NOCLIP
+NOPAIN
+NOFEAR
+FRIENDLY
-SOLID
-SHOOTABLE
-COUNTKILL
var int user_timer;
var int user_starttimer;
var int user_ghoulspawned;
var int user_ghoulcooldown;
var int user_aggressive;
States
{
  Spawn:
   TNT1 A 0
   TNT1 A 0 A_SetUserVar("user_ghoulcooldown",0)
   TNT1 A 0 A_SetUserVar("user_starttimer",Random(100,1000))
  Start:
   TNT1 A 0 A_JumpIf(user_starttimer <= 5,"Distract")
   TNT1 A 5 A_SetUserVar("user_starttimer",user_starttimer-1)
   TNT1 A 0 A_Warp(AAPTR_FRIENDPLAYER,0,0,0,0,WARPF_ABSOLUTEANGLE|WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE,"Start")
   Loop
  Idle:
   TNT1 A 0 A_JumpIf(user_timer >= 700,"Distract")
   TNT1 A 5 A_SetUserVar("user_timer",user_timer+Random(1,3))
   TNT1 A 0 A_Warp(AAPTR_FRIENDPLAYER,0,0,0,0,WARPF_ABSOLUTEANGLE|WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE,"Idle")
   Goto Death
  Distract:
   TNT1 A 1 A_Jump(100,"SpawnGhoulwait")
   TNT1 A 0
   Goto DistractOnly
  Aggressiveness:
   TNT1 A 0 ACS_NamedExecuteAlways("SamaraAggressiveness",0)
   TNT1 A 0 A_SetUserVar("user_aggressive",1)
  DistractOnly:
   TNT1 A 0 A_SetUserVar("user_timer",0)
   TNT1 A 1 A_SpawnItemEx("RandomGhoulDistract",Random(-40,40),Random(-40,40),Random(0,80),0,0,0,0,SXF_NOCHECKPOSITION)
   TNT1 A 0 A_SetUserVar("user_ghoulcooldown",user_ghoulcooldown+1)
   Goto Idle
  SpawnGhoulWait:
   TNT1 A 0 A_JumpIf(user_aggressive >= 1,2)
   TNT1 A 0 A_JumpIf(user_ghoulspawned >= 5,"Aggressiveness")
   TNT1 A 0
  SpawnGhoulWaitLoop:
   TNT1 A 1 A_CheckRange(800,"SpawnGhoul")
   TNT1 A 0 A_JumpIf(user_ghoulcooldown <= 2,"DistractOnly")
   Loop
  SpawnGhoul:
   TNT1 A 1 ACS_NamedExecuteAlways("SamaraSpawnGhoul",0)
   TNT1 A 0 A_SetUserVar("user_timer",0)
   TNT1 A 0 A_SetUserVar("user_ghoulcooldown",0)
   TNT1 A 0 A_SetUserVar("user_ghoulspawned",user_ghoulspawned+1)
   Goto Idle
  Death:
   TNT1 A 1 A_Fall
   Stop
   }
}

Actor SamaraDistractSpawner2 : SamaraDistractSpawner
{
States
{
  Spawn:
   TNT1 A 0
   TNT1 A 0 A_SetUserVar("user_ghoulcooldown",0)
   TNT1 A 0 A_SetUserVar("user_starttimer",Random(100,1000))
  Start:
   TNT1 A 0 A_JumpIf(user_starttimer <= 5,"Distract")
   TNT1 A 5 A_SetUserVar("user_starttimer",user_starttimer-1)
   TNT1 A 0 A_Warp(AAPTR_FRIENDPLAYER,0,0,0,0,WARPF_ABSOLUTEANGLE|WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE,"Start")
   Loop
  Idle:
   TNT1 A 0 A_JumpIf(user_timer >= 700,"Distract")
   TNT1 A 5 A_SetUserVar("user_timer",user_timer+Random(1,3))
   TNT1 A 0 A_Warp(AAPTR_FRIENDPLAYER,0,0,0,0,WARPF_ABSOLUTEANGLE|WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE,"Idle")
   Goto Death
  Distract:
   TNT1 A 1 A_Jump(100,"SpawnGhoulwait")
   TNT1 A 0
   Goto DistractOnly
  Aggressiveness:
   TNT1 A 0 ACS_NamedExecuteAlways("SamaraAggressiveness",0)
   TNT1 A 0 A_SetUserVar("user_aggressive",1)
  DistractOnly:
   TNT1 A 0 A_SetUserVar("user_timer",0)
   TNT1 A 1 //A_SpawnItemEx("RandomGhoulDistract",Random(-40,40),Random(-40,40),Random(0,80),0,0,0,0,SXF_NOCHECKPOSITION)
   TNT1 A 0 A_SetUserVar("user_ghoulcooldown",user_ghoulcooldown+1)
   Goto Idle
  SpawnGhoulWait:
   TNT1 A 0 A_JumpIf(user_aggressive >= 1,2)
   TNT1 A 0 A_JumpIf(user_ghoulspawned >= 5,"Aggressiveness")
   TNT1 A 0
  SpawnGhoulWaitLoop:
   TNT1 A 1 A_CheckRange(800,"SpawnGhoul")
   TNT1 A 0 A_JumpIf(user_ghoulcooldown <= 2,"DistractOnly")
   Loop
  SpawnGhoul:
   TNT1 A 1 ACS_NamedExecuteAlways("SamaraSpawnGhoul",0)
   TNT1 A 0 A_SetUserVar("user_timer",0)
   TNT1 A 0 A_SetUserVar("user_ghoulcooldown",0)
   TNT1 A 0 A_SetUserVar("user_ghoulspawned",user_ghoulspawned+1)
   Goto Idle
  Death:
   TNT1 A 1 A_Fall
   Stop
   }
}

Actor RandomGhoulDistract : RandomSpawner
{
+DROPPED
DropItem "HellfrostbiteDistract", 256, 1
DropItem "IodsaDistract", 256, 1
DropItem "JitterskullDistract", 256, 1
DropItem "ClownyDistract", 256, 1
DropItem "WeaverBonnieDistract", 256, 1
DropItem "ChokeDistract", 256, 1
DropItem "CreeperGhoulDistract", 256, 1
DropItem "ExetiorDistract", 256, 1
DropItem "BloodEyeDistract", 256, 1
DropItem "SjasDistract", 256, 1
DropItem "BNDDistract", 256, 1
DropItem "EyeSoreDistract", 256, 1
DropItem "SoulHarvesterDistract", 256, 1
DropItem "MistyDistract", 256, 1
DropItem "ImpostorDistract", 256, 1
DropItem "EmtalicDistract", 256, 1
DropItem "JugulumDistract", 256, 1
DropItem "NoiseDistract", 256, 1
DropItem "Sin-GenjitsuDistract", 256, 1
}

Actor SamaraGhoulSpawner : RandomSpawner
{
+DROPPED
DropItem "HellFrostBiteWeak", 256, 1
DropItem "GhoulIodsa", 256, 1
DropItem "BNDWeak", 256, 1
DropItem "EyesoreNoDrops", 256, 1
DropItem "SjasStronger", 256, 1
DropItem "CreeperGhoul", 256, 1
DropItem "Choke", 256, 1
DropItem "SoulHarvester", 256, 1
DropItem "MioHonda", 256, 1
DropItem "Misty", 256, 1
DropItem "Emtalic", 256, 1
DropItem "Jugulum", 256, 1
DropItem "JitterSkullWeak", 256, 1
DropItem "CorruptWeak", 256, 1
DropItem "BloodeyeWeak", 256, 1
DropItem "WeaverBonnieWeak", 256, 1
DropItem "ClownyWeak", 256, 1
DropItem "ExetiorWeak", 256, 1
DropItem "ImpostorGhoul", 256, 1
DropItem "Noise", 256, 1
DropItem "Sin-GenjitsuWeak", 256, 1
}

Actor SamaraSoundEmitter : SamaraDistractSpawner
{
States
{
  Spawn:
   TNT1 A 0
   TNT1 A 0 A_SetUserVar("user_starttimer",Random(50,600))
  Start:
   TNT1 A 0 A_JumpIf(user_starttimer <= 5,"PlaySound")
   TNT1 A 5 A_SetUserVar("user_starttimer",user_starttimer-1)
   TNT1 A 0 A_Warp(AAPTR_FRIENDPLAYER,0,0,0,0,WARPF_ABSOLUTEANGLE|WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE,"Start")
   Loop
  Idle:
   TNT1 A 0 A_JumpIf(user_timer >= 300,"PlaySound")
   TNT1 A 5 A_SetUserVar("user_timer",user_timer+Random(1,3))
   TNT1 A 0 A_Warp(AAPTR_FRIENDPLAYER,0,0,0,0,WARPF_ABSOLUTEANGLE|WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE,"Idle")
   Goto Death
  PlaySound:
   TNT1 A 0 A_SetUserVar("user_timer",0)
   TNT1 A 1 A_SpawnItemEx("SamaraPlaySound",Random(-1500,1500),Random(-1500,1500),Random(-40,150),0,0,0,0,SXF_NOCHECKPOSITION)
   Goto Idle
  Death:
   TNT1 A 1 A_Fall
   Stop
  }
}

Actor SamaraPlaySound : SamaraSoundEmitter
{
+NOGRAVITY
+NOCLIP
States
{
  Spawn:
   TNT1 A 0
   TNT1 A 5 A_JumpIf(ACS_NamedExecuteWithResult("CrowSkyCheck") == 1,"PlayOutside")
   TNT1 A 1 A_Playsound("samara/soundemitter",CHAN_VOICE)
   Stop
  PlayOutside:
   TNT1 A 1 A_Playsound("samara/soundemitterout",CHAN_VOICE)
   Stop
   }
}

Actor GhoulDistractBase : GenericBoss
{
-BOSS
-SOLID
-SHOOTABLE
-COUNTKILL
+QUICKTORETALIATE
Seesound ""
PainSound ""
Deathsound ""
Species "Hell"
Health 0x7FFFFFFF
Mass 0x7FFFFFFF
Speed 4
Scale 1
var int user_timer;
}

Actor Sin-GenjitsuDistract : GhoulDistractBase
{
scale 0.7
renderstyle Add
States
{
  Spawn:
   TNT1 A 35
  Idle:
   TNT1 A 0 A_JumpIf(user_timer >= 700,"Death")
   TNT1 A 0 A_SetUserVar("user_timer",user_timer+1)
   TNT1 A 0 A_Wander
   TNT1 A 1 A_Look
   Loop
  See:
   TNT1 A 0 A_JumpIfTargetInLOS(2,70,JLOSF_TARGETLOS)
   TNT1 A 5 A_Chase
   TNT1 A 1
   Loop
  Missile:
   TNT1 A 0 A_Playsound("singenjitsu/active",CHAN_VOICE)
   TNT1 AAA 0 A_SpawnItemEx("Red2huBossDeathFlame3",0,0,20,random(-1,1),random(-1,1),random(-1,1))
   SING AAAAAAAAAAAAAA 5 Bright A_JumpIfTargetInLOS("Death",50,JLOSF_TARGETLOS)
  Death:
   TNT1 A 0 A_StopSound(CHAN_VOICE)
   TNT1 A 1 A_Fall
   Stop
   }
}

Actor NoiseDistract : GhoulDistractBase
{
scale 0.12
renderstyle translucent
+FLOORHUGGER
States
{
  Spawn:
   TNT1 A 35
  Idle:
   TNT1 A 0 A_JumpIf(user_timer >= 700,"Death")
   TNT1 A 0 A_SetUserVar("user_timer",user_timer+1)
   TNT1 A 0 A_Wander
   TNT1 A 1 A_Look
   Loop
  See:
   TNT1 A 0 A_JumpIfTargetInLOS(2,70,JLOSF_TARGETLOS)
   TNT1 A 5 A_Chase
   TNT1 A 1
   Loop
  Missile:
   TNT1 A 0 A_Playsound("SCRE",CHAN_VOICE)
   GOST AAAAAAAAAAAAAA 5 Bright A_JumpIfTargetInLOS("Death",50,JLOSF_TARGETLOS)
  Death:
   TNT1 A 0 A_StopSound(CHAN_VOICE)
   TNT1 A 1 A_Fall
   Stop
   }
}

Actor JugulumDistract : GhoulDistractBase
{
Scale 0.20
renderstyle translucent
alpha 0.75
States
{
  Spawn:
   TNT1 A 35
  Idle:
   TNT1 A 0 A_JumpIf(user_timer >= 700,"Death")
   TNT1 A 0 A_SetUserVar("user_timer",user_timer+1)
   TNT1 A 0 A_Wander
   TNT1 A 1 A_Look
   Loop
  See:
   TNT1 A 0 A_JumpIfTargetInLOS(2,70,JLOSF_TARGETLOS)
   TNT1 A 5 A_Chase
   TNT1 A 1
   Loop
  Missile:
   TNT1 A 0 A_Playsound("juggy/pain",CHAN_VOICE)
   JUGY AAAAAAAAAAAAAA 5 Bright A_JumpIfTargetInLOS("Death",50,JLOSF_TARGETLOS)
  Death:
   TNT1 A 0 A_StopSound(CHAN_VOICE)
   TNT1 A 1 A_Fall
   Stop
   }
}

Actor EmtalicDistract : GhoulDistractBase
{
Scale 0.2
States
{
  Spawn:
   TNT1 A 35
  Idle:
   TNT1 A 0 A_JumpIf(user_timer >= 700,"Death")
   TNT1 A 0 A_SetUserVar("user_timer",user_timer+1)
   TNT1 A 0 A_Wander
   TNT1 A 1 A_Look
   Loop
  See:
   TNT1 A 0 A_JumpIfTargetInLOS(2,70,JLOSF_TARGETLOS)
   TNT1 A 5 A_Chase
   TNT1 A 1
   Loop
  Missile:
   TNT1 A 0 A_Playsound("RAMSTART",CHAN_VOICE)
   XEMT LMNLMNLMNLMNLMNLMNLMNLMN 3 Bright A_JumpIfTargetInLOS("Death",50,JLOSF_TARGETLOS)
  Death:
   TNT1 A 0 A_StopSound(CHAN_VOICE)
   TNT1 A 1 A_Fall
   Stop
   }
}

Actor ImpostorDistract : GhoulDistractBase
{
Scale 0.18
Alpha 0.8
RenderStyle Translucent
States
{
  Spawn:
   TNT1 A 35
  Idle:
   TNT1 A 0 A_JumpIf(user_timer >= 700,"Death")
   TNT1 A 0 A_SetUserVar("user_timer",user_timer+1)
   TNT1 A 0 A_Wander
   TNT1 A 1 A_Look
   Loop
  See:
   TNT1 A 0 A_JumpIfTargetInLOS(2,70,JLOSF_TARGETLOS)
   TNT1 A 5 A_Chase
   TNT1 A 1
   Loop
  Missile:
   TNT1 A 0 A_Playsound("Impostor/Taunt",CHAN_VOICE)
   ISUS AAAAAAAAAAAAAA 5 Bright A_JumpIfTargetInLOS("Death",50,JLOSF_TARGETLOS)
  Death:
   TNT1 A 0 A_StopSound(CHAN_VOICE)
   TNT1 A 1 A_Fall
   Stop
   }
}

Actor JitterskullDistract : GhoulDistractBase
{
Scale 0.24
Translation "112:127=80:95"
States
{
  Spawn:
   TNT1 A 35
  Idle:
   TNT1 A 0 A_JumpIf(user_timer >= 700,"Death")
   TNT1 A 0 A_SetUserVar("user_timer",user_timer+1)
   TNT1 A 0 A_Wander
   TNT1 A 1 A_Look
   Loop
  See:
   TNT1 A 0 A_JumpIfTargetInLOS(2,70,JLOSF_TARGETLOS)
   TNT1 A 5 A_Chase
   TNT1 A 1
   Loop
  Missile:
   TNT1 A 0 A_Playsound("skultaunt",CHAN_VOICE)
   JSKL AAAAAAAAAAAAAA 5 Bright A_JumpIfTargetInLOS("Death",50,JLOSF_TARGETLOS)
  Death:
   TNT1 A 0 A_StopSound(CHAN_VOICE)
   TNT1 A 1 A_Fall
   Stop
   }
}

Actor IodsaDistract : GhoulDistractBase
{
Scale 0.5
States
{
  Spawn:
   TNT1 A 35
  Idle:
   TNT1 A 0 A_JumpIf(user_timer >= 700,"Death")
   TNT1 A 0 A_SetUserVar("user_timer",user_timer+1)
   TNT1 A 0 A_Wander
   TNT1 A 1 A_Look
   Loop
  See:
   TNT1 A 0 A_JumpIfTargetInLOS(2,70,JLOSF_TARGETLOS)
   TNT1 A 5 A_Chase
   TNT1 A 1
   Loop
  Missile:
   TNT1 A 0 A_Playsound("IodsaActive",CHAN_VOICE)
   IODS ABABABABABABAB 6 Bright A_JumpIfTargetInLOS("Death",50,JLOSF_TARGETLOS)
  Death:
   TNT1 A 0 A_StopSound(CHAN_VOICE)
   TNT1 A 1 A_Fall
   Stop
   }
}

Actor HellfrostbiteDistract : GhoulDistractBase
{
Scale 0.25
States
{
  Spawn:
   TNT1 A 35
  Idle:
   TNT1 A 0 A_JumpIf(user_timer >= 700,"Death")
   TNT1 A 0 A_SetUserVar("user_timer",user_timer+1)
   TNT1 A 0 A_Wander
   TNT1 A 1 A_Look
   Loop
  See:
   TNT1 A 0 A_JumpIfTargetInLOS(2,70,JLOSF_TARGETLOS)
   TNT1 A 5 A_Chase
   TNT1 A 1
   Loop
  Missile:
   TNT1 A 0 A_Playsound("Frosttaunt",CHAN_VOICE)
   FROB A 2 A_SpawnItemEx("FrostBiteTwinkle",0,random(-40,40),random(-40,90),0,0,0,0,32)
   FROB AA 2 Bright A_JumpIfTargetInLOS("Death",50,JLOSF_TARGETLOS)
   FROB A 2 A_SpawnItemEx("FrostBiteTwinkle",0,random(-40,40),random(-40,90),0,0,0,0,32)
   FROB AA 2 Bright A_JumpIfTargetInLOS("Death",50,JLOSF_TARGETLOS)
   FROB A 2 A_SpawnItemEx("FrostBiteTwinkle",0,random(-40,40),random(-40,90),0,0,0,0,32)
   FROB AA 2 Bright A_JumpIfTargetInLOS("Death",50,JLOSF_TARGETLOS)
   FROB A 2 A_SpawnItemEx("FrostBiteTwinkle",0,random(-40,40),random(-40,90),0,0,0,0,32)
   FROB AA 2 Bright A_JumpIfTargetInLOS("Death",50,JLOSF_TARGETLOS)
   FROB A 2 A_SpawnItemEx("FrostBiteTwinkle",0,random(-40,40),random(-40,90),0,0,0,0,32)
   FROB AA 2 Bright A_JumpIfTargetInLOS("Death",50,JLOSF_TARGETLOS)
   FROB A 2 A_SpawnItemEx("FrostBiteTwinkle",0,random(-40,40),random(-40,90),0,0,0,0,32)
   FROB AA 2 Bright A_JumpIfTargetInLOS("Death",50,JLOSF_TARGETLOS)
   FROB A 2 A_SpawnItemEx("FrostBiteTwinkle",0,random(-40,40),random(-40,90),0,0,0,0,32)
   FROB AA 2 Bright A_JumpIfTargetInLOS("Death",50,JLOSF_TARGETLOS)
   FROB A 2 A_SpawnItemEx("FrostBiteTwinkle",0,random(-40,40),random(-40,90),0,0,0,0,32)
   FROB AA 2 Bright A_JumpIfTargetInLOS("Death",50,JLOSF_TARGETLOS)
   FROB A 2 A_SpawnItemEx("FrostBiteTwinkle",0,random(-40,40),random(-40,90),0,0,0,0,32)
   FROB AA 2 Bright A_JumpIfTargetInLOS("Death",50,JLOSF_TARGETLOS)
   FROB A 2 A_SpawnItemEx("FrostBiteTwinkle",0,random(-40,40),random(-40,90),0,0,0,0,32)
   FROB AA 2 Bright A_JumpIfTargetInLOS("Death",50,JLOSF_TARGETLOS)
  Death:
   TNT1 A 0 A_StopSound(CHAN_VOICE)
   TNT1 A 1 A_Fall
   Stop
   }
}

Actor ClownyDistract : GhoulDistractBase
{
Scale 0.3
Renderstyle Add
States
{
  Spawn:
   TNT1 A 35
  Idle:
   TNT1 A 0 A_JumpIf(user_timer >= 700,"Death")
   TNT1 A 0 A_SetUserVar("user_timer",user_timer+1)
   TNT1 A 0 A_Wander
   TNT1 A 1 A_Look
   Loop
  See:
   TNT1 A 0 A_JumpIfTargetInLOS(2,70,JLOSF_TARGETLOS)
   TNT1 A 5 A_Chase
   TNT1 A 1
   Loop
  Missile:
   TNT1 A 0 A_Playsound("clowny/active",CHAN_VOICE)
   CLWX AAAAAAAAAAAAAA 5 Bright A_JumpIfTargetInLOS("Death",50,JLOSF_TARGETLOS)
  Death:
   TNT1 A 0 A_StopSound(CHAN_VOICE)
   TNT1 A 1 A_Fall
   Stop
   }
}

Actor WeaverBonnieDistract : GhoulDistractBase
{
Scale 0.22
var int user_timer;
+FLOORHUGGER
States
{
  Spawn:
   TNT1 A 35
  Idle:
   TNT1 A 0 A_JumpIf(user_timer >= 700,"Death")
   TNT1 A 0 A_SetUserVar("user_timer",user_timer+1)
   TNT1 A 0 A_Wander
   TNT1 A 1 A_Look
   Loop
  See:
   TNT1 A 0 A_JumpIfTargetInLOS(2,70,JLOSF_TARGETLOS)
   TNT1 A 5 A_Chase
   TNT1 A 1
   Loop
  Missile:
   TNT1 A 0 A_Playsound("weaverbonnie/active",CHAN_VOICE)
  SpookyLoop:
   TNT1 A 0 A_FaceTarget
   WBI0 A 5 Bright A_JumpIfTargetInLOS("Death",50,JLOSF_TARGETLOS)
   TNT1 A 0 A_JumpIf(user_timer >= 14,"Death")
   TNT1 A 0 A_SetUserVar("user_timer",user_timer+1)
   Loop
  Death:
   TNT1 A 0 A_StopSound(CHAN_VOICE)
   TNT1 A 1 A_Fall
   Stop
   }
}

Actor ChokeDistract : GhoulDistractBase
{
Renderstyle Translucent
States
{
  Spawn:
   TNT1 A 35
  Idle:
   TNT1 A 0 A_JumpIf(user_timer >= 700,"Death")
   TNT1 A 0 A_SetUserVar("user_timer",user_timer+1)
   TNT1 A 0 A_Wander
   TNT1 A 1 A_Look
   Loop
  See:
   TNT1 A 0 A_JumpIfTargetInLOS(2,70,JLOSF_TARGETLOS)
   TNT1 A 5 A_Chase
   TNT1 A 1
   Loop
  Missile:
   TNT1 A 0 A_Playsound("choke1",CHAN_VOICE)
   GHOU EEEEEEEEEEEEEE 5 Bright A_JumpIfTargetInLOS("Death",50,JLOSF_TARGETLOS)
  Death:
   TNT1 A 0 A_StopSound(CHAN_VOICE)
   TNT1 A 1 A_Fall
   Stop
   }
}

Actor CreeperGhoulDistract : GhoulDistractBase
{
Scale 0.06
+FLOORHUGGER
States
{
  Spawn:
   TNT1 A 35
  Idle:
   TNT1 A 0 A_JumpIf(user_timer >= 700,"Death")
   TNT1 A 0 A_SetUserVar("user_timer",user_timer+1)
   TNT1 A 0 A_Wander
   TNT1 A 1 A_Look
   Loop
  See:
   TNT1 A 0 A_JumpIfTargetInLOS(2,70,JLOSF_TARGETLOS)
   TNT1 A 5 A_Chase
   TNT1 A 1
   Loop
  Missile:
   TNT1 A 0 A_Playsound("Creeperpain",CHAN_VOICE)
   CREE DDDDDDDDDD 5 Bright A_JumpIfTargetInLOS("Death",50,JLOSF_TARGETLOS)
  Death:
   TNT1 A 0 A_StopSound(CHAN_VOICE)
   TNT1 A 1 A_Fall
   Stop
   }
}

Actor ExetiorDistract : GhoulDistractBase
{
+FLOATBOB
var int user_timer;
States
{
  Spawn:
   TNT1 A 0 ThrustThingZ(0,10,0,1)
   TNT1 A 35
   TNT1 A 0 A_Stop
  Idle:
   TNT1 A 0 A_JumpIf(user_timer >= 700,"Death")
   TNT1 A 0 A_SetUserVar("user_timer",user_timer+1)
   TNT1 A 0 A_Wander
   TNT1 A 1 A_Look
   Loop
  See:
   TNT1 A 0 A_JumpIfTargetInLOS(2,70,JLOSF_TARGETLOS)
   TNT1 A 5 A_Chase
   TNT1 A 1
   Loop
  Missile:
   TNT1 A 0 A_Playsound("Exetior/sight",CHAN_VOICE)
  SpookyLoop:
   TNT1 A 0 A_FaceTarget
   EXE_ A 5 Bright A_JumpIfTargetInLOS("Death",50,JLOSF_TARGETLOS)
   TNT1 A 0 A_JumpIf(user_timer >= 14,"Death")
   TNT1 A 0 A_SetUserVar("user_timer",user_timer+1)
   Loop
  Death:
   TNT1 A 0 A_StopSound(CHAN_VOICE)
   TNT1 A 0 A_StopSound(5)
   TNT1 A 1 A_Fall
   Stop
   }
}

Actor BloodEyeDistract : GhoulDistractBase
{
Scale 0.35
Renderstyle Add
States
{
  Spawn:
   TNT1 A 35
  Idle:
   TNT1 A 0 A_JumpIf(user_timer >= 700,"Death")
   TNT1 A 0 A_SetUserVar("user_timer",user_timer+1)
   TNT1 A 0 A_Wander
   TNT1 A 1 A_Look
   Loop
  See:
   TNT1 A 0 A_JumpIfTargetInLOS(2,70,JLOSF_TARGETLOS)
   TNT1 A 5 A_Chase
   TNT1 A 1
   Loop
  Missile:
   TNT1 A 0 A_Playsound("bloodeye/attack",CHAN_VOICE)
   BLE2 ABCDEFGHIJKLMNOABCDEFGHIJKLMNOABCDEFGHIJKLMNOABCDEFGHIJKLMNO 1 Bright A_JumpIfTargetInLOS("Death",50,JLOSF_TARGETLOS)
  Death:
   TNT1 A 0 A_StopSound(CHAN_VOICE)
   TNT1 A 1 A_Fall
   Stop
   }
}

Actor SjasDistract : GhoulDistractBase
{
RENDERSTYLE TRANSLUCENT
Alpha 0.5
States
{
  Spawn:
   TNT1 A 35
  Idle:
   TNT1 A 0 A_JumpIf(user_timer >= 700,"Death")
   TNT1 A 0 A_SetUserVar("user_timer",user_timer+1)
   TNT1 A 0 A_Wander
   TNT1 A 1 A_Look
   Loop
  See:
   TNT1 A 0 A_JumpIfTargetInLOS(2,70,JLOSF_TARGETLOS)
   TNT1 A 5 A_Chase
   TNT1 A 1
   Loop
  Missile:
   TNT1 A 0 A_Playsound("Sjasattack",CHAN_VOICE)
   SJAS AAAAAAAAAAAAAA 5 Bright A_JumpIfTargetInLOS("Death",50,JLOSF_TARGETLOS)
  Death:
   TNT1 A 0 A_StopSound(CHAN_VOICE)
   TNT1 A 1 A_Fall
   Stop
   }
}

Actor BNDDistract : GhoulDistractBase
{
States
{
  Spawn:
   TNT1 A 35
  Idle:
   TNT1 A 0 A_JumpIf(user_timer >= 700,"Death")
   TNT1 A 0 A_SetUserVar("user_timer",user_timer+1)
   TNT1 A 0 A_Wander
   TNT1 A 1 A_Look
   Loop
  See:
   TNT1 A 0 A_JumpIfTargetInLOS(2,70,JLOSF_TARGETLOS)
   TNT1 A 5 A_Chase
   TNT1 A 1
   Loop
  Missile:
   TNT1 A 0 A_Playsound("BND/SIGHT",CHAN_VOICE)
   VBND AAAAAAAAAAAAAA 5 Bright A_JumpIfTargetInLOS("Death",50,JLOSF_TARGETLOS)
  Death:
   TNT1 A 0 A_StopSound(CHAN_VOICE)
   TNT1 A 1 A_Fall
   Stop
   }
}

Actor EyeSoreDistract : GhoulDistractBase
{
Scale 0.36
+FLOORHUGGER
States
{
  Spawn:
   TNT1 A 35
  Idle:
   TNT1 A 0 A_JumpIf(user_timer >= 700,"Death")
   TNT1 A 0 A_SetUserVar("user_timer",user_timer+1)
   TNT1 A 0 A_Wander
   TNT1 A 1 A_Look
   Loop
  See:
   TNT1 A 0 A_JumpIfTargetInLOS(2,70,JLOSF_TARGETLOS)
   TNT1 A 5 A_Chase
   TNT1 A 1
   Loop
  Missile:
   TNT1 A 0 A_Playsound("EyesoreAct",CHAN_VOICE)
   EYS2 AAAAAAAAAAAAAA 5 Bright A_JumpIfTargetInLOS("Death",50,JLOSF_TARGETLOS)
  Death:
   TNT1 A 0 A_StopSound(CHAN_VOICE)
   TNT1 A 1 A_Fall
   Stop
   }
}

Actor SoulHarvesterDistract : GhoulDistractBase
{
RENDERSTYLE TRANSLUCENT
scale 0.25
States
{
  Spawn:
   TNT1 A 35
  Idle:
   TNT1 A 0 A_JumpIf(user_timer >= 700,"Death")
   TNT1 A 0 A_SetUserVar("user_timer",user_timer+1)
   TNT1 A 0 A_Wander
   TNT1 A 1 A_Look
   Loop
  See:
   TNT1 A 0 A_JumpIfTargetInLOS(2,70,JLOSF_TARGETLOS)
   TNT1 A 5 A_Chase
   TNT1 A 1
   Loop
  Missile:
   TNT1 A 0 A_Playsound("ghoul/act",CHAN_VOICE)
   SCAR AAAAAAAAAAAAAA 5 Bright A_JumpIfTargetInLOS("Death",50,JLOSF_TARGETLOS)
  Death:
   TNT1 A 0 A_StopSound(CHAN_VOICE)
   TNT1 A 1 A_Fall
   Stop
   }
}

Actor MistyDistract : GhoulDistractBase
{
RENDERSTYLE TRANSLUCENT
scale 0.15
Alpha 0.40
var int user_timer;
States
{
  Spawn:
   TNT1 A 35
  Idle:
   TNT1 A 0 A_JumpIf(user_timer >= 700,"Death")
   TNT1 A 0 A_SetUserVar("user_timer",user_timer+1)
   TNT1 A 0 A_Wander
   TNT1 A 1 A_Look
   Loop
  See:
   TNT1 A 0 A_JumpIfTargetInLOS(2,70,JLOSF_TARGETLOS)
   TNT1 A 5 A_Chase
   TNT1 A 1
   Loop
  Missile:
   TNT1 A 0 A_Playsound("Misty/idley",CHAN_VOICE)
  SpookyLoop:
   TNT1 A 0 A_SpawnItemEx("mistspawner")
   TY20 A 1 Bright A_JumpIfTargetInLOS("Death",50,JLOSF_TARGETLOS)
   TNT1 A 0 A_JumpIf(user_timer >= 70,"Death")
   TNT1 A 0 A_SetUserVar("user_timer",user_timer+1)
   Loop
  Death:
   TNT1 A 0 A_StopSound(CHAN_VOICE)
   TNT1 A 1 A_Fall
   Stop
   }
}

Actor SamaraCorpseSpawner : NemesisHKSummoner 
{
States
{
  Spawn:
   TNT1 A 0
   TNT1 A 1 A_Jump(255,"Death")
   Loop
  Death:
   TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("SamaraRandomBodyPart",Random(-128,128),Random(-128,128),-1000,0,0,0,Random(0,360),SXF_CLIENTSIDE,128)
   TNT1 AAAAAAAAAA 0 A_SpawnItemEx("SamaraRandomCorpse",Random(-128,128),Random(-128,128),-1000,0,0,0,Random(0,360),SXF_CLIENTSIDE,128)
   TNT1 A 1 A_Fall
   Stop
	}
}

Actor SamaraRandomCorpse : RandomSpawner
{
DropItem "DeadMarine2", 256, 1
DropItem "GibbedMarine2", 256, 1
DropItem "PlasmaGunnerCorpse2", 256, 1
DropItem "ShotgunZombieCorpse2", 256, 1
DropItem "ImpCorpse2", 256, 1
}

Actor SamaraRandomBodyPart : RandomSpawner
{
DropItem "NewBodyPart1", 256, 1
DropItem "NewBodyPart2", 256, 1
DropItem "NewBodyPart3", 256, 1
DropItem "NewBodyPart4", 256, 1
DropItem "NewBodyPart5", 256, 1
DropItem "NewBodyPart6", 256, 1
DropItem "NewBodyPart7", 256, 1
DropItem "NewBodyPart8", 256, 1
}

Actor NewBodyPart1 : BodyPart1
{
States
{
  Crash:
   TNT1 A 0
   GIB1 E 150
   GIB1 E 5 A_FadeOut(0.10)
   Goto Crash+2
   }
}

Actor NewBodyPart2 : BodyPart2
{
States
{
  Crash:
   TNT1 A 0
   GIB2 A 150
   GIB2 A 5 A_FadeOut(0.10)
   Goto Crash+2
   }
}

Actor NewBodyPart3 : BodyPart3 { SeeSound "" }

Actor NewBodyPart4 : BodyPart4 { SeeSound "" }

Actor NewBodyPart5 : BodyPart5 { SeeSound "" }

Actor NewBodyPart6 : BodyPart6
{
States
{
  Crash:
   TNT1 A 0
   GIB6 A 150
   GIB6 A 5 A_FadeOut(0.10)
   Goto Crash+2
   }
}

Actor NewBodyPart7 : BodyPart7
{
States
{
  Crash:
   TNT1 A 0
   GIB7 E 150
   GIB7 E 5 A_FadeOut(0.10)
   Goto Crash+2
   }
}

Actor NewBodyPart8 : BodyPart8 { SeeSound "" }

Actor PlasmaGunnerCorpse2 : PlasmaGunnerCorpse 
{ 
States 
{ 
  Spawn: 
   ZMAY L 175 
   Stop 
   } 
}

Actor DeadMarine2 : DeadMarine
{ 
States 
{ 
  Spawn: 
   PLAY N 175 
   Stop 
   } 
}

Actor GibbedMarine2 : GibbedMarine
{ 
States 
{ 
  Spawn: 
   PLAY W 175 
   Stop 
   } 
}

Actor ShotgunZombieCorpse2 : ShotgunZombieCorpse
{ 
States 
{ 
  Spawn: 
   ZSP1 L 175 
   Stop 
   } 
}

Actor ImpCorpse2 : ImpCorpse
{ 
States 
{ 
  Spawn: 
   SIMP M 175 
   Stop 
   } 
}

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

Actor SamaraHeartbeat1 : NDefilerMindfuckHeart
{  
  States
  {
  Pickup:
	TNT1 A 1 A_SetBlend("Grey",0.5,15)
	TNT1 A 0 A_PlaySound("samara/heart1",7,1.0,0,0.5)
	Stop
	}
}

Actor SamaraHeartbeat2 : NDefilerMindfuckHeart
{  
  States
  {
  Pickup:
	TNT1 A 1 A_SetBlend("Grey",0.5,10)
	TNT1 A 0 A_PlaySound("samara/heart2",7,1.0,0,0.5)
	Stop
	}
}

Actor SamaraHeartbeat3 : NDefilerMindfuckHeart
{  
  States
  {
  Pickup:
	TNT1 A 1 A_SetBlend("Grey",0.5,8)
	TNT1 A 0 A_PlaySound("samara/heart3",7,1.0,0,0.5)
	Stop
	}
}