Actor "Legendary Fusion Cannon" : Weapon Replaces "Real True Legendary BFG"
{
//$Category Weapons/BFG20K
//$Title "Legendary Fusion Cannon"
//$Sprite RLBGX0
+NOAUTOFIRE
+WEAPON.BFG
+WEAPON.NOAUTOAIM
+INVENTORY.UNDROPPABLE
Weapon.PreferredSkin "RTLegendaryBFG-Marine"
Weapon.AmmoGive 200
Weapon.AmmoGive2 1
Weapon.AmmoType "LDemonAmmo"
Weapon.AmmoType2 "LegendaryFusionCell"
Weapon.AmmoUse 125
Weapon.AmmoUse2 1
weapon.KickBack 90
Weapon.SlotNumber 8
Weapon.UpSound "weapons/LFusionCannonUp"
  inventory.pickupsound "upgrade/pickup"
Inventory.PickupMessage "The Legendary Fusion Cannon"
Obituary "%o was oblirerated off the planet with k's Legendary Fusion Cannon."
Tag "Legendary Fusion Cannon"
States
	{
	Spawn:
		RLBG X -1
		Loop
	Select:
		TNT1 A 0 A_ZoomFactor(1)
		RLBU A 0 A_Raise
		RLBU A 1 A_Raise
		Loop
	Deselect:
		TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	Deselectloop:
		TNT1 AAA 0 A_StopSound(5)
		TNT1 AAA 0 A_StopSound(6)
		TNT1 A 0 A_ZoomFactor(1)
		TNT1 A 0 A_Lower
		RLBU A 1 A_Lower
		Loop
	Ready:
		TNT1 A 0 A_PlaySound("weapons/LFusionCannonIdle",5,1.0,1)
		RLBG ABCDEFGHIJIHGFEDCBABCDEFGHIJIHGFEDCBABCDEFGHIJIHGFEDCBABCDEFGHIJIHGFEDCBABCDEFGHIJIHGFEDCBABCDEFGHIJIHGFEDCBABCDEFGHIJIHGFEDCB 1 A_WeaponReady //I hope there's a better way to do this
		TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
		TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
		Loop
	Fire:
		TNT1 A 0 A_PlaySound("Weapons/GuruTrigger",1)
		RLBG ABCDEFGHIJ 1
		TNT1 A 0 A_PlaySound("weapons/LFusionCannonFire",5)
		RLBG IHGFED 1
		TNT1 A 0 A_GiveInventory("GuruCharge",1)
	Gurucharger:
		TNT1 A 0 A_TakeInventory("GuruCharge",1)
		RLBC ABCDEFGHIJKLMNOPQRST 1 Bright A_Quake(4,2,0,2,"none")
		TNT1 A 0 A_JumpIfInventory("GuruCharge",1,"Gurucharger")
		RLBC ABC 1 Bright A_Quake(4,2,0,2,"none")
		TNT1 A 0 A_StopSound(5)
		TNT1 A 0 A_PlaySound("Weapons/GuruFire",5)
		TNT1 A 0 A_PlaySound("Weapons/GuruAddFire",6)
		TNT1 A 0 A_FireCustomMissile("PlayerRTLBBall",0,1,12,0)
		TNT1 A 0 A_Recoil(45)
		TNT1 A 0 A_GunFlash
		TNT1 A 0 A_SetBlend("Yellow",0.5,60)
		TNT1 A 0 A_SetBlend("White",0.25,60)
		TNT1 A 0 A_ZoomFactor(0.950)
		RLBF A 1 Bright Offset(2,34)
		TNT1 A 0 A_ZoomFactor(0.75)
		RLBF A 1 Bright Offset(4,36)
		TNT1 A 0 A_ZoomFactor(1)
		Goto Ready
	Altfire:
		TNT1 A 0 A_JumpIfNoAmmo("Ready")
		TNT1 A 0 A_JumpIfInventory("LegendaryFusionCell",1,1)
		Goto Ready
		RLBG A 0 A_PlaySound("Weapons/GuruTrigger",1)
		RLBG ABCDEFGHIJ 1
		RLBG A 0 A_PlaySound("weapons/LFusionCannonCharging",5,2.0)
		RLBG IHGFED 1
		RLBG A 0 A_GiveInventory("GuruCharge",3)
	Gurudeathcharger:
		RLBG A 0 A_TakeInventory("GuruCharge",1)
		RLBC ABCDEFGHIJKLMNOPQRST 1 Bright A_Quake (4, 2, 0, 2,"none")
		RLBC ABCDEFGHIJKLMNOPQRST 1 Bright A_Quake (4, 2, 0, 2,"none")
		RLBG A 0 A_JumpIfInventory("GuruCharge",1,"Gurudeathcharger")
		RLBC ABC 1 Bright A_Quake (4, 2, 0, 2,"none")
		RLBG A 0 A_StopSound(5)
		RLBG A 0 A_PlaySound("Weapons/GuruFire",5)
		RLBG A 0 A_PlaySound("Weapons/GuruAddFire",6)
		RLBG A 0 A_FireCustomMissile("PRTLDeathball", 0, 0, 12, 0)
		TNT1 A 0 A_TakeInventory("LegendaryFusionCell",1)
		RLBG A 0 A_Recoil(65)
		RLBG A 0 A_GunFlash
		RLBG A 0 A_SetBlend("Yellow",0.5,60)
		RLBG A 0 A_SetBlend("White",0.25,60)
		RLBF A 0 A_ZoomFactor(0.975)		
		RLBF A 1 Bright Offset(2,34)
		RLBF A 0 A_ZoomFactor(0.95)		
		RLBF A 1 Bright Offset(4,36)
		RLBF A 1 Bright Offset(8,40) A_ZoomFactor(0.85)
		RLBF A 1 Bright Offset(12,44) A_ZoomFactor(0.875)	
		RLBG J 1 Bright Offset(15,47) A_ZoomFactor(0.8)
		RLBG I 1 Bright Offset(17,49) A_ZoomFactor(0.75)
		RLBG H 1 Bright Offset(18,50) A_ZoomFactor(0.74)
		RLBG G 1 Bright Offset(19,51) A_ZoomFactor(0.73)
		RLBG F 1 Bright Offset(20,52) A_ZoomFactor(0.72)
		RLBG E 1 Bright A_ZoomFactor(0.71)
		RLBG D 1 Bright Offset(19,51) A_ZoomFactor(0.7)
		RLBG C 1 Bright Offset(18,50) A_ZoomFactor(0.69)
		RLBG B 1 Bright Offset(17,49) A_ZoomFactor(0.68)
		RLBG A 1 Bright Offset(16,48) A_ZoomFactor(0.67)
		RLBU A 1 Offset(15,47) A_ZoomFactor(0.66)
		RLBU A 1 Offset(14,46) A_ZoomFactor(0.67)
		RLBU A 1 Offset(13,45) A_ZoomFactor(0.68)
		RLBU A 1 Offset(12,44) A_ZoomFactor(0.69)
		RLBU A 1 Offset(11,43) A_ZoomFactor(0.7)
		RLBU A 1 Offset(10,42) A_ZoomFactor(0.71)
		RLBU A 1 Offset(9,41) A_ZoomFactor(0.72)
		RLBU A 1 Offset(8,40) A_ZoomFactor(0.73)
		RLBU A 1 Offset(7,39) A_ZoomFactor(0.74)
		RLBU A 1 Offset(6,38) A_ZoomFactor(0.75)
		RLBU A 1 Offset(5,37) A_ZoomFactor(0.775)
		RLBU A 1 Offset(4,36) A_ZoomFactor(0.8)
		RLBU A 1 Offset(3,35) A_ZoomFactor(0.825)
		RLBU A 1 Offset(2,34) A_ZoomFactor(0.85)
		RLBU A 1 Offset(1,33) A_ZoomFactor(0.875)
		RLBU A 1 Offset(0,32) A_ZoomFactor(0.9)
		RLBU A 1 A_ZoomFactor(0.925)
		RLBU A 1 A_ZoomFactor(0.925)
		RLBU A 1 A_ZoomFactor(0.95)
		RLBU A 1 A_ZoomFactor(0.975)
		RLBU A 1 A_ZoomFactor(1)
		RLBU A 5 A_PlaySound("Weapons/GuruLoad",1)
		PWRG A 0 A_PlaySound("Weapons/GuruIdle",5,1,1)
		RLBG ABCDFEFGHIJIHGFEDCB 1
		Goto Ready
	Flash:
		TNT1 A 7 bright A_Light2
		TNT1 A 4 bright A_Light1
		TNT1 A 0 bright A_Light0
		Stop
	GrenadeCheck:
		TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss")
		TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
		Goto Ready
	GrenadeToss:
		TNT1 A 0 A_GiveInventory("Hand Grenade")
		TNT1 A 0 A_SelectWeapon("Hand Grenade")
		Goto Deselect
	MineCheck:
		TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineToss")
		TNT1 A 0 A_TakeInventory("MineAction",1)
		Goto Ready
	MineToss:
		TNT1 A 0 A_GiveInventory("Land Mine")
		TNT1 A 0 A_SelectWeapon("Land Mine")
		Goto Deselect
	}
}

ACTOR RTLBBall
{
Projectile
Height 6
Radius 11
Speed 15
Scale 0.25
Renderstyle Add
Damage 125
+RIPPER
+FOILINVUL
+BLOODLESSIMPACT
+FORCERADIUSDMG
+NODAMAGETHRUST
+DONTBLAST
+SKYEXPLODE
+DONTREFLECT
+NOTIMEFREEZE
+FORCEXYBILLBOARD
+THRUSPECIES
+MTHRUSPECIES
+DONTHURTSPECIES
+DONTHARMSPECIES
+QUICKTORETALIATE
DamageType "LegendaryGuru"
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_RearrangePointers(AAPTR_DEFAULT, AAPTR_TARGET, AAPTR_DEFAULT)
		TNT1 A 0 Bright A_PlaySound("Weapons/GuruFly",5,1.0,1)
		Goto Fly
	AfterAttack:
		TNT1 A 0 Bright A_RearrangePointers(AAPTR_MASTER, AAPTR_DEFAULT, AAPTR_DEFAULT)
		TNT1 A 0 Bright A_Explode(600,64,0,1)
	Fly:
		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
		TNT1 AAA 0 Bright A_CustomMissile("RTLBLiteShot",0,0,random(0,360),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,360))
		TNT1 A 0 Bright A_CustomMissile("LRTLBBolt",0,0,random(0,360),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,360))
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,1250,0,360,"Attack")
		Loop
	Attack:
		TNT1 A 0 Bright A_CustomRailgun(8*random(1,8),0,None,"Yellow",RGF_SILENT|RGF_FULLBRIGHT,1,2,"RTLBFGRailgunSlugPuff")
		Goto AfterAttack
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_RearrangePointers(AAPTR_MASTER, AAPTR_DEFAULT, AAPTR_DEFAULT)
		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,360),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 PlayerRTLBBall
{
Projectile
Height 6
Radius 11
Speed 15
Scale 0.50
Renderstyle Add
Damage 125
+FRIENDLY
+RIPPER
+FOILINVUL
+BLOODLESSIMPACT
+FORCERADIUSDMG
+NODAMAGETHRUST
+DONTBLAST
+SKYEXPLODE
+DONTREFLECT
+NOTIMEFREEZE
+FORCEXYBILLBOARD
+THRUSPECIES
+MTHRUSPECIES
+DONTHURTSPECIES
+DONTHARMSPECIES
+QUICKTORETALIATE
DamageType "LegendaryGuruPlayer"
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_RearrangePointers(AAPTR_DEFAULT, AAPTR_TARGET, AAPTR_DEFAULT)
		TNT1 A 0 Bright A_PlaySound("Weapons/GuruFly",5,1.0,1)
		Goto Fly
	AfterAttack:
		TNT1 A 0 Bright A_RearrangePointers(AAPTR_MASTER, AAPTR_DEFAULT, AAPTR_DEFAULT)
		TNT1 A 0 Bright A_Explode(600,64,0,1)
	Fly:
		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
		TNT1 AAA 0 Bright A_CustomMissile("PlayerLRTLBBolt",0,0,random(0,360),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,360))
		TNT1 A 0 Bright A_CustomMissile("PlayerRTLBLiteShot",0,0,random(0,360),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-10,10))
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,1250,0,360,"Attack")
		Loop
	Attack:
		TNT1 A 0 Bright A_CustomRailgun(8*random(1,8),0,None,"Yellow",RGF_SILENT|RGF_FULLBRIGHT,1,2,"PlayerRTLBFGRailgunSlugPuff")
		Goto AfterAttack
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_RearrangePointers(AAPTR_MASTER, AAPTR_DEFAULT, AAPTR_DEFAULT)
		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 AAA 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,360),SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		TNT1 AAA 0 Bright A_SpawnItemEx("GuruChunkSpark",random(-126,126),random(-126,126),random(-66,66),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 AAA 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 RTLBFGRailgunSlugPuff : BulletPuff
{
+THRUSPECIES
+MTHRUSPECIES
+PUFFGETSOWNER
DamageType "LegendaryGuru"
}

Actor PlayerRTLBFGRailgunSlugPuff : BulletPuff
{
+THRUSPECIES
+MTHRUSPECIES
+PUFFGETSOWNER
DamageType "LegendaryGuruPlayer"
}

ACTOR RTLBLiteShot
{
PROJECTILE
Height 12
Radius 8
Speed 32
RENDERSTYLE ADD
ALPHA 0.85
Reactiontime 12
Damage 20
+FOILINVUL
+THRUGHOST
+DONTREFLECT
+THRUACTORS
+THRUSPECIES
+MTHRUSPECIES
+FORCERADIUSDMG
+QUICKTORETALIATE
+NOTIMEFREEZE
Damagetype "LegendaryGuru"
SeeSound "weapons/devlit"
DeathSound "weapons/devzap"
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_RearrangePointers(AAPTR_DEFAULT, AAPTR_TARGET, AAPTR_DEFAULT)
	Fly:
		TNT1 A 0 Bright A_CountDown
		LLIT A 1 Bright A_SpawnItemEx("LegLiteTrail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,32,0,360,"Attack")
		LLIT A 1 Bright A_SpawnItemEx("LegLiteTrail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,32,0,360,"Attack")
		LLIT A 1 Bright A_SpawnItemEx("LegLiteTrail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,32,0,360,"Attack")
		LLIT B 1 Bright A_SpawnItemEx("LegLiteTrail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,32,0,360,"Attack")
		LLIT B 1 Bright A_SpawnItemEx("LegLiteTrail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,32,0,360,"Attack")
		LLIT B 1 Bright A_SpawnItemEx("LegLiteTrail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,32,0,360,"Attack")
		LLIT C 1 Bright A_SpawnItemEx("LegLiteTrail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,32,0,360,"Attack")
		LLIT C 1 Bright A_SpawnItemEx("LegLiteTrail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,32,0,360,"Attack")
		LLIT C 1 Bright A_SpawnItemEx("LegLiteTrail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,32,0,360,"Attack")
		Loop
	Attack:
		TNT1 A 0 Bright A_RearrangePointers(AAPTR_MASTER, AAPTR_DEFAULT, AAPTR_DEFAULT)
		TNT1 A 0 Bright A_Explode(20*random(1,8),64,0,1)
		Goto Fly
	Death:
		TNT1 A 0 Bright A_RearrangePointers(AAPTR_MASTER, AAPTR_DEFAULT, AAPTR_DEFAULT)
		LLIT DEFGHIJKLMNO 1 Bright
		Stop
	}
}

ACTOR PlayerRTLBLiteShot : RTLBLiteShot
{
+FRIENDLY
Damagetype "LegendaryGuruPlayer"
}

ACTOR LRTLBBolt
{
Projectile
Height 6
Radius 6
Speed 35
RenderStyle Add
Alpha 0.8
ReactionTime 170
Damage 25
+FOILINVUL
+DONTREFLECT
+SEEKERMISSILE
+HITTRACER
+NOTIMEFREEZE
+THRUSPECIES
+MTHRUSPECIES
Damagetype "LegendaryGuru"
DeathSound "bolt/explode"
States
	{
	Spawn:
		TNT1 A 0 Bright A_CountDown
		TNT1 A 0 Bright A_Seekermissile(5,5,SMF_LOOK)
		TNT1 A 0 Bright A_JumpIf(ACS_NamedExecuteWithResult("HEM_CheckSeeker") == 1,"Enemy")
	"Friendly":
		TNT1 A 0 Bright A_ChangeFlag(THRUACTORS,1)
		TNT1 A 0 Bright A_RearrangePointers(AAPTR_DEFAULT, AAPTR_DEFAULT, AAPTR_NULL)
		LVS1 AAAA 1 Bright A_SpawnItemEx("LegBoltTrail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		Goto Spawn
	Enemy:
		TNT1 A 0 Bright A_ChangeFlag(THRUACTORS,0)
		LVS1 A 1 Bright A_SpawnItemEx("LegBoltTrail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		Goto Spawn
	Death:
		TNT1 A 0 Bright
		LVS1 LMN 2 Bright
		Stop
	Crush:
	XDeath:
		TNT1 A 0 Bright
		TNT1 A 0 Bright ACS_NamedExecuteAlways("Hem_DmgInvul",0,AAPTR_TRACER,1)
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "ToasterDeath")
		TNT1 A 0 Bright A_SpawnItemEx("LegendaryGoldParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 AAAA 0 Bright A_CustomMissile("LegKaboomDevastator15",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
	ToasterDeath:
		LVS1 LMN 2 Bright
		Stop
	}
}

ACTOR PlayerLRTLBBolt : LRTLBBolt
{
+FRIENDLY
Damagetype "LegendaryGuruPlayer"
States
	{
	Crush:
	XDeath:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "ToasterDeath")
		TNT1 A 0 Bright A_SpawnItemEx("LegendaryGoldParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 AAAA 0 Bright A_CustomMissile("LegKaboomDevastator15",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
	ToasterDeath:
		LVS1 LMN 2 Bright
		Stop
	}
}

ACTOR PRTLDeathball : GuruDeathball
{
  Radius 12
  Height 7
  Speed 15
  Damage 1
  Projectile
  Renderstyle Add
  +FORCERADIUSDMG
  +FOILINVUL
  +RIPPER
  +BLOODLESSIMPACT
  +DONTBLAST
  +NOTIMEFREEZE
  +FRIENDLY
+NODAMAGETHRUST
+SKYEXPLODE
+DONTREFLECT
+FORCEXYBILLBOARD
+THRUSPECIES
+MTHRUSPECIES
+DONTHURTSPECIES
+DONTHARMSPECIES
+QUICKTORETALIATE
  Scale 0.90
  MissileType "GuruLesserProjectileTrail"
  DamageType "LegendaryGuruPlayer"
  States
  {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_PlaySoundEx("Weapons/GuruFly","SoundSlot6",1)
	TNT1 A 0 A_Explode(1600,128,0,1)
	TNT1 AA 0 A_SpawnItemEx("GuruTrailSpark",random(42,-42),random(42,-42),random(42,-42),0,0,0,0,0,0)
	TNT1 AA 0 A_SpawnItemEx("GuruEmpowerTrail",-3,0,0,0,0,0,0,0,0)
	TNT1 AAAAA 0 A_CustomMissile("PlayerLRTLBBolt",0,0,random(0,360),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-45,45))
	//TNT1 A 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,360),SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
	YBAL A 1 bright
	loop
  Death:
	TNT1 A 0 A_PlaySound("Weapons/GuruBlast",6)
	//IMPACT STUFF
	TNT1 A 0 A_SpawnItemEx("GuruGigaStruckGlowX",0,0,10,0,0,0,0,SXF_TRANSFERPOINTERS,0)
	TNT1 A 0 A_SpawnItemEx("GuruGigaStruckGlowY",0,0,10,0,0,0,0,SXF_TRANSFERPOINTERS,0)
	//TNT1 A 0 A_SpawnItemEx("GuruChunkRainSpawner",0,0,15,0,0,0,0,SXF_TRANSFERPOINTERS,0)
	//AFTER-HIT EFFECTS
	TNT1 AAA 1 A_SpawnItemEx("GuruStormSpawner",0,0,10,0,0,0,0,SXF_TRANSFERPOINTERS,0)
	//TNT1 A 0 A_SpawnItemEx("GuruSpiralSpawner",0,0,30,0,0,0,0,SXF_TRANSFERPOINTERS,0)
	//TNT1 A 0 A_SpawnItemEx("GuruSphereStill",0,0,15,0,0,0,0,SXF_TRANSFERPOINTERS,0)
	//TNT1 A 0 A_SpawnItemEx("GuruSpiralSounder",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS,0)
	//COLLATERAL DAMAGE EFFECTS
	TNT1 AAAAAA 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,360),SXF_SETMASTER|SXF_NOCHECKPOSITION,0)

	TNT1 A 0 A_SpawnItemEx("GuruKaplosionSpawner",random(80,-80),random(80,-80),random(80,-80),frandom(25,29),frandom(25,29),frandom(-30,30),random(0,359),SXF_TRANSFERPOINTERS,0)
	TNT1 A 0 A_Explode(80000,10000,0,1)
	TNT1 A 0 A_PlaySound("Weapons/GuruBoom",6)
	TNT1 A 0 A_PlaySound("Weapons/GuruBlast2",5)

	Stop
  }
}
ACTOR GuruSphere : GuruEffectInheritance
{
	Alpha 0.95
	Scale 1.25
	ReactionTime 95
	States
	{
	Spawn:
	YBAL A 0
	YBAL A 0 A_Countdown
	YBAL A 0 A_SpawnItemEx("GuruHitSpark",random(225,-225),random(225,-225),random(-375,145),0,SXF_TRANSFERPOINTERS,0)
	//YBAL A 0 Bright A_CustomMissile("PlayerLRTLBBolt",0,0,random(0,360),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,360))
	//YBAL A 0 A_SpawnItemEx("GuruSphereSmoke",random(155,-155),random(155,-155),random(-75,145),0,0,0.00001*random(-300000,-100000),SXF_TRANSFERPOINTERS,0)
	YBAL A 1 Bright
	YBAL A 0 ThrustThingZ(0, 18, 0, 0)
	Loop
	Death:
	YBAL A 0 A_SpawnItemEx("GuruSphere2",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS,0)
	//TNT1 A 0 Bright A_CustomMissile("PlayerLRTLBBolt",0,0,random(0,360),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,360))
	//TNT1 A 0 Bright A_CustomMissile("RTLBLiteShot",0,0,random(0,360),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,360))
	Stop
	}
}

ACTOR GuruSphere2 : GuruSphere
{
	ReactionTime 85
	States
	{
	Spawn:
	YBAL A 0
	YBAL A 0 A_Countdown
	YBAL A 0 A_SpawnItemEx("GuruHitSpark",random(225,-225),random(225,-225),random(-325,145),0,0,0)
	//YBAL A 0 Bright A_CustomMissile("PlayerLRTLBBolt",0,0,random(0,360),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,360))
	//YBAL A 0 A_SpawnItemEx("GuruSphereSmoke",random(155,-155),random(155,-155),random(-85,45),0,0,0.00001*random(-300000,-100000),SXF_TRANSFERPOINTERS,0)
	YBAL A 1 Bright
	YBAL A 0 ThrustThingZ(0, 12, 0, 0)
	Loop
	Death:
	CBAL A 0 A_SpawnItemEx("GuruSphere3",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS,0)
	//TNT1 A 0 Bright A_CustomMissile("PlayerLRTLBBolt",0,0,random(0,360),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,360))
	//TNT1 A 0 Bright A_CustomMissile("RTLBLiteShot",0,0,random(0,360),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,360))
	Stop
	}
}

ACTOR GuruSphere3 : GuruSphere
{
	ReactionTime 75
	States
	{
	Spawn:
	YBAL A 0
	YBAL A 0 A_Countdown
	YBAL A 0 A_SpawnItemEx("GuruHitSpark",random(225,-225),random(225,-225),random(-350,145),0,0,0)
	//YBAL A 0 Bright A_CustomMissile("PlayerLRTLBBolt",0,0,random(0,360),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,360))
	//YBAL A 0 A_SpawnItemEx("GuruSphereSmoke",random(155,-155),random(155,-155),random(-85,45),0,0,0.00001*random(-300000,-100000),SXF_TRANSFERPOINTERS,0)
	YBAL A 1 Bright
	YBAL A 0 ThrustThingZ(0, 6, 0, 0)
	Loop
	Death:
	CBAL A 0 A_SpawnItemEx("GuruSphere4",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS,0)
	//TNT1 A 0 Bright A_CustomMissile("PlayerLRTLBBolt",0,0,random(0,360),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,360))
	//TNT1 A 0 Bright A_CustomMissile("RTLBLiteShot",0,0,random(0,360),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,360))
	Stop
	}
}

ACTOR GuruSphere4 : GuruSphere
{
	ReactionTime 65
	States
	{
	Spawn:
	YBAL A 0
	YBAL A 0 A_Countdown
	YBAL A 0 A_SpawnItemEx("GuruHitSpark",random(225,-225),random(225,-225),random(-375,145),0,0,0)
	//YBAL A 0 Bright A_CustomMissile("PlayerLRTLBBolt",0,0,random(0,360),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,360))
	//YBAL A 0 A_SpawnItemEx("GuruSphereSmoke",random(155,-155),random(155,-155),random(-85,45),0,0,0.00001*random(-300000,-100000),SXF_TRANSFERPOINTERS,0)
	YBAL A 1 Bright
	YBAL A 0 ThrustThingZ(0, 2, 0, 0)
	Loop
	Death:
	CBAL A 0 A_SpawnItemEx("GuruSphereStill",0,0,0,0,0,0,0,0,0)
	//TNT1 A 0 Bright A_CustomMissile("PlayerLRTLBBolt",0,0,random(0,360),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,360))
	//TNT1 A 0 Bright A_CustomMissile("RTLBLiteShot",0,0,random(0,360),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,360))
	Stop
	}
}

ACTOR GuruSphereStill : GuruSphere
{
	ReactionTime 16
	States
	{
	Spawn:
	YBAL A 0
	YBAL A 0 A_PlaySound("Weapons/GuruFuuu",6,1)
	Looplet:
	YBAL A 0 A_SpawnItemEx("GuruHitSpark",random(225,-225),random(225,-225),random(-400,145),0,0,0)
	//YBAL A 0 A_SpawnItemEx("GuruHitSpark",random(125,-125),random(125,-125),random(-65,65),0,0,0)
	//YBAL A 0 A_SpawnItemEx("GuruSphereSmoke",random(155,-155),random(155,-155),random(-85,45),0,0,0.00001*random(-300000,-100000),SXF_TRANSFERPOINTERS,0)
	//YBAL A 0 Bright A_CustomMissile("PlayerLRTLBBolt",0,0,random(0,360),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,360))
	YBAL A 1 Bright
	YBAL A 0 A_Countdown
	Loop
	Death:
	YBAL A 0 A_PlaySound("Weapons/GuruBoom",6)
	YBAL A 0 A_PlaySound("Weapons/GuruBlast2",5)
	//YBAL A 0 A_SpawnItemEx("GuruStormSpawner",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS,0)
	YBAL A 0 A_SpawnItemEx("GuruKaboom2",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS|SXF_CLIENTSIDE,0)
	Stop
	}
}

ACTOR GuruKaboom2 : GuruSpawnerInheritance
{
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("GuruKaplosionSpawner",0,0,0,0,0,0,0,0,0)
	//TNT1 A 0 A_SpawnItemEx("GuruStormSpawner",0,0,0,0,0,0,0,0,0)
	Stop
	}
}


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

ACTOR GuruKaploder : GuruSpawnerInheritance
{
	+FORCERADIUSDMG
	species "player"
	+THRUSPECIES
	+DONTHURTSPECIES
	ReactionTime 25
	DamageType "LegendaryGuruPlayer"
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_Explode(2000,1280)
	TNT1 A 0 A_Countdown
	TNT1 A 0 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_TRANSFERPOINTERS|SXF_CLIENTSIDE,0)
	//TNT1 A 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,360),SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
	Loop
	Death:
	TNT1 A 0
	Stop
	}
}

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

ACTOR GuruStormBolt
{
   Speed 1
   Radius 8
   Height 12
   Renderstyle Add
   SeeSound ""
   PROJECTILE
   -NOGRAVITY
   +NODAMAGETHRUST
   +BLOODLESSIMPACT
   +RIPPER
   +FORCERADIUSDMG
   +SEEKERMISSILE
   +SCREENSEEKER
   +NOTIMEFREEZE
   +MTHRUSPECIES
   +NODAMAGETHRUST
   +DONTHARMSPECIES
   Species "player"
   DamageType "LegendaryGuruPlayer"
   States
   {
   Spawn:
      TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("GuruShocklet",0,0,0,30,0,0,240,SXF_TRANSFERPOINTERS,0)
	TNT1 A 0 A_SpawnItemEx("GuruShocklet",0,0,0,30,0,0,120,SXF_TRANSFERPOINTERS,0)
	TNT1 A 0 A_SpawnItemEx("GuruShocklet",0,0,0,30,0,0,0,SXF_TRANSFERPOINTERS,0)
	TNT1 A 0 bright A_SetAngle(7 + angle)
      TNT1 A 2 A_SpawnItemEx("StormBoltFade",0,0,0,frandom(0.25,-0.25),frandom(0.25,-0.25),frandom(0.25,-0.25),0,0)
      Loop
   Death:
      TNT1 A 0 A_PlaySoundEx("Weapons/GuruStruck",5)
      TNT1 A 0 A_Explode(30000,1024,0,1)
      TNT1 A 0 A_SpawnItemEx("GuruBoltStruckGlowX",0,0,0,0,0,0,0,0,0)
      TNT1 A 0 A_SpawnItemEx("GuruBoltStruckGlowY",0,0,0,0,0,0,0,0,0)
      //TNT1 AAAAAAA 2 A_SpawnItemEx("GuruHitSpark",random(20,-20),random(20,-20),random(30,-5),0,0,0,0,0,0)
      stop
   }
}


ACTOR GuruShocklet : GuruEffectInheritance
{
	ReactionTime 25
	DamageType "LegendaryGuruPlayer"
	species "player"
	+MTHRUSPECIES
	+DONTHURTSPECIES
	+THRUSPECIES
	+NODAMAGETHRUST
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_Countdown
	TNT1 A 0 A_Explode(19500,128)
	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),0,0)
	//TNT1 A 0 Bright A_CustomMissile("PlayerLRTLBBolt",0,0,random(0,360),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,360))
	Loop
	Death:
	TNT1 A 1 A_SpawnItemEx("GuruShockletSphere",0,0,0,0,0,0,0,0)
	Stop
	}
}
