
//////////////
//MISC-STUFF//
//////////////

//COUNTER\TRIGGER

ACTOR GuruCount : Inventory { Inventory.MaxAmount 999 }
ACTOR GuruCharge : Inventory { Inventory.MaxAmount 5 }

//INHERITANCE

ACTOR GuruEffectInheritance
{
Alpha 0.99
Renderstyle Add
+NOCLIP
+NOGRAVITY
+NOTIMEFREEZE
+NOINTERACTION
}

ACTOR GuruSpawnerInheritance
{
+NOCLIP
+NOGRAVITY
+NOTIMEFREEZE
+NOINTERACTION
}

ACTOR GuruSmokeInheritance
{
Renderstyle Add
+NOGRAVITY
+NOTIMEFREEZE
+NOINTERACTION
+FORCERADIUSDMG
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 AA 1 Bright A_Jump(256,"Spawn1","Spawn2","Spawn3","Spawn4","Spawn5","Spawn6")
		Goto Spawn1
	Spawn1:
		TNT1 A 0 Bright A_SetScale(ScaleX +0.003, ScaleY +0.003)
		TNT1 A 0 Bright A_Explode(15,128)
		THD1 A 4 Bright A_FadeOut(0.009,1)
		Loop
	Spawn2:
		TNT1 A 0 Bright A_SetScale(ScaleX +0.003, ScaleY +0.003)
		TNT1 A 0 Bright A_Explode(15,128)
		THD2 A 4 Bright A_FadeOut(0.007,1)
		Loop
	Spawn3:
		TNT1 A 0 Bright A_SetScale(ScaleX +0.003, ScaleY +0.003)
		TNT1 A 0 Bright A_Explode(15,128)
		THD3 A 4 Bright A_FadeOut(0.006,1)
		Loop
	Spawn4:
		TNT1 A 0 Bright A_SetScale(ScaleX -0.003, ScaleY -0.003)
		TNT1 A 0 Bright A_Explode(15,128)
		THD1 A 4 Bright A_FadeOut(0.0075,1)
		Loop
	Spawn5:
		TNT1 A 0 Bright A_SetScale(ScaleX -0.001, ScaleY -0.001)
		TNT1 A 0 Bright A_Explode(15,128)
		THD2 A 4 Bright A_FadeOut(0.0065,1)
		Loop
	Spawn6:
		TNT1 A 0 Bright A_SetScale(ScaleX -0.003, ScaleY -0.003)
		TNT1 A 0 Bright A_Explode(15,128)
		THD3 A 4 Bright A_FadeOut(0.008,1)
		Loop
	}
}


////////
//FIRE//
////////


//PROJECTILE

ACTOR GuruBall
{
Projectile
Height 6
Radius 11
Speed 15
Scale 0.25
Renderstyle Add
//MissileType "GuruLesserProjectileTrail"
Damage 125
+RIPPER
+FOILINVUL
+BLOODLESSIMPACT
+FORCERADIUSDMG
+DONTBLAST
+SKYEXPLODE
+NOTIMEFREEZE
+THRUSPECIES
+MTHRUSPECIES
+FORCEXYBILLBOARD
DamageType "LegendaryGuru"
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_PlaySound("Weapons/GuruFly",5,1.0,1)
		Goto SpawnLoop
	SpawnLoop:
		TNT1 A 0 Bright A_Jump(128,"LEGBFGSFX")
		TNT1 A 0 Bright A_Explode(600,64,0,1)
		TNT1 AAA 0 Bright A_CustomMissile("LegHumanLiteShot",0,0,random(0,360),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,360))
		TNT1 A 0 Bright A_SpawnItemEx("GuruTrailSpark",random(28,-28),random(28,-28),random(28,-28),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SpawnItemEx("GuruTrail",-3,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		YBAL A 1 Bright
		Loop	
	LEGBFGSFX:
		TNT1 A 0 Bright A_SpawnItemEx("GuruTrailSpark",random(28,-28),random(28,-28),random(28,-28),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SpawnItemEx("GuruTrail",-3,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_CustomMissile("LegHumanDevastatorBolt",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
		YBAL A 1 Bright A_SpawnItemEx("LegPlayerDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION)
		TNT1 A 0 Bright A_SpawnItemEx("GuruTrailSpark",random(28,-28),random(28,-28),random(28,-28),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SpawnItemEx("GuruTrail",-3,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_CustomMissile("LegHumanDevastatorBolt",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
		YBAL A 1 Bright A_SpawnItemEx("LegPlayerDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION)
		TNT1 A 0 Bright A_SpawnItemEx("GuruTrailSpark",random(28,-28),random(28,-28),random(28,-28),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SpawnItemEx("GuruTrail",-3,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_CustomMissile("LegHumanDevastatorBolt",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
		YBAL A 1 Bright A_SpawnItemEx("LegPlayerDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION)
		TNT1 A 0 Bright A_SpawnItemEx("GuruTrailSpark",random(28,-28),random(28,-28),random(28,-28),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SpawnItemEx("GuruTrail",-3,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_CustomMissile("LegHumanDevastatorBolt",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
		YBAL A 1 Bright A_SpawnItemEx("LegPlayerDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION)
		Goto SpawnLoop
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_PlaySound("Weapons/GuruBlast3",5,1.0,0)
		//COLLATERAL DAMAGE EFFECTS
		TNT1 A 0 Bright A_Explode(6000,486,0,1)
		TNT1 A 0 Bright A_BFGSpray("GuruSpray",15,20)
		//IMPACT STUFF
		TNT1 A 0 Bright A_SpawnItemEx("GuruStruckGlowX",0,0,10,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SpawnItemEx("GuruStruckGlowY",0,0,10,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 AAAAAAAAAAA 0 Bright A_SpawnItemEx("GuruSphereSmoke",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_SETMASTER|SXF_NOCHECKPOSITION,0)
		TNT1 AAAAAAAAAAA 0 Bright A_SpawnItemEx("GuruChunkSpark",random(126,-126),random(126,-126),random(66,-66),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 AAAAAAAAAAAAAAAAAAA 2 Bright A_SpawnItemEx("GuruChunkSpark",random(126,-126),random(126,-126),random(66,-66),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		Stop
	}
}

ACTOR PlayerGuruBall : GuruBall
{
+NODAMAGETHRUST
Species "Player"
DamageType "LegendaryGuruPlayer"
}

ACTOR LegPlayerDTBFGProjectileAttack
{
PROJECTILE
MissileType "PlayerDTBFGRailgunSlug"
+ISMONSTER
-COUNTKILL
+LOOKALLAROUND
+QUICKTORETALIATE
+NOTARGET
+FRIENDLY
+NOCLIP
+NOTIMEFREEZE
Obituary "%o got obliterated by %k's Legendary BFG."
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 AAAAA 1 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,1250,0,360,"Attack")
		Goto Death
	Attack:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_FaceTarget
		TNT1 A 0 Bright A_MissileAttack
		TNT1 A 1 Bright A_CustomRailgun(-1,0,NONE,"Yellow",1,1,1)
		Goto Death
	Death:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR CyberGuruBall : GuruBall
{
DamageType "Cyber10K"
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_PlaySound("Weapons/GuruFly",5,1.0,1)
		Goto SpawnLoop
	SpawnLoop:
		TNT1 A 0 Bright A_Jump(128,"LEGBFGSFX")
		TNT1 A 0 Bright A_Explode(600,64,0,1)
		TNT1 AAA 0 Bright A_CustomMissile("LegCybLiteShot",0,0,random(0,360),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,360))
		TNT1 A 0 Bright A_SpawnItemEx("GuruTrailSpark",random(28,-28),random(28,-28),random(28,-28),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SpawnItemEx("GuruTrail",-3,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		YBAL A 1 Bright
		Loop
	LEGBFGSFX:
		TNT1 A 0 Bright A_SpawnItemEx("GuruTrailSpark",random(28,-28),random(28,-28),random(28,-28),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SpawnItemEx("GuruTrail",-3,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_CustomMissile("LegCybDevastatorBolt",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
		YBAL A 1 Bright A_SpawnItemEx("CyberDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION)
		TNT1 A 0 Bright A_SpawnItemEx("GuruTrailSpark",random(28,-28),random(28,-28),random(28,-28),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SpawnItemEx("GuruTrail",-3,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_CustomMissile("LegCybDevastatorBolt",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
		YBAL A 1 Bright A_SpawnItemEx("CyberDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION)
		TNT1 A 0 Bright A_SpawnItemEx("GuruTrailSpark",random(28,-28),random(28,-28),random(28,-28),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SpawnItemEx("GuruTrail",-3,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_CustomMissile("LegCybDevastatorBolt",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
		YBAL A 1 Bright A_SpawnItemEx("CyberDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION)
		TNT1 A 0 Bright A_SpawnItemEx("GuruTrailSpark",random(28,-28),random(28,-28),random(28,-28),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SpawnItemEx("GuruTrail",-3,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_CustomMissile("LegCybDevastatorBolt",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
		YBAL A 1 Bright A_SpawnItemEx("CyberDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION)
		Goto SpawnLoop
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_PlaySound("Weapons/GuruBlast3",5)
		//COLLATERAL DAMAGE EFFECTS
		TNT1 A 0 Bright A_Explode(6000,486,0,1)
		TNT1 A 0 Bright A_BFGSpray("GuruSpray",15,20)
		//IMPACT STUFF
		TNT1 A 0 Bright A_SpawnItemEx("GuruStruckGlowX",0,0,10,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SpawnItemEx("GuruStruckGlowY",0,0,10,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 AAAAAAAAAAA 0 Bright A_SpawnItemEx("CyberGuruSphereSmoke",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_SETMASTER|SXF_NOCHECKPOSITION,0)
		TNT1 AAAAAAAAAAA 0 Bright A_SpawnItemEx("GuruChunkSpark",random(126,-126),random(126,-126),random(66,-66),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 AAAAAAAAAAAAAAAAAAA 2 Bright A_SpawnItemEx("GuruChunkSpark",random(126,-126),random(126,-126),random(66,-66),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		Stop
	}
}

ACTOR CyberDTBFGProjectileAttack
{
PROJECTILE
Height 1
Radius 1
Speed 18
MissileType "SentientDTBFGRailgunSlug"
+ISMONSTER
-COUNTKILL
+LOOKALLAROUND
+QUICKTORETALIATE
+NOTARGET
+THRUACTORS
+NOTIMEFREEZE
Obituary "%o couldn't evade from Legendary BFG!"
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 AAAAA 1 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,1250,0,360,"Attack")
		Goto Death
	Attack:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_FaceTarget
		TNT1 A 0 Bright A_MissileAttack
		TNT1 A 1 Bright A_CustomRailgun(-1,0,NONE,"Yellow",1,1,1)
		Goto Death
	Death:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR SentientGuruBall : GuruBall
{
DamageType "LegMind"
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_PlaySound("Weapons/GuruFly",5,1.0,1)
		Goto SpawnLoop
	SpawnLoop:
		TNT1 A 0 Bright A_Jump(128,"LEGBFGSFX")
		TNT1 A 0 Bright A_Explode(600,64,0,1)
		TNT1 AAA 0 Bright A_CustomMissile("LegSentientLiteShot",0,0,Random(0,360),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,360))
		TNT1 A 0 Bright A_SpawnItemEx("GuruTrailSpark",random(28,-28),random(28,-28),random(28,-28),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SpawnItemEx("GuruTrail",-3,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		YBAL A 1 Bright
		Loop
	LEGBFGSFX:
		TNT1 A 0 Bright A_SpawnItemEx("GuruTrailSpark",random(28,-28),random(28,-28),random(28,-28),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SpawnItemEx("GuruTrail",-3,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_CustomMissile("LegSentientDevastatorBolt",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
		YBAL A 1 Bright A_SpawnItemEx("LegSentientDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		TNT1 A 0 Bright A_SpawnItemEx("GuruTrailSpark",random(28,-28),random(28,-28),random(28,-28),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SpawnItemEx("GuruTrail",-3,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_CustomMissile("LegSentientDevastatorBolt",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
		YBAL A 1 Bright A_SpawnItemEx("LegSentientDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		TNT1 A 0 Bright A_SpawnItemEx("GuruTrailSpark",random(28,-28),random(28,-28),random(28,-28),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SpawnItemEx("GuruTrail",-3,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_CustomMissile("LegSentientDevastatorBolt",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
		YBAL A 1 Bright A_SpawnItemEx("LegSentientDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		TNT1 A 0 Bright A_SpawnItemEx("GuruTrailSpark",random(28,-28),random(28,-28),random(28,-28),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SpawnItemEx("GuruTrail",-3,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_CustomMissile("LegSentientDevastatorBolt",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
		YBAL A 1 Bright A_SpawnItemEx("LegSentientDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		Goto SpawnLoop
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_PlaySound("Weapons/GuruBlast3",5)
		//COLLATERAL DAMAGE EFFECTS
		TNT1 A 0 Bright A_Explode(6000,486,0,1)
		TNT1 A 0 Bright A_BFGSpray("GuruSpray",15,20)
		//IMPACT STUFF
		TNT1 A 0 Bright A_SpawnItemEx("GuruStruckGlowX",0,0,10,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SpawnItemEx("GuruStruckGlowY",0,0,10,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 AAAAAAAAAAA 0 Bright A_SpawnItemEx("SentientGuruSphereSmoke",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_SETMASTER,0)
		TNT1 AAAAAAAAAAA 0 Bright A_SpawnItemEx("GuruChunkSpark",random(126,-126),random(126,-126),random(66,-66),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 AAAAAAAAAAAAAAAAAAA 2 Bright A_SpawnItemEx("GuruChunkSpark",random(126,-126),random(126,-126),random(66,-66),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		Stop
	}
}

ACTOR GuruSphereSmoke : GuruSmokeInheritance
{
PROJECTILE
Scale 1.8
Alpha 0.45
DamageType "Legendary"
States
	{
	Spawn:
		TNT1 A 0
		TNT1 AA 1 A_Jump(256,"Spawn1","Spawn2","Spawn3","Spawn4","Spawn5","Spawn6")
		Goto Spawn1
	Spawn1:
		TNT1 A 0 A_SetScale(ScaleX -0.002, ScaleY -0.002)
		TNT1 A 0 A_JumpIf(Alpha<0.3,2)
		THD1 A 0 A_Explode(10,164)
		THD1 A 4 Bright A_FadeOut(0.0065,1)
		Loop
	Spawn2:
		TNT1 A 0 A_SetScale(ScaleX -0.002, ScaleY -0.002)
		TNT1 A 0 A_JumpIf(Alpha<0.3,2)
		THD1 A 0 A_Explode(10,164)
		THD2 A 4 Bright A_FadeOut(0.0065,1)
		Loop
	Spawn3:
		TNT1 A 0 A_SetScale(ScaleX -0.002, ScaleY -0.002)
		TNT1 A 0 A_JumpIf(Alpha<0.3,2)
		THD1 A 0 A_Explode(10,164)
		THD3 A 4 Bright A_FadeOut(0.0065,1)
		Loop
	Spawn4:
		TNT1 A 0 A_SetScale(ScaleX -0.002, ScaleY -0.002)
		TNT1 A 0 A_JumpIf(Alpha<0.3,2)
		THD1 A 0 A_Explode(10,164)
		THD1 A 4 Bright A_FadeOut(0.0065,1)
		Loop
	Spawn5:
		TNT1 A 0 A_SetScale(ScaleX -0.002, ScaleY -0.002)
		TNT1 A 0 A_JumpIf(Alpha<0.3,2)
		THD1 A 0 A_Explode(10,164)
		THD2 A 4 Bright A_FadeOut(0.0065,1)
		Loop
	Spawn6:
		TNT1 A 0 A_SetScale(ScaleX -0.002, ScaleY -0.002)
		TNT1 A 0 A_JumpIf(Alpha<0.3,2)
		THD1 A 0 A_Explode(10,164)
		THD3 A 4 Bright A_FadeOut(0.0065,1)
		Loop
	}
}

ACTOR SentientGuruSphereSmoke : GuruSphereSmoke
{
PROJECTILE
Scale 1.8
Alpha 0.45
DamageType "LegMind"
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 AA 1 Bright A_Jump(256,"Spawn1","Spawn2","Spawn3","Spawn4","Spawn5","Spawn6")
		Goto Spawn1
	Spawn1:
		TNT1 A 0 A_SetScale(ScaleX -0.002, ScaleY -0.002)
		TNT1 A 0 A_JumpIf(Alpha<0.3,2)
		TNT1 A 0 A_Explode(10,164)
		THD1 A 4 Bright A_FadeOut(0.0065,1)
		Loop
	Spawn2:
		TNT1 A 0 A_SetScale(ScaleX -0.002, ScaleY -0.002)
		TNT1 A 0 A_JumpIf(Alpha<0.3,2)
		TNT1 A 0 A_Explode(10,164)
		THD2 A 4 Bright A_FadeOut(0.0065,1)
		Loop
	Spawn3:
		TNT1 A 0 A_SetScale(ScaleX -0.002, ScaleY -0.002)
		TNT1 A 0 A_JumpIf(Alpha<0.3,2)
		TNT1 A 0 A_Explode(10,164)
		THD3 A 4 Bright A_FadeOut(0.0065,1)
		Loop
	Spawn4:
		TNT1 A 0 A_SetScale(ScaleX -0.002, ScaleY -0.002)
		TNT1 A 0 A_JumpIf(Alpha<0.3,2)
		TNT1 A 0 A_Explode(10,164)
		THD1 A 4 Bright A_FadeOut(0.0065,1)
		Loop
	Spawn5:
		TNT1 A 0 A_SetScale(ScaleX -0.002, ScaleY -0.002)
		TNT1 A 0 A_JumpIf(Alpha<0.3,2)
		TNT1 A 0 A_Explode(10,164)
		THD2 A 4 Bright A_FadeOut(0.0065,1)
		Loop
	Spawn6:
		TNT1 A 0 A_SetScale(ScaleX -0.002, ScaleY -0.002)
		TNT1 A 0 A_JumpIf(Alpha<0.3,2)
		TNT1 A 0 A_Explode(10,164)
		THD3 A 4 Bright A_FadeOut(0.0065,1)
		Loop
	}
}

ACTOR CardinalSpecialGuruBall : GuruBall
{
Height 8
Radius 16
Speed 20
Scale 0.5
Damage 500
+EXTREMEDEATH
Species "Cybers"
DamageType "Cyber10K"
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_PlaySound("Weapons/GuruFly",5,1.0,1)
		Goto SpawnLoop
	SpawnLoop:
		TNT1 A 0 Bright A_Jump(128,"LEGBFGSFX")
		TNT1 A 0 Bright A_Explode(600,64,0,1)
		TNT1 A 0 Bright A_CustomMissile("LegCardDevastatorBolt",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
		TNT1 A 0 Bright A_SpawnItemEx("BlueGuruTrailSpark",random(28,-28),random(28,-28),random(28,-28),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_CustomMissile("LegCardDevastatorBolt",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
		TNT1 A 0 Bright A_SpawnItemEx("BlueGuruTrail",-3,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		BBAL A 1 Bright
		Loop
	LEGBFGSFX:
		TNT1 A 0 A_SpawnItemEx("BlueGuruTrailSpark",random(28,-28),random(28,-28),random(28,-28),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("BlueGuruTrail",-3,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_CustomMissile("LegCardDevastatorBolt",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
		BBAL A 1 Bright A_SpawnItemEx("CardinalPlayerDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		TNT1 A 0 A_SpawnItemEx("BlueGuruTrailSpark",random(28,-28),random(28,-28),random(28,-28),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("BlueGuruTrail",-3,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_CustomMissile("LegCardDevastatorBolt",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
		BBAL A 1 Bright A_SpawnItemEx("CardinalPlayerDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		TNT1 A 0 A_SpawnItemEx("BlueGuruTrailSpark",random(28,-28),random(28,-28),random(28,-28),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("BlueGuruTrail",-3,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_CustomMissile("LegCardDevastatorBolt",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
		BBAL A 1 Bright A_SpawnItemEx("CardinalPlayerDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		TNT1 A 0 A_SpawnItemEx("BlueGuruTrailSpark",random(28,-28),random(28,-28),random(28,-28),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("BlueGuruTrail",-3,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_CustomMissile("LegCardDevastatorBolt",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
		BBAL A 1 Bright A_SpawnItemEx("CardinalPlayerDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
		Goto SpawnLoop
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_PlaySound("Weapons/GuruBlast3",5)
		//COLLATERAL DAMAGE EFFECTS
		TNT1 A 0 Bright A_Explode(6000,486,0,1)
		TNT1 A 0 Bright A_BFGSpray("BlueGuruSpray",15,20)
		//IMPACT STUFF
		TNT1 A 0 Bright A_SpawnItemEx("BlueGuruStruckGlowX",0,0,10,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 A 0 Bright A_SpawnItemEx("BlueGuruStruckGlowY",0,0,10,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 AAAAAAAAAAA 0 A_SpawnItemEx("CardinalGuruSphereSmoke",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_SETMASTER,0)
		TNT1 AAAAAAAAAAA 0 A_SpawnItemEx("BlueGuruChunkSpark",random(126,-126),random(126,-126),random(66,-66),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 AAAAAAAAAAAAAAAAAAA 2 A_SpawnItemEx("BlueGuruChunkSpark",random(126,-126),random(126,-126),random(66,-66),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		Stop
	}
}

ACTOR BlueGuruTrail : GuruEffectInheritance
{
Scale 0.5
Renderstyle Add
Alpha 0.65
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		Goto Fade
	Fade:
		TNT1 A 0 Bright A_SetScale(ScaleX -0.01, ScaleY -0.01)
		BBAL A 1 Bright A_FadeOut(0.1,1)
		Loop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR GuruTrailSpark : GuruEffectInheritance
{
Scale 0.5
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		YELE ABCDEF 1 Bright A_FadeOut(0.1,1)
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR BlueGuruTrailSpark : GuruEffectInheritance
{
Scale 1.0
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		BLEL ABCDEF 1 Bright A_FadeOut(0.1,1)
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR BlueGuruChunkSpark : GuruTrailSpark
{
Scale 1.3
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		BLEL ABCDEF 2 Bright A_FadeOut(0.1,1)
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR BlueGuruStruckGlowY : GuruEffectInheritance
{
Scale 0.3
Alpha 0.5
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		Goto Fade
	Fade:
		TNT1 A 0 Bright A_SetScale(ScaleX +0.025, ScaleY +0.1)
		BBUM A 1 Bright A_FadeOut(0.01,1)
		Loop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR BlueGuruStruckGlowX : GuruEffectInheritance
{
Scale 0.4
Alpha 0.5
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		Goto Fade
	Fade:
		TNT1 A 0 Bright A_SetScale(ScaleX +0.1, ScaleY +0.025)
		BBUM A 1 Bright A_FadeOut(0.01,1)
		Loop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR BlueGuruSmokeInheritance
{
Renderstyle Add
+NOGRAVITY
+NOINTERACTION
+FORCERADIUSDMG
+NOTIMEFREEZE
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 AA 1 Bright A_Jump(256,"Spawn1","Spawn2","Spawn3","Spawn4","Spawn5","Spawn6")
		Goto Spawn1
	Spawn1:
		TNT1 A 0 Bright A_SetScale(ScaleX +0.003, ScaleY +0.003)
		TNT1 A 0 Bright A_Explode(15,128)
		BHD1 A 4 Bright A_FadeOut(0.009,1)
		Loop
	Spawn2:
		TNT1 A 0 Bright A_SetScale(ScaleX +0.003, ScaleY +0.003)
		TNT1 A 0 Bright A_Explode(15,128)
		BHD2 A 4 Bright A_FadeOut(0.007,1)
		Loop
	Spawn3:
		TNT1 A 0 Bright A_SetScale(ScaleX +0.003, ScaleY +0.003)
		TNT1 A 0 Bright A_Explode(15,128)
		BHD3 A 4 Bright A_FadeOut(0.006,1)
		Loop
	Spawn4:
		TNT1 A 0 Bright A_SetScale(ScaleX -0.003, ScaleY -0.003)
		TNT1 A 0 Bright A_Explode(15,128)
		BHD1 A 4 Bright A_FadeOut(0.0075,1)
		Loop
	Spawn5:
		TNT1 A 0 Bright A_SetScale(ScaleX -0.001, ScaleY -0.001)
		TNT1 A 0 Bright A_Explode(15,128)
		BHD2 A 4 Bright A_FadeOut(0.0065,1)
		Loop
	Spawn6:
		TNT1 A 0 Bright A_SetScale(ScaleX -0.003, ScaleY -0.003)
		TNT1 A 0 Bright A_Explode(15,128)
		BHD3 A 4 Bright A_FadeOut(0.008,1)
		Loop
	}
}

ACTOR CardinalGuruSphereSmoke : BlueGuruSmokeInheritance
{
PROJECTILE
Scale 3.0
Alpha 0.45
DamageType "Cyber10K"
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 AA 1 Bright A_Jump(256,"Spawn1","Spawn2","Spawn3","Spawn4","Spawn5","Spawn6")
		Goto Spawn1
	Spawn1:
		TNT1 A 0 Bright A_SetScale(ScaleX -0.002, ScaleY -0.002)
		TNT1 A 0 Bright A_JumpIf(Alpha<0.3,2)
		TNT1 A 0 Bright A_Explode(10,200,0)
		BHD1 A 4 Bright A_FadeOut(0.0065,1)
		Loop
	Spawn2:
		TNT1 A 0 Bright A_SetScale(ScaleX -0.002, ScaleY -0.002)
		TNT1 A 0 Bright A_JumpIf(Alpha<0.3,2)
		TNT1 A 0 Bright A_Explode(10,200,0)
		BHD2 A 4 Bright A_FadeOut(0.0065,1)
		Loop
	Spawn3:
		TNT1 A 0 Bright A_SetScale(ScaleX -0.002, ScaleY -0.002)
		TNT1 A 0 Bright A_JumpIf(Alpha<0.3,2)
		TNT1 A 0 Bright A_Explode(10,200,0)
		BHD3 A 4 Bright A_FadeOut(0.0065,1)
		Loop
	Spawn4:
		TNT1 A 0 Bright A_SetScale(ScaleX -0.002, ScaleY -0.002)
		TNT1 A 0 Bright A_JumpIf(Alpha<0.3,2)
		TNT1 A 0 Bright A_Explode(10,200,0)
		BHD1 A 4 Bright A_FadeOut(0.0065,1)
		Loop
	Spawn5:
		TNT1 A 0 Bright A_SetScale(ScaleX -0.002, ScaleY -0.002)
		TNT1 A 0 Bright A_JumpIf(Alpha<0.3,2)
		TNT1 A 0 Bright A_Explode(10,200,0)
		BHD2 A 4 Bright A_FadeOut(0.0065,1)
		Loop
	Spawn6:
		TNT1 A 0 Bright A_SetScale(ScaleX -0.002, ScaleY -0.002)
		TNT1 A 0 Bright A_JumpIf(Alpha<0.3,2)
		TNT1 A 0 Bright A_Explode(10,200,0)
		BHD3 A 4 Bright A_FadeOut(0.0065,1)
		Loop
	}
}

ACTOR CardinalPlayerDTBFGProjectileAttack
{
PROJECTILE
MissileType "CardinalDTBFGRailgunSlug"
+ISMONSTER
-COUNTKILL
+LOOKALLAROUND
+QUICKTORETALIATE
+NOTARGET
+THRUACTORS
+NOTIMEFREEZE
Obituary "The Legendary Cardinal showed no mercy when it erased %o from existance." 
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 AAAAA 1 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,1250,0,360,"Attack")
		Goto Death
	Attack:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_FaceTarget
		TNT1 A 0 Bright A_MissileAttack
		TNT1 A 1 Bright A_CustomRailgun(-1,0,NONE,"Blue",1,1,1)
		Goto Death
	Death:
		TNT1 A 1 Bright
		Stop
	}
}

//TRAIL

Actor GuruLesserProjectileTrail//Absent in LCA. Authors are addicts?
{
+NOCLIP
+NOINTERACTION
+CLIENTSIDEONLY
States
	{
	Spawn:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR GuruTrail : GuruEffectInheritance
{
Scale 0.25
Renderstyle Add
Alpha 0.65
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		Goto Fade
	Fade:
		TNT1 A 0 Bright A_SetScale(ScaleX -0.01, ScaleY -0.01)
		YBAL A 1 Bright A_FadeOut(0.1,1)
		Loop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

//IMPACT

ACTOR GuruStruckGlowY : GuruEffectInheritance
{
Scale 0.2
Alpha 0.5
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
	Fade:
		TNT1 A 0 Bright A_SetScale(ScaleX +0.025, ScaleY +0.1)
		YBUM A 1 Bright A_FadeOut(0.01,1)
		Loop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR GuruStruckGlowX : GuruEffectInheritance
{
Scale 0.2
Alpha 0.5
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		Goto Fade
	Fade:
		TNT1 A 0 Bright A_SetScale(ScaleX +0.1, ScaleY +0.025)
		YBUM A 1 Bright A_FadeOut(0.01,1)
		Loop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

//SPRAY

ACTOR GuruSpray : CustomSpray
{
+MTHRUSPECIES
+PUFFGETSOWNER
DamageType "Legendary"
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_SpawnItemEx("GuruSprayGlowX",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SpawnItemEx("GuruSprayGlowY",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 AAAAAA 3 Bright A_SpawnItemEx("GuruSpraySpark",random(24,-24),random(24,-24),random(24,-24),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		Stop
	}
}

ACTOR BlueGuruSpray : CustomSpray
{
+MTHRUSPECIES
+PUFFGETSOWNER
DamageType "Legendary"
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 A_SpawnItemEx("BlueGuruSprayGlowX",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("BlueGuruSprayGlowY",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 AAAAAA 3 A_SpawnItemEx("BlueGuruSpraySpark",random(24,-24),random(24,-24),random(24,-24),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		Stop
	}
}

ACTOR GuruSpraySpark : GuruEffectInheritance
{
Scale 0.25
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		YELE ABCDEF 2 Bright A_FadeOut(0.1,1)
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR GuruSprayGlowY : GuruStruckGlowX
{
Alpha 0.35
Scale 0.025 // Use 0.025 when A_SetScale is supported.
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		Goto Fade
	Fade:
		TNT1 A 0 Bright A_SetScale(ScaleX +0.05, ScaleY +0.01)
		YBUM A 1 Bright A_FadeOut(0.01,1)
		Loop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR GuruSprayGlowX : GuruSprayGlowY
{
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		Goto Fade
	Fade:
		TNT1 A 0 Bright A_SetScale(ScaleX +0.01, ScaleY +0.05)
		YBUM A 1 Bright A_FadeOut(0.01,1)
		Loop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR BlueGuruSprayGlowX : GuruSprayGlowX
{
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		Goto Fade
	Fade:
		TNT1 A 0 Bright A_SetScale(ScaleX +0.01, ScaleY +0.05)
		BBUM A 1 Bright A_FadeOut(0.01,1)
		Loop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR BlueGuruSprayGlowY : GuruSprayGlowY
{
Alpha 0.35
Scale 0.025 // Use 0.025 when A_SetScale is supported.
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		Goto Fade
	Fade:
		TNT1 A 0 Bright A_SetScale(ScaleX +0.05, ScaleY +0.01)
		BBUM A 1 Bright A_FadeOut(0.01,1)
		Loop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

////////////
//ALT FIRE//
////////////

//PROJECTILE

ACTOR GuruDeathball//Not used actor. What for?
{
Projectile
Height 7
Radius 12
Speed 10
Scale 0.35
Renderstyle Add
//MissileType "GuruLesserProjectileTrail"
Damage (0)
+RIPPER
+FOILINVUL
+FORCERADIUSDMG
+BLOODLESSIMPACT
+DONTBLAST
+NOTIMEFREEZE
DamageType "Legendary"
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_PlaySoundEx("Weapons/GuruFly","SoundSlot6",1)
		TNT1 A 0 Bright A_Explode(1600,92,0,1)
		TNT1 A 0 Bright A_SpawnItemEx("GuruTrailSpark",random(42,-42),random(42,-42),random(42,-42),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SpawnItemEx("GuruEmpowerTrail",-3,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		YBAL A 1 Bright
		Loop
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_PlaySound("Weapons/GuruBlast",6)
		//IMPACT STUFF
		TNT1 A 0 A_SpawnItemEx("GuruGigaStruckGlowX",0,0,10,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("GuruGigaStruckGlowY",0,0,10,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("GuruChunkRainSpawner",0,0,15,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		//AFTER-HIT EFFECTS
		TNT1 A 0 A_SpawnItemEx("GuruSparkSpawner",0,0,10,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("GuruSpiralSpawner",0,0,30,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("GuruSphere",0,0,15,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("GuruSpiralSounder",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		//COLLATERAL DAMAGE EFFECTS
		TNT1 A 1 Bright A_Explode(80000,768,0,1)
		Stop
	}
}

//TRAIL

ACTOR GuruEmpowerTrail : GuruTrail { Scale 0.35 }

//IMPACT

ACTOR GuruGigaStruckGlowX : GuruEffectInheritance
{
Scale 3.5
Alpha 0.5
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		Goto Fade
	Fade:
		TNT1 A 0 Bright A_SetScale(ScaleX +0.4, ScaleY +0.1)
		YBUM A 1 Bright A_FadeOut(0.005,1)
		Loop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR GuruGigaStruckGlowY : GuruEffectInheritance
{
Scale 3.5
Alpha 0.5
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		Goto Fade
	Fade:
		TNT1 A 0 Bright A_SetScale(ScaleX +0.1, ScaleY +0.4)
		YBUM A 1 Bright A_FadeOut(0.005,1)
		Loop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR GuruSparkSpawner : GuruSpawnerInheritance
{
ReactionTime 90
States
	{
	Spawn:
		TNT1 A 0 Bright
	Smoking:
		TNT1 A 0 Bright A_SpawnItemEx("GuruHitSpark",random(355,-355),random(355,-355),random(135,-20),random(2,-2),random(2,-2),random(2,-2),random(0,359),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 2 Bright
		TNT1 A 0 Bright A_Countdown
		Loop
	Death:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR GuruHitSpark : GuruTrailSpark { Scale 0.85 }

//SPHERE

ACTOR GuruSphere : GuruEffectInheritance
{
Scale 1.25
Alpha 0.95
ReactionTime 95
States
	{
	Spawn:
		TNT1 AA 0 Bright A_SpawnItemEx("GuruHitSpark",random(225,-225),random(225,-225),random(-375,145),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SpawnItemEx("GuruSphereSmoke",random(155,-155),random(155,-155),random(-75,145),0,0,0.00001*random(-300000,-100000),0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		YBAL A 1 Bright
		TNT1 A 0 Bright ThrustThingZ(0,18,0,0)
		TNT1 A 0 Bright A_Countdown
		Loop
	Death:
		TNT1 A 1 Bright A_SpawnItemEx("GuruSphere2",0,0,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		Stop
	}
}

ACTOR GuruSphere2 : GuruSphere
{
ReactionTime 85
States
	{
	Spawn:
		TNT1 AA 0 Bright A_SpawnItemEx("GuruHitSpark",random(225,-225),random(225,-225),random(-325,145),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SpawnItemEx("GuruSphereSmoke",random(155,-155),random(155,-155),random(-85,45),0,0,0.00001*random(-300000,-100000),0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		YBAL A 1 Bright
		TNT1 A 0 Bright ThrustThingZ(0,12,0,0)
		TNT1 A 0 Bright A_Countdown
		Loop
	Death:
		TNT1 A 1 Bright A_SpawnItemEx("GuruSphere3",0,0,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		Stop
	}
}

ACTOR GuruSphere3 : GuruSphere
{
ReactionTime 75
States
	{
	Spawn:
		TNT1 AA 0 Bright A_SpawnItemEx("GuruHitSpark",random(225,-225),random(225,-225),random(-350,145),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SpawnItemEx("GuruSphereSmoke",random(155,-155),random(155,-155),random(-85,45),0,0,0.00001*random(-300000,-100000),0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		YBAL A 1 Bright
		TNT1 A 0 Bright ThrustThingZ(0,6,0,0)
		TNT1 A 0 Bright A_Countdown
		Loop
	Death:
		TNT1 A 1 Bright A_SpawnItemEx("GuruSphere4",0,0,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		Stop
	}
}

ACTOR GuruSphere4 : GuruSphere
{
ReactionTime 65
States
	{
	Spawn:
		TNT1 AA 0 Bright A_SpawnItemEx("GuruHitSpark",random(225,-225),random(225,-225),random(-375,145),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SpawnItemEx("GuruSphereSmoke",random(155,-155),random(155,-155),random(-85,45),0,0,0.00001*random(-300000,-100000),0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		YBAL A 1 Bright
		TNT1 A 0 Bright ThrustThingZ(0,2,0,0)
		TNT1 A 0 Bright A_Countdown
		Loop
	Death:
		TNT1 A 1 Bright A_SpawnItemEx("GuruSphereStill",0,0,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		Stop
	}
}

ACTOR GuruSphereStill : GuruSphere
{
ReactionTime 55
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_PlaySound("Weapons/GuruFuuu",6,1)
		Goto Looplet
	Looplet:
		TNT1 AA 0 Bright A_SpawnItemEx("GuruHitSpark",random(225,-225),random(225,-225),random(-400,145),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SpawnItemEx("GuruHitSpark",random(125,-125),random(125,-125),random(-65,65),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SpawnItemEx("GuruSphereSmoke",random(155,-155),random(155,-155),random(-85,45),0,0,0.00001*random(-300000,-100000),0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		YBAL A 1 Bright
		TNT1 A 0 Bright A_Countdown
		Loop
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_PlaySound("Weapons/GuruBoom",6)
		TNT1 A 0 Bright A_PlaySound("Weapons/GuruBlast2",5)
		TNT1 A 0 Bright A_SpawnItemEx("GuruStormSpawner",0,0,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		TNT1 AAA 0 Bright A_SpawnItemEx("GuruKaboom",0,0,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		TNT1 A 1 Bright
		Stop
	}
}

//CHUNKLER

Actor GuruChunkRainSpawner : GuruSpawnerInheritance
{
ReactionTime 32
States
	{
	Spawn:
		TNT1 A 0
		TNT1 AAA 1 ThrustThingZ(0,18,0,0)
		TNT1 A 0 A_SpawnItemEx("GuruSphereChunker",0,0,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_Countdown
		Loop
	Death:
		TNT1 A 1 //A_SpawnItemEx("GuruChunkRainSpawner2",0,0,0,0,0,0,0,128,0)
		Stop
	}
}

Actor GuruSphereChunker : GuruSpawnerInheritance
{
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 AAA 3 A_SpawnItemEx("GuruSphereChunk",random(100,-100),random(100,-100),random(70,-70),frandom(1,12),frandom(1,12),frandom(16,20),random(0,359),SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		Stop
	Death:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR GuruSphereChunk
{
PROJECTILE
Height 5
Radius 12
Gravity 0.25
Scale 1
Renderstyle Add
Alpha 1
-NOGRAVITY
+NOTIMEFREEZE
DamageType "Superweapon"
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_Jump(128,"Spawn2")
		YSHK A 2 Bright A_SpawnItemEx("GuruTrailSpark",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		Loop
	Spawn2:
		YSHK A 2 Bright A_SpawnItemEx("GuruChunkTrail",frandom(-5,5),frandom(-5,5),frandom(-5,5),0.00001*random(10000,-10000),0.00001*random(10000,-10000),0.00001*random(10000,-10000),random(0,359),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		Goto Spawn
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_PlaySound("Weapons/GuruHit")
		TNT1 A 0 Bright A_PlaySound("Weapons/GuruBlast3",5)
		TNT1 A 0 Bright A_Explode(5000,192)
		TNT1 AAA 0 A_SpawnItemEx("GuruChunkSpark",random(8,-8),random(8,-8),random(8,-8),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 AA 0 A_SpawnItemEx("GuruSphereSmoke",0,0,0,0.00001*random(100000,-100000),0.00001*random(100000,-100000),0.00001*random(100000,-100000),random(0,359),SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR GuruChunkSpark : GuruTrailSpark
{
Scale 1.15
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		YELE ABCDEF 2 Bright A_FadeOut(0.1,1)
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR GuruChunkTrail : GuruSmokeInheritance
{
Scale 0.65
Alpha 0.2
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 AA 1 Bright A_Jump(256,"Spawn1","Spawn2","Spawn3","Spawn4","Spawn5","Spawn6")
		Goto Spawn1
	Spawn1:
		TNT1 A 0 A_SetScale(ScaleX +0.003, ScaleY +0.003)
		THD1 A 1 Bright A_FadeOut(0.009,1)
		Loop
	Spawn2:
		TNT1 A 0 A_SetScale(ScaleX +0.003, ScaleY +0.003)
		THD2 A 1 Bright A_FadeOut(0.007,1)
		Loop
	Spawn3:
		TNT1 A 0 A_SetScale(ScaleX +0.003, ScaleY +0.003)
		THD3 A 1 Bright A_FadeOut(0.006,1)
		Loop
	Spawn4:
		TNT1 A 0 A_SetScale(ScaleX -0.003, ScaleY -0.003)
		THD1 A 1 Bright A_FadeOut(0.0075,1)
		Loop
	Spawn5:
		TNT1 A 0 A_SetScale(ScaleX -0.001, ScaleY -0.001)
		THD2 A 1 Bright A_FadeOut(0.0065,1)
		Loop
	Spawn6:
		TNT1 A 0 A_SetScale(ScaleX -0.003, ScaleY -0.003)
		THD3 A 1 Bright A_FadeOut(0.008,1)
		Loop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

//SPIRAL

ACTOR GuruSpiralSounder : GuruEffectInheritance
{
+CLIENTSIDEONLY
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 375 Bright A_PlaySound("Weapons/GuruLoop",6,1,1)
		TNT1 A 1 Bright A_StopSound(5)
		Stop
	}
}

Actor GuruSpiralSpawner : GuruSpawnerInheritance
{
ReactionTime 95
States
	{
	Spawn:
		TNT1 A 0 Bright A_Countdown
		TNT1 A 0 Bright ThrustThingZ(0,18,0,0)
		TNT1 A 0 A_SpawnItemEx("GuruShocklet",0,0,0,30,0,0,270,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("GuruShocklet",0,0,0,30,0,0,180,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("GuruShocklet",0,0,0,30,0,0,90,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("GuruShocklet",0,0,0,30,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		TNT1 A 1 Bright A_SetAngle(9 + angle)
		Loop
	Death:
		TNT1 A 1 A_SpawnItemEx("GuruSpiralSpawner2",0,0,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		Stop
	}
}

Actor GuruSpiralSpawner2 : GuruSpiralSpawner
{
ReactionTime 85
States
	{
	Spawn:
		TNT1 A 0 Bright A_Countdown
		TNT1 A 0 Bright ThrustThingZ(0,12,0,0)
		TNT1 A 0 A_SpawnItemEx("GuruShocklet",0,0,0,30,0,0,270,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("GuruShocklet",0,0,0,30,0,0,180,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("GuruShocklet",0,0,0,30,0,0,90,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("GuruShocklet",0,0,0,30,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		TNT1 A 1 Bright A_SetAngle(9 + angle)
		Loop
	Death:
		TNT1 A 1 A_SpawnItemEx("GuruSpiralSpawner3",0,0,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		Stop
	}
}

Actor GuruSpiralSpawner3 : GuruSpiralSpawner
{
ReactionTime 75
States
	{
	Spawn:
		TNT1 A 0 Bright A_Countdown
		TNT1 A 0 Bright ThrustThingZ(0,6,0,0)
		TNT1 A 0 A_SpawnItemEx("GuruShocklet",0,0,0,30,0,0,270,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("GuruShocklet",0,0,0,30,0,0,180,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("GuruShocklet",0,0,0,30,0,0,90,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("GuruShocklet",0,0,0,30,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		TNT1 A 1 Bright A_SetAngle(9 + angle)
		Loop
	Death:
		TNT1 A 1 A_SpawnItemEx("GuruSpiralSpawner4",0,0,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		Stop
	}
}

Actor GuruSpiralSpawner4 : GuruSpiralSpawner
{
ReactionTime 65
States
	{
	Spawn:
		TNT1 A 0 Bright A_Countdown
		TNT1 A 0 Bright ThrustThingZ(0,3,0,0)
		TNT1 A 0 A_SpawnItemEx("GuruShocklet",0,0,0,30,0,0,270,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("GuruShocklet",0,0,0,30,0,0,180,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("GuruShocklet",0,0,0,30,0,0,90,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("GuruShocklet",0,0,0,30,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		TNT1 A 1 Bright A_SetAngle(9 + angle)
		Loop
	Death:
		TNT1 A 1 A_SpawnItemEx("GuruSpiralSpawnerStill",0,0,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		Stop
	}
}

Actor GuruSpiralSpawnerStill : GuruSpiralSpawner
{
ReactionTime 55
States
	{
	Spawn:
		TNT1 A 0 Bright A_Countdown
		TNT1 A 0 A_SpawnItemEx("GuruShocklet",0,0,0,30,0,0,270,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("GuruShocklet",0,0,0,30,0,0,180,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("GuruShocklet",0,0,0,30,0,0,90,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("GuruShocklet",0,0,0,30,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		TNT1 A 1 Bright A_SetAngle(9 + angle)
		Loop
	Death:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR GuruShocklet : GuruEffectInheritance
{
ReactionTime 25
DamageType "Superweapon"
States
	{
	Spawn:
		TNT1 A 0 Bright A_CountDown
		TNT1 A 0 Bright A_Explode(19500,128,0)
		TNT1 A 1 A_SpawnItemEx("GuruShockletSpark",frandom(5,-5),frandom(5,-5),frandom(5,-5),frandom(1,-1),frandom(1,-1),frandom(1,-1),random(0,359),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		Loop
	Death:
		TNT1 A 1 A_SpawnItemEx("GuruShockletSphere",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		Stop
	}
}

ACTOR GuruShockletSpark : GuruTrailSpark
{
Scale 0.5
+CLIENTSIDEONLY
}

ACTOR GuruShockletSphere : GuruEffectInheritance
{
Scale 1.25
Alpha 0.95
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		Goto Fade
	Fade:
		YSHK A 1 Bright A_FadeOut(0.1,1)
		TNT1 A 0 Bright A_SetScale(ScaleX-0.05,ScaleY-0.05)
		Loop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

//SPHERE KABOOM

ACTOR GuruKaboom : GuruSpawnerInheritance
{
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 A_SpawnItemEx("GuruKaplosionSpawner",0,0,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		TNT1 A 1 A_SpawnItemEx("GuruStormSpawner",0,0,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		Stop
	}
}

ACTOR GuruKaplosionSpawner : GuruSpawnerInheritance
{
ReactionTime 25
+FORCERADIUSDMG
States
	{
	Spawn:
		TNT1 A 0 Bright A_Countdown
		TNT1 A 1 Bright A_SpawnItemEx("GuruKaploder",0,0,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		Loop
	Death:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR GuruKaploder : GuruSpawnerInheritance
{
ReactionTime 25
+FORCERADIUSDMG
DamageType "Superweapon"
States
	{
	Spawn:
		TNT1 A 1 Bright
		TNT1 A 0 Bright A_Explode(2000,1280)
		TNT1 A 0 Bright A_SpawnItemEx("GuruKaplosion",random(80,-80),random(80,-80),random(80,-80),frandom(25,29),frandom(25,29),frandom(-30,30),random(0,359),SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_Countdown
		Loop
	Death:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR GuruKaplosion : GuruEffectInheritance
{
Scale 0.75
Alpha 0.95
DamageType "Superweapon"
States
	{
	Spawn:
		TNT1 A 0 Bright A_Explode(100,128,0,1)
		YSHK A 1 Bright A_FadeOut(0.025,1)
		TNT1 A 0 Bright A_SetScale(ScaleX+0.05,ScaleY+0.05)
		Loop
	Death:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR GuruStormSpawner : GuruSpawnerInheritance
{
ReactionTime 6
States
	{
	Spawn:
		TNT1 A 0 Bright A_Countdown
		TNT1 A 24 Bright A_CustomMissile("GuruBoltage",-16,0,frandom(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER)
		Loop
	Death:
		TNT1 A 1 Bright
		Stop
	}
}

Actor GuruBoltage
{
Projectile
Height 13
Radius 8
Speed 25
+NOCLIP
+SEEKERMISSILE
+CEILINGHUGGER
+SPAWNCEILING
+NOTIMEFREEZE
+NOINTERACTION
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 40 Bright
	HereComesTehBoi:
		TNT1 AAAAAAAAAAAAAAA 2 Bright A_SeekerMissile(90,90,SMF_LOOK|SMF_PRECISE,100,7)
		TNT1 A 1 A_SpawnItemEx("GuruStormBolt",0,0,0,0,0,random(-160,-170),0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		Stop
	}
}

ACTOR GuruStormBolt
{
PROJECTILE
Height 12
Radius 8
Speed 1
Renderstyle Add
Reactiontime 263
+RIPPER
-NOGRAVITY
+BLOODLESSIMPACT
+FORCERADIUSDMG
+SEEKERMISSILE
+SCREENSEEKER
+NOTIMEFREEZE
DamageType "Superweapon"
SeeSound ""
States
	{
	Spawn:
		TNT1 A 0 Bright A_CountDown
		TNT1 A 0 Bright A_SpawnItemEx("GuruShocklet",0,0,0,30,0,0,240,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SpawnItemEx("GuruShocklet",0,0,0,30,0,0,120,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SpawnItemEx("GuruShocklet",0,0,0,30,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SetAngle(7 + angle)
		TNT1 A 2 Bright A_SpawnItemEx("StormBoltFade",0,0,0,frandom(0.25,-0.25),frandom(0.25,-0.25),frandom(0.25,-0.25),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		Loop
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_PlaySoundEx("Weapons/GuruStruck",5)
		TNT1 A 0 Bright A_Explode(30000,768,0,1)
		TNT1 A 0 Bright A_SpawnItemEx("GuruBoltStruckGlowX",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SpawnItemEx("GuruBoltStruckGlowY",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 AAAAAAA 2 Bright A_SpawnItemEx("GuruHitSpark",random(20,-20),random(20,-20),random(30,-5),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		Stop
	}
}

ACTOR StormBoltFade : GuruEffectInheritance
{
PROJECTILE
Renderstyle Add
Damage (0)
+FORCEYBILLBOARD
+CLIENTSIDEONLY
+NONETID
SeeSound ""
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		LITE ABCDABCDABCD 1 Bright A_FadeOut(0.05,1)
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR GuruBoltStruckGlowY : GuruGigaStruckGlowY { Scale 0.35 }
ACTOR GuruBoltStruckGlowX : GuruGigaStruckGlowX { Scale 0.35 }