/*
ACTOR BlackEffectInheritance
{
	+NOCLIP
	+NOINTERACTION
	+NOGRAVITY
	+CLIENTSIDEONLY
	Alpha 0.99
	Renderstyle Add
}

ACTOR BlackSpawnerInheritance
{
	+NOCLIP
	+NOINTERACTION
	+NOGRAVITY
}

ACTOR BlackSmokeInheritance
{
	+NOINTERACTION
	+NOGRAVITY
	+FORCERADIUSDMG
	Renderstyle Add
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 1 A_Jump(255,"SpawnA","SpawnB","SpawnC","SpawnD","SpawnE","SpawnF","SpawnG","SpawnH","SpawnI","SpawnJ","SpawnK")
	Stop
	SpawnA:
	 VSMK A 1
	 Goto HNNNG
	SpawnB:
	 VSMK B 1
	 Goto HNNNG
	SpawnC:
	 VSMK C 1
	 Goto HNNNG
	SpawnD:
	 VSMK D 1
	 Goto HNNNG
	SpawnE:
	 VSMK E 1
	 Goto HNNNG
	SpawnF:
	 VSMK G 1
	 Goto HNNNG
	SpawnG:
	 VSMK G 1
	 Goto HNNNG
	SpawnH:
	 VSMK H 1
	 Goto HNNNG
	SpawnI:
	 VSMK I 1
	 Goto HNNNG
	SpawnJ:
	 VSMK J 1
	 Goto HNNNG
	SpawnK:
	 VSMK K 1
	 Goto HNNNG
	HNNNG:
	 VSMK A 0 A_Jump(255,"GTFO Plus","GTFO Minus")
	"GTFO Plus":
	 "####" "#" 0 //A_SetScale(ScaleX +0.01, ScaleY +0.01)
	 "####" "#" 1 A_FadeOut(0.01+random(-0.01,0.02))
	 Loop
	"GTFO Minus":
	 "####" "#" 0 //A_SetScale(ScaleX -0.01, ScaleY -0.01)
	 "####" "#" 1 A_FadeOut(0.01+random(-0.01,0.02))
	 Loop
	}
}

ACTOR BlackHackjobInheritance : CustomInventory
{
}

ACTOR BlackHoleProjectile
{
  Radius 11
  Height 6
  Speed 30
  FastSpeed 40
  Damage 0
  Projectile
  Renderstyle Add
  +FORCERADIUSDMG
  +FOILINVUL
  +EXTREMEDEATH
  +CANNOTPUSH
  +BLOODLESSIMPACT
  +DONTBLAST
  +NODAMAGETHRUST
  DamageType "Term"
  var int user_blackhole;
  States
  {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_PlaySound("Black/Suck",5,1.0,1,ATTN_NORM)
	TNT1 A 0 A_SetUserVar("user_blackhole", 0)
  Looplet:
    TNT1 A 0 A_JumpIf(user_blackhole > 10,"Death")
	TNT1 A 0 A_SetUserVar("user_blackhole",user_blackhole+1)
	TNT1 A 0 A_RadiusThrust(-3000, 1280)//, RTF_NOIMPACTDAMAGE) 
	TNT1 A 0 A_Explode(200,64,0,1)
	TNT1 A 0 Bright A_GiveInventory("BlackRingTrailer", 1) //
	VOIP A 2 Bright A_GiveInventory("BlackHoleTrailer", 1) //
	VOIP D 2 Bright A_GiveInventory("BlackHoleSmoker", 1)
	TNT1 A 0 A_RadiusThrust(-3000, 128)//, RTF_NOIMPACTDAMAGE) 
	TNT1 A 0 A_Explode(200,64,0,1)
	VOIP B 2 Bright A_GiveInventory("BlackHoleSmoker", 1)
	TNT1 A 0 A_RadiusThrust(-3000, 128)//, RTF_NOIMPACTDAMAGE) 
	TNT1 A 0 A_Explode(200,64,0,1)
	VOIP C 2 Bright A_GiveInventory("BlackHoleSmoker", 1)
	TNT1 A 0 A_RadiusThrust(-3000, 128)//, RTF_NOIMPACTDAMAGE) 
	TNT1 A 0 A_Explode(200,64,0,1)
	VOIP D 2 Bright A_GiveInventory("BlackHoleSmoker", 1)
	TNT1 A 0 A_RadiusThrust(-3000, 128)//, RTF_NOIMPACTDAMAGE) 
	TNT1 A 0 A_Explode(200,64,0,1)
	TNT1 A 0 Bright A_GiveInventory("BlackRingTrailer", 1) //
	VOIP E 2 Bright A_GiveInventory("BlackHoleTrailer", 1) //
	VOIP D 2 Bright A_GiveInventory("BlackHoleSmoker", 1)
	TNT1 A 0 A_RadiusThrust(-3000, 128)//, RTF_NOIMPACTDAMAGE) 
	TNT1 A 0 A_Explode(200,64,0,1)
	VOIP F 2 Bright A_GiveInventory("BlackHoleSmoker", 1)
	TNT1 A 0 A_RadiusThrust(-3000, 128)//, RTF_NOIMPACTDAMAGE) 
	TNT1 A 0 A_Explode(200,64,0,1)
	VOIP G 2 Bright A_GiveInventory("BlackHoleSmoker", 1)
	TNT1 A 0 A_RadiusThrust(-3000, 128)//, RTF_NOIMPACTDAMAGE) 
	TNT1 A 0 A_Explode(2000,64,0,1)
	VOIP H 2 Bright A_GiveInventory("BlackHoleSmoker", 1)
	TNT1 A 0 A_RadiusThrust(-3000, 128)//, RTF_NOIMPACTDAMAGE) 
	TNT1 A 0 A_Explode(200,64,0,1)
	TNT1 A 0 Bright A_GiveInventory("BlackRingTrailer", 1) //
	VOIP I 2 Bright A_GiveInventory("BlackHoleTrailer", 1) //
	VOIP D 2 Bright A_GiveInventory("BlackHoleSmoker", 1)
	TNT1 A 0 A_RadiusThrust(-3000, 128)//, RTF_NOIMPACTDAMAGE) 
	TNT1 A 0 A_Explode(200,64,0,1)
	VOIP J 2 Bright A_GiveInventory("BlackHoleSmoker", 1)
	TNT1 A 0 A_RadiusThrust(-3000, 128)//, RTF_NOIMPACTDAMAGE) 
	TNT1 A 0 A_Explode(200,64,0,1)
	VOIP K 2 Bright A_GiveInventory("BlackHoleSmoker", 1)
	TNT1 A 0 A_RadiusThrust(-3000, 128)//, RTF_NOIMPACTDAMAGE) 
	TNT1 A 0 A_Explode(200,64,0,1)
	VOIP L 2 Bright A_GiveInventory("BlackHoleSmoker", 1)
	loop
  Death:
	TNT1 A 0 A_StopSound(5)
	TNT1 A 0 A_PlaySound("Black/Blast",5,1.0,0)
    TNT1 A 0 A_SpawnItemEx("BlackHoleSpawn",0,0,0,0,0,0,0,0,0)
    TNT1 A 0 A_SpawnItemEx("BlackHoleSpawnDark",0,0,0,0,0,0,0,0,0)
  	Stop
  }
}

ACTOR BlackHoleSpawn : BlackEffectInheritance
{
	States
	{
	Spawn:
	TNT1 A 0
	VOIP A 0 A_SpawnItemEx("BlackHoleSound",0,0,0,0,0,0,0,0,0)
	VOIP A 0 A_Quake(7, 24, 0, 4096,"none")
	TNT1 A 0 A_SpawnItemEx("BlackStruck",0,0,0,0,0,0,0,0,0)
	VOIP AABBCCDDEEFFGGHHIIJJKKLL 1 //A_SetScale(ScaleX +0.8, ScaleY +0.8) //19.2 in total

	TNT1 A 0 A_StopSound(5)

	VOIP A 0 A_SpawnItemEx("BlackHoleDamager",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS,0)
	VOIP A 0 A_SpawnItemEx("BlackHoleSucker",0,0,1,0,0,0,0,SXF_TRANSFERPOINTERS,0)
	VOIP A 0 A_SpawnItemEx("BlackHoleNormal",0,0,0,0,0,0,0,0,0)
	VOIP A 0 A_SpawnItemEx("BlackHoleDark",0,0,0,0,0,0,0,0,0)
	VOIP A 0 A_SpawnItemEx("BlackHoleRingSpawner",0,0,0,0,0,0,0,0,0)
	VOIP A 0 A_SpawnItemEx("BlackFadeSpawner",0,0,0,0,0,0,0,0,0)
	VOIP A 0 A_SpawnItemEx("BlackBlackFadeSpawner",0,0,0,0,0,0,0,0,0)
	VOIP A 0 A_SpawnItemEx("BlackDeathSequence",0,0,0,0,0,0,0,0,0)
	VOIP A 0 A_SpawnItemEx("BlackSmokeSpawner",0,0,0,0,0,0,0,0,0)
	VOIP A 1
	Stop
	}
}


ACTOR BlackHoleSpawnDark : BlackHoleSpawn
{
	Alpha 0.7
	Renderstyle Stencil
	StencilColor Black
	+CLIENTSIDEONLY
	States
	{
	Spawn:
	TNT1 A 0
	VOIP FFGGHHIIJJKKLLAABBCCDDEE 1 //A_SetScale(ScaleX +0.8, ScaleY +0.8) //19.2 in total
	Stop
	}
}


Actor BlackHoleTrailer : CustomInventory 
{ 
     States 
     { 
	 Spawn: 
	 Pickup: 
		TNT1 A 0
		TNT1 A 1 A_SpawnItemEx("BlackHoleTrailNormal",0,0,0,0,0,0,0,0,0)
		TNT1 A 1 A_SpawnItemEx("BlackHoleTrailDark",0,0,0,0,0,0,0,0,0)
		Stop 
     } 
}

ACTOR BlackHoleTrailNormal : BlackEffectInheritance
{
	Renderstyle Add
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
	VOIP ABCDEFGHIJKL 2 Bright A_GiveInventory("BlackHoleEffectizer",1)
	Loop
	Toaster:
	TNT1 A 1
	Stop
	}
}

ACTOR BlackHoleTrailDark : BlackHoleTrailNormal
{
	Alpha 0.8
	Renderstyle Stencil
	StencilColor Black
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
	VOIP FGHIJKLABCDE 2 Bright A_GiveInventory("BlackHoleEffectizer",1)
	Loop
	Toaster:
	TNT1 A 1
	Stop
	}
}

Actor BlackHoleEffectizer : CustomInventory 
{ 
     States 
     { 
	 Spawn: 
	 Pickup: 
		TNT1 A 0
		TNT1 A 0 //A_SetScale(ScaleX -0.01, ScaleY -0.01)
		TNT1 A 0 A_FadeOut(0.05+frandom(0.00,0.02))
		Stop 
     } 
}

Actor BlackHoleSmoker : BlackHackjobInheritance
{ 
	 +CLIENTSIDEONLY
     States 
     { 
	 Spawn: 
     Pickup: 
		TNT1 A 0 
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 0 A_SpawnItemEx("BlackSmokeTrailNormal",random(28,-28),random(28,-28),random(28,-28),frandom(0.1,1.0),frandom(0.1,1.0),frandom(-1.0,1.0),random(0,359),0,0)
		TNT1 A 0 A_SpawnItemEx("BlackSmokeTrailDark",random(14,-14),random(14,-14),random(14,-14),frandom(0.1,1.0),frandom(0.1,1.0),frandom(-1.0,1.0),random(0,359),0,0)
		Stop
	 Toaster:
		TNT1 A 1
		Stop
     } 
}

ACTOR BlackSmokeTrailNormal : BlackSmokeInheritance
{
	Scale 0.65
	+CLIENTSIDEONLY
	Alpha 0.6
}

ACTOR BlackSmokeTrailDark : BlackSmokeTrailNormal
{
	Scale 0.5
	Alpha 0.3
	Renderstyle Stencil
	+CLIENTSIDEONLY
	StencilColor Black
	States
	{
	"GTFO Plus":
	 "####" "#" 0 //A_SetScale(ScaleX +0.01, ScaleY +0.01)
	 "####" "#" 1 A_FadeOut(0.005+random(-0.005,0.01))
	 Loop
	"GTFO Minus":
	 "####" "#" 0 //A_SetScale(ScaleX -0.01, ScaleY -0.01)
	 "####" "#" 1 A_FadeOut(0.005-random(-0.005,0.01))
	 Loop
	}
}

ACTOR BlackRingNormalTrail : BlackEffectInheritance
{
+CLIENTSIDEONLY
	Scale 0.125
	States
	{
	Spawn:
	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
	VSHK AA 0 A_FadeOut(0.02)
	VSHK A 0 //A_SetScale(ScaleX +0.02, ScaleY +0.02)
	VSHK A 1 Bright
	Loop
	Toaster:
	TNT1 A 1
	Stop
	}
}

ACTOR BlackRingDarkTrail : BlackRingNormalTrail
{
	Renderstyle Stencil
	+CLIENTSIDEONLY
	StencilColor Black
}

Actor BlackRingTrailer : BlackHackjobInheritance
{
	 +CLIENTSIDEONLY
     States 
     { 
	 Spawn: 
	 Pickup: 
		TNT1 A 0 
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 0 A_SpawnItemEx("BlackRingNormalTrail",0,0,0,0,0,0,0,0,0)
		TNT1 A 0 A_SpawnItemEx("BlackRingDarkTrail",0,0,0,0,0,0,0,0,0)
		Stop 
	 Toaster:
		TNT1 A 1
		stop
     }
}

ACTOR BlackStruck : BlackEffectInheritance
{
	Alpha 0.5
	+CLIENTSIDEONLY
	States
	{
	Spawn:
	PBUM A 0
	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
	PBUM A 0 //A_SetScale(ScaleX +0.1, ScaleY +0.1)
	PBUM A 1 Bright A_FadeOut(0.01)
	Loop
	Toaster:
	TNT1 A 1
	Stop
	}
}

ACTOR BlackHoleSpawn : BlackEffectInheritance
{
    -CLIENTSIDEONLY
	States
	{
	Spawn:
	TNT1 A 0
	VOIP A 0 A_SpawnItemEx("BlackHoleSound",0,0,0,0,0,0,0,0,0)
	VOIP A 0 A_Quake(7, 24, 0, 4096,"none")
	TNT1 A 0 A_SpawnItemEx("BlackStruck",0,0,0,0,0,0,0,0,0)
	VOIP AABBCCDDEEFFGGHHIIJJKKLL 1 //A_SetScale(ScaleX +0.8, ScaleY +0.8) //19.2 in total

	TNT1 A 0 A_StopSound(5)

	VOIP A 0 A_SpawnItemEx("BlackHoleDamager",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS,0)
	VOIP A 0 A_SpawnItemEx("BlackHoleSucker",0,0,1,0,0,0,0,SXF_TRANSFERPOINTERS,0)
	VOIP A 0 A_SpawnItemEx("BlackHoleNormal",0,0,0,0,0,0,0,0,0)
	VOIP A 0 A_SpawnItemEx("BlackHoleDark",0,0,0,0,0,0,0,0,0)
	VOIP A 0 A_SpawnItemEx("BlackHoleRingSpawner",0,0,0,0,0,0,0,0,0)
	VOIP A 0 A_SpawnItemEx("BlackFadeSpawner",0,0,0,0,0,0,0,0,0)
	VOIP A 0 A_SpawnItemEx("BlackBlackFadeSpawner",0,0,0,0,0,0,0,0,0)
	VOIP A 0 A_SpawnItemEx("BlackDeathSequence",0,0,0,0,0,0,0,0,0)
	VOIP A 0 A_SpawnItemEx("BlackLightningSpawner",0,0,0,0,0,0,0,0,0)
	VOIP A 0 A_SpawnItemEx("BlackSmokeSpawner",0,0,0,0,0,0,0,0,0)
	VOIP A 1
	Stop
	}
}

ACTOR BlackHoleSound : BlackSpawnerInheritance
{
+CLIENTSIDEONLY
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_PlaySound("Black/SuperSuck",5,1.0,1)
	TNT1 A 384
	TNT1 A 0 A_PlaySound("Black/Explode",5,1.0,0)
	TNT1 A 0 A_PlaySound("Black/Blast",6,1.0,0)
	Stop
	}
}


ACTOR BlackHoleSpawnDark : BlackHoleSpawn
{
	Alpha 0.7
	Renderstyle Stencil
	StencilColor Black
	+CLIENTSIDEONLY
	States
	{
	Spawn:
	TNT1 A 0
	VOIP FFGGHHIIJJKKLLAABBCCDDEE 1 //A_SetScale(ScaleX +0.8, ScaleY +0.8) //19.2 in total
	Stop
	}
}

ACTOR BlackHoleNormal : BlackEffectInheritance
{
	ReactionTime 15 //360 tics, around 10 seconds
	Scale 5.65
	+CLIENTSIDEONLY
	States
	{
	Spawn:
	VOIP A 0
	Looplet:
	//VOIP A 0 A_Countdown
    VOIP ABCDEFGHIJKL 2
	VOIP ABCDEFGHIJKL 2
	VOIP ABCDEFGHIJKL 2
	VOIP ABCDEFGHIJKL 2
	VOIP ABCDEFGHIJKL 2
	VOIP ABCDEFGHIJKL 2
	VOIP ABCDEFGHIJKL 2
	VOIP ABCDEFGHIJKL 2
	VOIP ABCDEFGHIJKL 2
	VOIP ABCDEFGHIJKL 2
	VOIP ABCDEFGHIJKL 2
	VOIP ABCDEFGHIJKL 2
	VOIP ABCDEFGHIJKL 2
	VOIP ABCDEFGHIJKL 2
	VOIP ABCDEFGHIJKL 2
	//Loop
	Death:
	TNT1 A 0 A_StopSound(5)
	TNT1 A 1
	Stop
	}
}

ACTOR BlackHoleDark : BlackHoleNormal
{
	ReactionTime 10
	+CLIENTSIDEONLY
	Alpha 0.5
	Renderstyle Stencil
	StencilColor Black
	States
	{
	Spawn:
	VOIP A 0
	Looplet:
	//VOIP A 0 A_Countdown
    VOIP ABCDEFGHIJKL 3
	VOIP ABCDEFGHIJKL 3
	VOIP ABCDEFGHIJKL 3
	VOIP ABCDEFGHIJKL 3
	VOIP ABCDEFGHIJKL 3
	VOIP ABCDEFGHIJKL 3
	VOIP ABCDEFGHIJKL 3
	VOIP ABCDEFGHIJKL 3
	VOIP ABCDEFGHIJKL 3
	VOIP ABCDEFGHIJKL 3
	//Loop
	Death:
	TNT1 A 1
	Stop
	}
}

Actor BlackHoleDamager : BlackSpawnerInheritance
{ 
	ReactionTime 360
	+FORCERADIUSDMG
    +NODAMAGETHRUST
	DamageType "Term"
     States 
     { 
	  Spawn: 
		TNT1 A 0
		TNT1 A 0 A_SetAngle(Angle+15)
		TNT1 A 0 A_Countdown
		TNT1 A 1 A_Explode(25,512,1,1,256)
		Loop
	  Death:
		Stop
     } 
}


Actor BlackHoleSucker : BlackSpawnerInheritance
{ 
	ReactionTime 180
	+FORCERADIUSDMG
     States 
     { 
      Spawn: 
		TNT1 A 0
		TNT1 A 0 A_Countdown
		TNT1 A 0 A_SetAngle(Angle+10)
		TNT1 A 2 A_RadiusThrust(-25000, 1536)//, RTF_NOIMPACTDAMAGE)//, 1024) 
		Loop
	  Death:
		Stop
     } 
}

Actor BlackFadeSpawner : BlackSpawnerInheritance
{ 
     ReactionTime 72
	 +CLIENTSIDEONLY
     States 
     { 
          Spawn: 
          Pickup: 
		TNT1 A 0 
		TNT1 A 5 A_Countdown
		TNT1 A 0 A_SpawnItemEx("BlackHoleMain",0,0,0,0,0,0,0,0,0)
		Loop
	  Death:
	 	TNT1 A 1
		Stop
     } 
}

ACTOR BlackHoleMain : BlackEffectInheritance
{
	Scale 5.75
	+CLIENTSIDEONLY
	Alpha 0.7
	States
	{
	Spawn:
	TNT1 A 0
	VOIP A 0 A_Quake(9, 360, 0, 1024,"none")
	VOIP A 0 A_Quake(6, 360, 0, 2048,"none")
	VOIP A 0 A_Quake(2, 360, 0, 4086,"none")
	VOIP A 0 A_Quake(1, 360, 0, 12258,"none")
	Looplet:
	VOIP ABCDEFGHIJKL 1 Bright A_FadeOut(0.05+frandom(0.00,0.02))
	Loop
	}
}

Actor BlackHoleEffectizer2 : BlackHackjobInheritance
{ 
+CLIENTSIDEONLY
     States 
     { 
          Spawn: 
          Pickup: 
		TNT1 A 0
		TNT1 A 0 //A_SetScale(ScaleX +0.05, ScaleY +0.05)
		TNT1 A 0 A_FadeOut(0.05+frandom(0.00,0.02))
		Stop 
     } 
}

Actor BlackBlackFadeSpawner : BlackSpawnerInheritance
{ 
     ReactionTime 60
	 +CLIENTSIDEONLY
     States 
     { 
          Spawn: 
          Pickup: 
		TNT1 A 0 
		TNT1 A 6 A_Countdown
		TNT1 A 0 A_SpawnItemEx("BlackHoleMainBlack",0,0,0,0,0,0,0,0,0)
		Loop
	  Death:
	 	TNT1 A 1
		Stop
     } 
}

ACTOR BlackHoleMainBlack : BlackEffectInheritance
{
	Scale 5.75
	Alpha 0.7
	+CLIENTSIDEONLY
	Renderstyle Stencil
	StencilColor Black
	States
	{
	Spawn:
	TNT1 A 0
	VOIP ABCDEFGHIJKL 1 Bright A_FadeOut(0.05+frandom(0.00,0.02))
	Loop
	}
}

ACTOR BlackHoleRingSpawner : BlackSpawnerInheritance
{
	ReactionTime 30
	+CLIENTSIDEONLY
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_Countdown
	TNT1 A 6 A_SpawnItemEx("BlackRingNormal",0,0,0,0,0,0,0,0,0)
	TNT1 A 6 A_SpawnItemEx("BlackRingDark",0,0,0,0,0,0,0,0,0)
	Loop
	Death:
	Stop
	}
}

ACTOR BlackRingNormal : BlackEffectInheritance
{
	+CLIENTSIDEONLY
	States
	{
	Spawn:
	VSHK AA 0 A_FadeOut(0.03)
	VSHK A 0 //A_SetScale(ScaleX +0.1, ScaleY +0.1)
	VSHK A 1 Bright
	Loop
	}
}

ACTOR BlackRingDark : BlackRingNormal
{
	Renderstyle Stencil
	+CLIENTSIDEONLY
	StencilColor Black
	States
	{
	Spawn:
	VSHK AA 0 A_FadeOut(0.03)
	VSHK A 0 //A_SetScale(ScaleX +0.1, ScaleY +0.1)
	VSHK A 1 Bright
	Loop
	}
}

Actor BlackLightningSpawner : BlackSpawnerInheritance
{ 
     ReactionTime 40
	 +CLIENTSIDEONLY
     States 
     {
          Spawn: 
          Pickup: 
		TNT1 A 0 
		TNT1 A 9 A_Countdown
		TNT1 A 0 A_SpawnItemEx("BlackHoleLightning",random(320,-320),random(320,-320),random(320,-320),0,0,0,0,0,64)
		Loop
	  Death:
	 	TNT1 A 1
		Stop
     } 
}

ACTOR BlackHoleLightning : BlackEffectInheritance
{
	Scale 1.25
	+CLIENTSIDEONLY
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_Jump(255,"Spawn1A","Spawn1B","Spawn1C","Spawn1D","Spawn2A","Spawn2B","Spawn2C","Spawn2D")
	Spawn1A:
	1LIT A 1 Bright A_FadeOut(0.02)
	Wait
	Spawn1B:
	1LIT B 1 Bright A_FadeOut(0.02)
	Wait
	Spawn1C:
	1LIT C 1 Bright A_FadeOut(0.02)
	Wait
	Spawn1D:
	1LIT D 1 Bright A_FadeOut(0.02)
	Wait
	Spawn2A:
	2LIT A 1 Bright A_FadeOut(0.02)
	Wait
	Spawn2B:
	2LIT B 1 Bright A_FadeOut(0.02)
	Wait
	Spawn2C:
	2LIT C 1 Bright A_FadeOut(0.02)
	Wait
	Spawn2D:
	2LIT D 1 Bright A_FadeOut(0.02)
	Wait
	}
}

ACTOR BlackSmokeSpawner : BlackSpawnerInheritance
{
	ReactionTime 180
	+CLIENTSIDEONLY
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_Countdown
	TNT1 A 0 A_SpawnItemEx("BlackSmokeNormal",random(384,-384),random(384,-384),random(384,-384),frandom(0.1,1.0),frandom(0.1,1.0),frandom(-1.0,1.0),random(0,359),0,0)
	TNT1 A 2 A_SpawnItemEx("BlackSmokeDark",random(256,-256),random(256,-256),random(256,-256),frandom(0.1,1.0),frandom(0.1,1.0),frandom(-1.0,1.0),random(0,359),0,0)
	Loop
	Death:
	Stop
	}
}

ACTOR BlackSmokeNormal : BlackSmokeInheritance
{
	Scale 2.6
	+CLIENTSIDEONLY
	Alpha 0.3
	States
	{
	"GTFO Plus":
	 "####" "#" 0 //A_SetScale(ScaleX +0.01, ScaleY +0.01)
	 "####" "#" 1 A_FadeOut(0.005+random(-0.005,0.01))
	 Loop
	"GTFO Minus":
	 "####" "#" 0 //A_SetScale(ScaleX -0.01, ScaleY -0.01)
	 "####" "#" 1 A_FadeOut(0.005-random(-0.005,0.01))
	 Loop
	}
}

ACTOR BlackSmokeDark : BlackSmokeTrailNormal
{
	Scale 3.45
	+CLIENTSIDEONLY
	Alpha 0.2
	Renderstyle Stencil
	StencilColor Black
	States
	{
	"GTFO Plus":
	 "####" "#" 0 //A_SetScale(ScaleX +0.005, ScaleY +0.005)
	 "####" "#" 1 A_FadeOut(0.0025+random(-0.0025,0.005))
	 Loop
	"GTFO Minus":
	 "####" "#" 0 //A_SetScale(ScaleX -0.005, ScaleY -0.005)
	 "####" "#" 1 A_FadeOut(0.0025-random(-0.0025,0.005))
	 Loop
	}
}

Actor BlackDeathSequence : BlackEffectInheritance
{
     -CLIENTSIDEONLY
     Scale 5.75
     States 
     { 
          Spawn: 
		TNT1 A 360
	  Death:
		VORX A 0 A_Quake(7, 70, 0, 12258,"none")
	 	VORX A 0 A_SpawnItemEx("BlackHoleChunkSpawner",0,0,0,0,0,0,0,0,0)
	 	VORX A 0 A_SpawnItemEx("BlackHoleExplode",0,0,0,0,0,0,0,0,0)
	 	VORX A 0 A_SpawnItemEx("BlackHoleGiantRingSpawner",0,0,0,0,0,0,0,0,0)
	 	VORX A 0 A_SpawnItemEx("BlackHoleShockwave",0,0,0,0,0,0,0,0,0)
		VORX ABCDEFGHIJKL 1
	 	VORX A 0 A_SpawnItemEx("BlackHoleAfterShockwave",0,0,0,0,0,0,0,0,0)
	 	VORX A 0 A_SpawnItemEx("BlackHoleExploFlare",0,0,0,0,0,0,0,0,0)
	 	TNT1 A 60 A_SpawnItemEx("BlackHoleAfterExplode",0,0,0,0,0,0,0,0,0)
		Stop
     } 
}

ACTOR BlackHoleExploFlare : BlackEffectInheritance
{
	Alpha 1
	Scale 1
	+CLIENTSIDEONLY
	States
	{
	Spawn:
	VODF A 0
	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
	VODF A 0 //A_SetScale(ScaleX +0.1, ScaleY +0.1)
	VODF A 1 Bright A_FadeOut(0.01)
	Loop
	Toaster:
	TNT1 A 1
	Stop
	}
}

ACTOR BlackHoleChunkSpawner : BlackSpawnerInheritance
{
	ReactionTime 50
	States
	{
	Spawn:
	TNT1 AA 0 A_Countdown
	TNT1 A 0 A_SpawnItemEx("BlackHoleChunk",random(256,-256),random(256,-256),random(128,0),frandom(3.0,10.0),0,frandom(15.0,20.0),frandom(0.0,359.0),0,0)
	Loop
	}
}

ACTOR BlackHoleChunk : BlackHoleProjectile
{
  Gravity 0.15
  -NOGRAVITY
  States
  {
  Death:
	TNT1 A 0 A_PlaySound("Weapons/MinibeliskDead",5)
	TNT1 A 0 A_Explode(2000,64)
        TNT1 A 0 A_Quake (4, 27, 0, 256, none)
        TNT1 A 0 A_Quake (1, 27, 0, 384, none)
	TNT1 A 0 A_SpawnItemEx("BlackChunkWaver")
	TNT1 AAAAAAAAAAAAAAA 0 A_SpawnItemEx("BlackSmokeTrailNormal",random(6,-6),random(6,-6),random(6,-6),frandom(1.0,0.05),frandom(1.0,0.05),frandom(1.0,0.05),random(0,359))
	TNT1 AAAAAAAAAAAAAAA 0 A_SpawnItemEx("BlackSmokeTrailDark",random(6,-6),random(6,-6),random(6,-6),frandom(1.0,0.05),frandom(1.0,0.05),frandom(1.0,0.05),random(0,359))
	TNT1 A 0 A_SpawnItemEx("BlackChunkWaver")
	VORX ABCD 1
	TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("BlackSmokeTrailNormal",random(6,-6),random(6,-6),random(6,-6),frandom(1.0,0.05),frandom(1.0,0.05),frandom(1.0,0.05),random(0,359))
	TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("BlackSmokeTrailDark",random(6,-6),random(6,-6),random(6,-6),frandom(1.0,0.05),frandom(1.0,0.05),frandom(1.0,0.05),random(0,359))
	TNT1 A 0 A_SpawnItemEx("BlackChunkWaver")
	VORX EFGH 1
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("BlackSmokeTrailNormal",random(6,-6),random(6,-6),random(6,-6),frandom(1.0,0.05),frandom(1.0,0.05),frandom(1.0,0.05),random(0,359))
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("BlackSmokeTrailDark",random(6,-6),random(6,-6),random(6,-6),frandom(1.0,0.05),frandom(1.0,0.05),frandom(1.0,0.05),random(0,359))
	TNT1 A 0 A_SpawnItemEx("BlackChunkWaver")
	VORX IJKL 1
	TNT1 AAAAAA 0 A_SpawnItemEx("BlackSmokeTrailNormal",random(6,-6),random(6,-6),random(6,-6),frandom(1.0,0.05),frandom(1.0,0.05),frandom(1.0,0.05),random(0,359))
	TNT1 AAAAAA 0 A_SpawnItemEx("BlackSmokeTrailDark",random(6,-6),random(6,-6),random(6,-6),frandom(1.0,0.05),frandom(1.0,0.05),frandom(1.0,0.05),random(0,359))
	TNT1 A 0 A_SpawnItemEx("BlackChunkWaver")
        TNT1 B 30
  	Stop
  }
}

ACTOR BlackChunkWaveNormal : BlackEffectInheritance
{
	Scale 0.175
	+CLIENTSIDEONLY
	States
	{
	Spawn:
	VSHK AA 0 A_FadeOut(0.02)
	VSHK A 0 //A_SetScale(ScaleX +0.03, ScaleY +0.03)
	VSHK A 1 Bright
	Loop
	}
}

ACTOR BlackChunkWaveDark : BlackChunkWaveNormal
{
	Renderstyle Stencil
	+CLIENTSIDEONLY
	StencilColor Black
}

Actor BlackChunkWaver : BlackHackjobInheritance
{
+CLIENTSIDEONLY
     States 
     { 
          Spawn: 
          Pickup: 
		TNT1 A 0 
		TNT1 A 0 A_SpawnItemEx("BlackChunkWaveNormal",0,0,0,0,0,0,0,0,0)
		TNT1 A 0 A_SpawnItemEx("BlackChunkWaveDark",0,0,0,0,0,0,0,0,0)
		Stop 
     }
}

ACTOR BlackHoleRingSpawnerShort : BlackHoleRingSpawner
{
	ReactionTime 3
	+CLIENTSIDEONLY
}

ACTOR BlackHoleExplode : BlackSpawnerInheritance
{
	ReactionTime 100
	States
	{
	Spawn:
	TNT1 AA 0 A_Countdown
	TNT1 A 0 A_SpawnItemEx("BlackHoleFlame",random(32,-32),random(32,-32),random(32,32),frandom(10.0,2.0),frandom(10.0,2.0),frandom(10.0,-10.0),frandom(0.0,359.0),0,0)
	Loop
	}
}

ACTOR BlackHoleFlame : BlackEffectInheritance
{
	Scale 0.1
	Alpha 0.5
	+FORCERADIUSDMG
	+NOBLOCKMAP
	-CLIENTSIDEONLY
	DamageType "Term"
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 1 A_Jump(255,"SpawnA","SpawnB","SpawnC","SpawnD")
	Stop
	SpawnA:
	 VODB A 0 A_JumpIf(Alpha<0.18,2)
	 VODB A 0 A_Explode(5,90)
	 VODB A 0 //A_SetScale(ScaleX +0.01, ScaleY +0.01)
	 VODB A 1 A_FadeOut(0.01)
	 Loop
	SpawnB:
	 VODB A 0 A_JumpIf(Alpha<0.18,2)
	 VODB A 0 A_Explode(5,90)
	 VODB B 0 //A_SetScale(ScaleX +0.01, ScaleY +0.01)
	 VODB B 1 A_FadeOut(0.01)
	 Loop
	SpawnC:
	 VODB A 0 A_JumpIf(Alpha<0.18,2)
	 VODB A 0 A_Explode(5,90)
	 VODB C 0 //A_SetScale(ScaleX +0.01, ScaleY +0.01)
	 VODB C 1 A_FadeOut(0.01)
	 Loop
	SpawnD:
	 VODB A 0 A_JumpIf(Alpha<0.18,2)
	 VODB A 0 A_Explode(5,90)
	 VODB D 0 //A_SetScale(ScaleX +0.01, ScaleY +0.01)
	 VODB D 1 A_FadeOut(0.01)
	 Loop
	}
}

ACTOR BlackHoleAfterExplode : BlackSpawnerInheritance
{
	ReactionTime 100
	+CLIENTSIDEONLY
	States
	{
	Spawn:
	TNT1 AA 0 A_Countdown
	TNT1 A 0 A_SpawnItemEx("BlackHoleAfterFlame",random(32,-32),random(32,-32),random(32,32),frandom(10.0,2.0),frandom(10.0,2.0),frandom(10.0,-10.0),frandom(0.0,359.0),0,0)
	Loop
	}
}

ACTOR BlackHoleAfterFlame : BlackEffectInheritance
{
	ReactionTime 70
	+CLIENTSIDEONLY
	+NOBLOCKMAP
	Renderstyle Stencil
	StencilColor Black
	Alpha 0.5
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
	TNT1 A 1 A_Jump(255,"SpawnA","SpawnB","SpawnC")
	Stop
	Toaster:
	TNT1 A 1
	Stop
	SpawnA:
	 TNT1 A 0 A_Countdown
	 VODS A 0 //A_SetScale(ScaleX +0.01, ScaleY +0.01)
	 VODS A 1 A_FadeOut(0.0005+random(-0.0005,0.0005))
	 Loop
	SpawnB:
	 TNT1 A 0 A_Countdown
	 VODS B 0 //A_SetScale(ScaleX +0.01, ScaleY +0.01)
	 VODS B 1 A_FadeOut(0.0005+random(-0.0005,0.0005))
	 Loop
	SpawnC:
	 TNT1 A 0 A_Countdown
	 VODS C 0 //A_SetScale(ScaleX +0.01, ScaleY +0.01)
	 VODS C 1 A_FadeOut(0.0005+random(-0.0005,0.0005))
	 Loop
	Death:
	 TNT1 A 0 A_SpawnItemEx("BlackHoleAfterFlame2",0,0,0,frandom(0.1,0.05),frandom(0.1,0.05),frandom(0.1,0.05),random(0,359))
	 Stop
	}
}

ACTOR BlackHoleAfterFlame2 : BlackHoleAfterFlame
{
	Renderstyle Stencil
	+CLIENTSIDEONLY
	+NOBLOCKMAP
	StencilColor Black
	Alpha 0.5
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
	TNT1 A 1 A_Jump(255,"SpawnA","SpawnB","SpawnC")
	Stop
	Toaster:
	TNT1 A 1
	Stop
	SpawnA:
	 VODS A 0 //A_SetScale(ScaleX +0.01, ScaleY +0.01)
	 VODS A 1 A_FadeOut(0.0025+random(-0.0025,0.0025))
	 Loop
	SpawnB:
	 VODS B 0 //A_SetScale(ScaleX +0.01, ScaleY +0.01)
	 VODS B 1 A_FadeOut(0.0025+random(-0.0025,0.0025))
	 Loop
	SpawnC:
	 VODS C 0 //A_SetScale(ScaleX +0.01, ScaleY +0.01)
	 VODS C 1 A_FadeOut(0.0025+random(-0.0025,0.0025))
	 Loop
	}
}

ACTOR BlackHoleShockwave : BlackSpawnerInheritance
{
	ReactionTime 200
	States
	{
	Spawn:
	TNT1 AA 0 A_Countdown
	TNT1 A 0 A_SpawnItemEx("BlackHoleFlame",random(32,-32),random(32,-32),random(32,32),frandom(9.0,8.0),frandom(9.0,8.0),frandom(0.1,-0.1),frandom(0.0,359.0),0,0)
	Loop
	}
}

ACTOR BlackHoleAfterShockwave : BlackSpawnerInheritance
{
	ReactionTime 200
	+CLIENTSIDEONLY
	States
	{
	Spawn:
	TNT1 AA 0 A_Countdown
	TNT1 A 0 A_SpawnItemEx("BlackHoleAfterFlame2",random(32,-32),random(32,-32),random(32,32),frandom(7.0,6.0),frandom(7.0,6.0),frandom(0.1,-0.1),frandom(0.0,359.0),0,0)
	Loop
	}
}

ACTOR BlackHoleGiantRingSpawner : BlackSpawnerInheritance
{
	ReactionTime 6
	+CLIENTSIDEONLY
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_Countdown
	TNT1 A 6 A_SpawnItemEx("BlackGiantRingNormal",0,0,0,0,0,0,0,0,0)
	TNT1 A 6 A_SpawnItemEx("BlackGiantRingDark",0,0,0,0,0,0,0,0,0)
	Loop
	Death:
	Stop
	}
}

ACTOR BlackGiantRingNormal : BlackEffectInheritance
{
	Scale 2
	+CLIENTSIDEONLY
	States
	{
	Spawn:
	VSHK AA 0 A_FadeOut(0.02)
	VSHK A 0 //A_SetScale(ScaleX +0.2, ScaleY +0.2)
	VSHK A 1 Bright
	Loop
	}
}

ACTOR BlackGiantRingDark : BlackRingNormal
{
	Renderstyle Stencil
	StencilColor Black
	+CLIENTSIDEONLY
	States
	{
	Spawn:
	VSHK AA 0 A_FadeOut(0.02)
	VSHK A 0 //A_SetScale(ScaleX +0.2, ScaleY +0.2)
	VSHK A 1 Bright
	Loop
	}
}

Actor BlackParticleNormal
{
  +NOINTERACTION
  +CLIENTSIDEONLY
  Renderstyle Add
  Scale 0.1
  States
  {
  Spawn:
  TNT1 A 0
  TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
  TNT1 A 0 //A_SetScale(ScaleX-0.0025,ScaleY-0.0025)
  VODM A 1 Bright A_FadeOut(0.025)
  Loop
  Toaster:
  TNT1 A 1
  Stop
  }
}	

Actor BlackParticleDark
{
  +NOINTERACTION
   +CLIENTSIDEONLY
  Renderstyle Shaded
  Scale 0.1
  States
  {
  Spawn:
  TNT1 A 0
  TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
  VODM B 1 A_FadeOut(0.025)
  Loop
  Toaster:
  TNT1 A 1
  Stop
  }
}