ACTOR SovereignAcidSlug: MatriarchSlug
{
  DamageType Acid
  Decal ""
  States
  {
  Death:
    TNT1 A 0 A_Quake (6, 25, 0, 256, none)
    TNT1 A 0 A_Quake (2, 25, 0, 384, none)
    TNT1 A 0 A_PlaySound("Matriarch/Hit",5,0.8)
    TNT1 A 0 A_PlaySound("Matriarch/Exp",6,1.0)
    TNT1 A 0 A_PlaySound("Gumpop/Hit",7,1.0)
    TNT1 A 0 A_PlaySound("Gumpop/Fade",8,0.9)
    TNT1 A 0 A_Explode((100*random(1,3)),192,0)
    TNT1 A 0 A_AlertMonsters
    TNT1 A 0 A_RadiusGive("GumpopItem",192,RGF_MONSTERS,1)
    TNT1 A 0 A_SpawnItemEx("Gumpop_Impact")
    TNT1 A 15 A_Quake(3,12,0,512,"none")
    Stop
  }
}

ACTOR SovereignBreathSlug: MatriarchSlug
{
  DamageType Breath
  Decal ""
  +FOILINVUL
  States
  {
  Death:
    TNT1 A 0 A_Quake (6, 25, 0, 256, none)
    TNT1 A 0 A_Quake (2, 25, 0, 384, none)
    TNT1 A 0 A_PlaySound("Matriarch/Hit",5,0.8)
    TNT1 A 0 A_PlaySound("Matriarch/Exp",6,1.0)
    TNT1 A 0 A_Explode((100*random(1,3)),192,0)
    TNT1 A 0 A_AlertMonsters
    TNT1 A 0 A_SpawnItemEx("ScourgebreathClouder",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
    TNT1 A 15 A_Quake(3,120,0,512,"none")
    Stop
  }
}

ACTOR SovereignCryoSlug: MatriarchSlug
{
  DamageType Ice
  Decal ""
  +ICESHATTER
  States
  {
  Death:
    TNT1 A 0 A_Quake (6, 25, 0, 256, none)
    TNT1 A 0 A_Quake (2, 25, 0, 384, none)
    TNT1 A 0 A_PlaySound("Matriarch/Hit",5,0.8)
    TNT1 A 0 A_PlaySound("Matriarch/Exp",6,1.0)
    TNT1 A 0 A_Explode((5*random(1,3)),192,0)
    TNT1 A 0 A_SpawnItemEx("NotExactlyChillgraspBlast",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
    TNT1 A 0 A_AlertMonsters
    TNT1 A 15 A_Quake(3,120,0,512,"none")
    Stop
  }
}

ACTOR SovereignDarknessSlug: MatriarchSlug
{
  DamageType Darkness
  Decal ""
  States
  {
  Death:
    TNT1 A 0 A_Quake (6, 25, 0, 256, none)
    TNT1 A 0 A_Quake (2, 25, 0, 384, none)
    TNT1 A 0 A_PlaySound("Matriarch/Hit",5,0.8)
    TNT1 A 0 A_PlaySound("Matriarch/Exp",6,1.0)
    TNT1 A 0 A_SpawnItemEx("SovereignBlackHole",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
    TNT1 A 0 A_AlertMonsters
    TNT1 A 15 A_Quake(3,120,0,512,"none")
    Stop
  }
}

ACTOR SovereignElectricSlug: MatriarchSlug
{
  DamageType Lightning
  Decal ""
  States
  {
  /*Spawn:
	TNT1 A 0 NoDelay A_Jump(176,2)
	TNT1 A 0 A_ChangeFlag("PAINLESS",1)
	TNT1 A 0
	Goto Super::Spawn*/
  Death:
    TNT1 A 0 A_Quake (6, 25, 0, 256, none)
    TNT1 A 0 A_Quake (2, 25, 0, 384, none)
    TNT1 A 0 A_PlaySound("Matriarch/Hit",5,0.8)
    TNT1 A 0 A_PlaySound("Matriarch/Exp",6,1.0)
	TNT1 A 0 A_PlaySound("Thunderstruck/Use",7,1)
    TNT1 A 0 A_AlertMonsters
	TNT1 A 0 A_CheckFloor("Watercheck")
  DeathContinue:
	TNT1 A 0 A_Explode((100*random(1,3)),192,0)
	TNT1 AAAAA 0 A_SpawnItemEx("TheLightning2",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	TNT1 A 0 A_SpawnItemEx("LightningCloudSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	TNT1 A 0 A_SpawnItemEx("LightningParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	TNT1 A 0 A_SpawnItemEx("LightningBlast1",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	TNT1 A 0 A_SpawnItemEx("LightningBlast2",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	TNT1 A 15 A_Quake(3,120,0,512,"none")
	Stop
  Watercheck:
	TNT1 A 0 A_JumpIf(CallACS("WaterBollocks") == true, "Supercharge")
	Goto DeathContinue
  Supercharge:
	TNT1 A 0 A_Explode((250*random(1,3)),256,0)
	TNT1 AAAAAAAA 0 A_SpawnItemEx("TheLightning",random(25,-25),random(25,-25),random(25,-25),0,0,0,0,SXF_CLIENTSIDE)
	TNT1 A 0 A_SpawnItemEx("LightningCloudSpawnerSupercharged",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	TNT1 A 0 A_SpawnItemEx("LightningParticleSpawnerSupercharged",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	TNT1 A 0 A_SpawnItemEx("LightningBlast1",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	TNT1 A 0 A_SpawnItemEx("LightningBlast2",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	TNT1 AAAA 2 A_SpawnItemEx("LightningBlast3",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	Stop
  }
}

ACTOR SovereignFlameSlug: MatriarchSlug
{
  DamageType Fire
  Decal ""
  States
  {
  Death:
    TNT1 A 0 A_Quake (6, 25, 0, 256, none)
    TNT1 A 0 A_Quake (2, 25, 0, 384, none)
    TNT1 A 0 A_PlaySound("Matriarch/Hit",5,0.8)
    TNT1 A 0 A_PlaySound("Matriarch/Exp",6,1.0)
	TNT1 A 0 A_PlaySound("Skullchunk/Impact",4,1.0)
	TNT1 A 0 A_Explode(100,192,0)
	TNT1 A 0 A_Quake(2,25,0,384,"none")
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 A_SpawnItemEx("SkullfireDrop",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
	TNT1 A 0 A_SpawnItemEx("SkullfireBlaster",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
	TNT1 A 0 A_SpawnItemEx("SkullfireDropper",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
	TNT1 A 25 A_Quake(3,120,0,512,"none")
	Stop
	}
}

//FX.
ACTOR ScourgebreathClouder
{
	ReactionTime 12
	DamageType Breath
	+NOINTERACTION
	+FOILINVUL
	States
	{
	Spawn:
		TNT1 A 0 NoDelay A_PlaySound("Breath/Loop",5,0.7,1)//A_PlaySound("Breath/Start",6,0.8)
	Looplet:	
		TNT1 A random(1,4) A_SpawnItemEx("ScourgebreathCloud",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
		TNT1 A 0 A_Explode(7,128,0)
		TNT1 A 0 A_Countdown
		Loop
	Death:
		TNT1 A 15 A_PlaySound("Breath/End",5,0.8)
		Stop
	}
}

ACTOR ScourgebreathCloud
{
	+NOINTERACTION
	ReactionTime 10
	States
	{
	Spawn:
		TNT1 A 0 NoDelay A_Countdown
		TNT1 A 0 A_SpawnItemEx("BreathRedLightning",frandom(5.0,-5.0),frandom(5.0,-5.0),frandom(5.0,-5.0),frandom(2.0,4.0),frandom(2.5,1.0),frandom(2.0,-2.0),frandom(0.0,360.0),SXF_TRANSFERPOINTERS|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("BreathBlackLightning",frandom(5.0,-5.0),frandom(5.0,-5.0),frandom(5.0,-5.0),frandom(2.0,4.0),frandom(2.5,1.0),frandom(2.0,-2.0),frandom(0.0,360.0),SXF_TRANSFERPOINTERS|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("BreathRedCloud",frandom(5.0,-5.0),frandom(5.0,-5.0),frandom(5.0,-5.0),frandom(2.0,4.0),frandom(2.5,1.0),frandom(2.0,-2.0),frandom(0.0,360.0),SXF_TRANSFERPOINTERS|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("BreathBlackCloud",frandom(5.0,-5.0),frandom(5.0,-5.0),frandom(5.0,-5.0),frandom(2.0,4.0),frandom(2.5,1.0),frandom(2.0,-2.0),frandom(0.0,360.0),SXF_TRANSFERPOINTERS|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("BreathRedParticle",frandom(5.0,-5.0),frandom(5.0,-5.0),frandom(5.0,-5.0),frandom(2.0,4.0),frandom(2.5,1.0),frandom(2.0,-2.0),frandom(0.0,360.0),SXF_TRANSFERPOINTERS|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("BreathBlackParticle",frandom(5.0,-5.0),frandom(5.0,-5.0),frandom(5.0,-5.0),frandom(2.0,4.0),frandom(2.5,1.0),frandom(2.0,-2.0),frandom(0.0,360.0),SXF_TRANSFERPOINTERS|SXF_CLIENTSIDE)
		Loop
	Death:
		TNT1 A 0
		Stop
	}
}

ACTOR NotExactlyChillgraspBlast: ChillgraspBlast
{
	States
	{
	Spawn:
		TNT1 A 0 NoDelay A_PlaySound("Chillgrasp/Blast",4,0.8)
		TNT1 A 0 A_SetUserVar("User_Counter", 10)
		TNT1 A 0 A_SpawnItemEx("ChillgraspSpawnerMist", 0, 0, 20, 0, 0, 0, 0, SXF_CLIENTSIDE, 0)
		TNT1 A 0 A_SpawnItemEx("ChillgraspSpawnerShockwave", 0, 0, 15, 0, 0, 0, 0, SXF_CLIENTSIDE, 0)
		TNT1 A 0 A_SpawnItemEx("ChillgraspAurora1", 0, 0, 20, 0, 0, 0, 0, SXF_CLIENTSIDE, 0)
		TNT1 A 0 A_SpawnItemEx("ChillgraspAurora2", 0, 0, 20, 0, 0, 0, 0, SXF_CLIENTSIDE, 0)
		TNT1 A 0 A_SpawnItemEx("ChillgraspAurora3", 0, 0, 20, 0, 0, 0, 0, SXF_CLIENTSIDE, 0)
		TNT1 A 0 A_SpawnItemEx("ChillgraspSpawnerSnow", 0, 0, 20, 0, 0, 0, 0, SXF_CLIENTSIDE, 0)
		TNT1 A 0 A_SpawnItemEx("ChillgraspCloud", 0, 0, 20, 0, 0, 0, 0, SXF_CLIENTSIDE, 0)
		TNT1 A 0 A_SpawnItemEx("ChillgraspPulse", 0, 0, 20, 0, 0, 0, 0, SXF_CLIENTSIDE, 0) //Required for light to work
		//TNT1 A 0 A_Blast(BF_DONTWARN|BF_AFFECTBOSSES, 255, 192, 55, "BlastEffect", None)
	Looplet:
		TNT1 A 0 A_JumpIf(User_Counter <= 0, "NULL")
		TNT1 A 0 A_SetUserVar("User_Counter", User_Counter - 1)
		TNT1 A 0 A_SetUserVar("User_ExpandDong", User_ExpandDong + 16)
		TNT1 A 0 A_SetUserVar("User_Buttsauce", User_Buttsauce + 4)
		TNT1 A 1 A_Explode(60 - User_Buttsauce, 96 + User_ExpandDong, 0,0)
		Loop
	}
}

ACTOR SovereignBlackHole: DarkVoidEffectInheritance
{
	Scale 0
	Alpha 0.7
	DamageType "Darkness"
	ReactionTime 9
	+FORCERADIUSDMG
	States
	{
	Spawn:
		TNT1 A 0 NoDelay A_SpawnItemEx("SovereignBlackerHole",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 A 0 A_PlaySound("DarkVoid/Fire",1)
		TNT1 A 0 A_PlaySound("DarkVoid/Add1",2)
		TNT1 A 0 A_PlaySound("DarkVoid/Add2",3)
		TNT1 A 0 A_PlaySound("DarkVoid2/SuperSuck",4)
		VOIP A 0 A_Quake(9, 360, 0, 32,"none")
		VOIP A 0 A_Quake(6, 360, 0, 64,"none")
		VOIP A 0 A_Quake(2, 360, 0, 128,"none")
		VOIP A 0 A_Quake(1, 360, 0, 256,"none")
		VOIP ABCDEFGHIJKL 1 Bright A_SetScale(ScaleX+0.25)
	Looplet:
		VOIP ABCDEFGHIJKL 1 Bright
			{
			A_RadiusGive("TimeToStop",384,RGF_MONSTERS,1);
			A_RadiusThrust(-6000, 384, RTF_NOIMPACTDAMAGE|RTF_THRUSTZ);
			A_Explode(3,64,0);
			}
		TNT1 A 0 A_Countdown
		Loop
	Death:
		VOIP ABCDEFGHIJKL 1 Bright A_SetScale(ScaleX-0.24)
		TNT1 A 0 A_SetScale(1.0)
		TNT1 A 0 A_Explode(100,192,0)
		TNT1 A 0 A_PlaySound("DarkVoid2/Blast",4)
		TNT1 A 0 A_PlaySound("DarkVoid2/Explode",5)
		TNT1 A 0 A_PlaySound("DarkVoid/Death",6)
		TNT1 A 0 A_Quake (4, 27, 0, 64, none)
		TNT1 A 0 A_Quake (1, 27, 0, 96, none)
		TNT1 A 0 A_SpawnItemEx("DarkVoidChunkWaver",SXF_TRANSFERPOINTERS)
		TNT1 A 0 A_SpawnItemEx("DarkVoidImpactFlareSpawner",SXF_TRANSFERPOINTERS)
		TNT1 AAAAAAAAAAAAAAA 0 A_SpawnItemEx("DarkVoidSmokeTrailNormal",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),SXF_TRANSFERPOINTERS)
		TNT1 AAAAAAAAAAAAAAA 0 A_SpawnItemEx("DarkVoidSmokeTrailDark",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),SXF_TRANSFERPOINTERS)
		TNT1 A 0 A_SpawnItemEx("DarkVoidChunkWaver",SXF_TRANSFERPOINTERS)
		VORX ABCD 1
		TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("DarkVoidSmokeTrailNormal",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),SXF_TRANSFERPOINTERS)
		TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("DarkVoidSmokeTrailDark",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),SXF_TRANSFERPOINTERS)
		TNT1 A 0 A_SpawnItemEx("DarkVoidChunkWaver",SXF_TRANSFERPOINTERS)
		VORX EFGH 1
		TNT1 AAAAAAAAA 0 A_SpawnItemEx("DarkVoidSmokeTrailNormal",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),SXF_TRANSFERPOINTERS)
		TNT1 AAAAAAAAA 0 A_SpawnItemEx("DarkVoidSmokeTrailDark",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),SXF_TRANSFERPOINTERS)
		TNT1 A 0 A_SpawnItemEx("DarkVoidChunkWaver",SXF_TRANSFERPOINTERS)
		VORX IJKL 1
		TNT1 AAAAAA 0 A_SpawnItemEx("DarkVoidSmokeTrailNormal",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),SXF_TRANSFERPOINTERS)
		TNT1 AAAAAA 0 A_SpawnItemEx("DarkVoidSmokeTrailDark",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),SXF_TRANSFERPOINTERS)
		TNT1 A 0 A_SpawnItemEx("DarkVoidChunkWaver",SXF_TRANSFERPOINTERS)
		TNT1 B 30
		Stop
	}
}

ACTOR SovereignBlackerHole: SovereignBlackHole
{
	Renderstyle Stencil
	StencilColor Black
	States
	{
	Spawn:
		TNT1 A 0 NoDelay
		VOIP LKJIHGEDCBA 1 Bright A_SetScale(ScaleX+0.25)
	Looplet:
		VOIP LKJIHGEDCBA 1 Bright
		TNT1 A 0 A_Countdown
		Loop
	Death:
		VOIP LKJIHGEDCBA 1 Bright A_SetScale(ScaleX-0.24)
		Stop

	}
}