Actor "Real True Legendary BFG" : Weapon
{
//$Category Weapons/LCA
//$Title "Real True Legendary BFG"
//$Sprite RLBGX0
+NOAUTOFIRE
+WEAPON.BFG
+WEAPON.NOAUTOAIM
-INVENTORY.UNDROPPABLE
Weapon.PreferredSkin "RTLegendaryBFG-Marine"
Weapon.AmmoGive 200
Weapon.AmmoType "LDemonAmmo"
Weapon.AmmoType2 "LDemonAmmo"
Weapon.AmmoUse 100
Weapon.AmmoUse2 1
weapon.KickBack 90
Weapon.SlotNumber 8
Weapon.UpSound "Weapons/GuruUp"
Inventory.PickupSound "misc/w_pkup"
Inventory.PickupMessage "You picked up the Legendary BFG! Words can't describe how strong this thing is!"
Obituary "%o was rekt off the planet with k's Legendary BFG."
Tag "Real True Legendary BFG"
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 A 0 A_StopSound(5)
		TNT1 A 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/GuruIdle",5,1.0,1)
		RLBG ABCDEFGHIJIHGFEDCB 1 A_WeaponReady
		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/GuruCharge",6)
		RLBG IHGFED 1
		TNT1 A 0 A_GiveInventory("GuruCharge",5)
	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.975)
		RLBF A 1 Bright Offset(2,34)
		TNT1 A 0 A_ZoomFactor(0.95)
		RLBF A 1 Bright Offset(4,36)
		TNT1 A 0 A_ZoomFactor(1)
		Goto Ready
	Altfire:
		TNT1 A 0 A_PlaySound("Weapons/GuruAddFire",6)
		TNT1 A 0 Bright A_FireCustomMissile("PlayerRTLBLiteShot",0,0,0,0,0,0)
		TNT1 AAAAAAAAAAA 0 Bright A_FireCustomMissile("PlayerRTLBLiteShot",random(-11.0,11.0),1,0,0,0,1+frandom(-0.5,0.5))
		TNT1 AAAAAAAAAAA 0 Bright A_FireCustomMissile("PlayerRTLBLiteShot",random(-11.0,11.0),1,0,0,0,-1+frandom(-0.5,0.5))
		TNT1 AAAAAAAAA 0 Bright A_FireCustomMissile("PlayerRTLBLiteShot",frandom(-8.8,8.8),0,0,0,0,2+frandom(-0.5,0.5))
		TNT1 AAAAAAAAA 0 Bright A_FireCustomMissile("PlayerRTLBLiteShot",frandom(-8.8,8.8),0,0,0,0,-2+frandom(-0.5,0.5))
		TNT1 AAAAA 0 Bright A_FireCustomMissile("PlayerRTLBLiteShot",frandom(-4.4,4.4),0,0,0,0,3+frandom(-0.5,0.0))
		TNT1 AAAA 0 Bright A_FireCustomMissile("PlayerRTLBLiteShot",frandom(-4.4,4.4),0,0,0,0,-3+frandom(0.0,0.5))
		TNT1 A 0 A_Recoil(25)
		TNT1 A 0 A_GunFlash
		TNT1 A 0 A_SetBlend("Yellow",0.25,35)
		TNT1 A 0 A_SetBlend("White",0.125,35)
		TNT1 A 0 A_ZoomFactor(0.975)
		RLBF A 4 Bright
		TNT1 A 0 A_ZoomFactor(0.95)
		RLBG F 4 Bright
		RLBG G 4 Bright A_ZoomFactor(0.955)
		RLBG H 4 Bright A_ZoomFactor(0.97)
		RLBG I 5 Bright A_ZoomFactor(0.985)
		RLBG J 6 Bright A_ZoomFactor(1)
		TNT1 A 0 A_Refire
		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.25
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("PlayerRTLBLiteShot",0,0,random(0,360),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,360))
		TNT1 A 0 Bright A_CustomMissile("PlayerLRTLBBolt",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,"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 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 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
	}
}