Actor "Legendary BFG 10K" : Weapon 16607
{
//$Category Weapons/LCA
//$Sprite GRMGX0
//$Title "Legendary BFG10K"
+WEAPON.BFG
+WEAPON.NOAUTOAIM
-INVENTORY.UNDROPPABLE
Weapon.PreferredSkin "LegendaryBFG-Marine"
Weapon.AmmoGive 200
Weapon.AmmoType "LDemonAmmo"
Weapon.AmmoUse 10//35
weapon.KickBack 90
Weapon.SlotNumber 8
Weapon.UpSound "Weapons/GuruUp"
Inventory.PickupSound "misc/w_pkup"
Inventory.PickupMessage "You picked up the Legendary BFG 10K?! You cheeky bastard! Have fun spamming!"
Obituary "%o got erased from history when he got killed by %k's Legendary BFG 10K. Wait, Who is he?"
States
	{
	Spawn:
		GRMG X -1
		Loop
	Select:
		LB1G A 1 A_Raise
		LB1G A 0 A_Raise
		Loop
	Deselect:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
		TNT1 A 0 A_TakeInventory("MineAction",1)
		TNT1 A 0 A_TakeInventory("RailgunAction",1)
		TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	DeselectLoop:
		TNT1 A 0 A_StopSound(5)
		TNT1 A 0 A_StopSound(6)
		LB1G A 1 A_Lower
		LB1G A 0 A_Lower
		Loop
	Ready:
		TNT1 A 0 A_PlaySound("Weapons/GuruIdle",5,1.0,1)
		LB1G ABCDE 2 A_WeaponReady
		LB1C A 2 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/GuruCharge",6)
		LB1C ABCDEFGHIJKLMN 2
		LB1C LMNLMNLMNLMNLMNLMNLMNLMNLMNLMNLMNLMNLMNLMN 2
		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("PLegendaryImpBlueBall",0,1,0,0)
		TNT1 A 0 Radius_Quake(6,3,0,1,0)
		TNT1 A 0 A_Recoil(1)//65)
		LB1F ABCDEFGHI 1
		TNT1 A 0 A_Refire
		LB1F JKLM 2
		LB1F M 32
		Goto Ready
	Hold:
		TNT1 A 0 A_PlaySound("Weapons/GuruFire",5)
		TNT1 A 0 A_PlaySound("Weapons/GuruAddFire",6)
		TNT1 A 0 A_FireCustomMissile("PLegendaryImpBlueBall",0,1,0,0)
		TNT1 A 0 Radius_Quake(6,3,0,1,0)
		TNT1 A 0 A_Recoil(1)//65)
		LB1F ABCDEFGHI 1
		TNT1 A 0 A_Refire
		LB1F JKLM 2
		LB1F M 32
		Goto Ready
	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 LegendaryImpBlueBall
{
Projectile
Height 3
Radius 8
Speed 5
FastSpeed 5
Scale 1.2
Renderstyle Add
DECAL "BFG9500LightningBlue"
Damage 100
+RANDOMIZE
+NOTIMEFREEZE
+FORCERADIUSDMG
+FORCEXYBILLBOARD
DamageType "Legendary1"
SeeSound "imp/attack"
DeathSound "BFG9K/Explode"
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_Playsound("legball/fly",6,1.0,1)
		Goto Fly
	Fly:
		LIBB A 3 Bright
		LIBB B 3 Bright
		TNT1 A 0 Bright A_CustomMissile("LegBallAttack",random(-1,1),random(-2,2),0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("BlueBallTrailA",0,0,0,CMF_AIMDIRECTION)
		LIBB C 3 Bright
		TNT1 A 0 Bright A_CustomMissile("LegBallAttack",random(-1,1),random(-2,2),0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("BlueBallTrailB",0,0,0,CMF_AIMDIRECTION)
		LIBB D 3 Bright
		TNT1 A 0 Bright A_CustomMissile("LegBallAttack",random(-1,1),random(-2,2),0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("BlueBallTrailC",0,0,0,CMF_AIMDIRECTION)
		Loop
	Death:
		TNT1 A 0 Bright
		TNT1 AAA 0 Bright A_StopSound(6)
		TNT1 A 0 Bright A_Explode(158,138,0)
		TNT1 A 0 Bright Radius_Quake(20,12,0,12,0)
		LIBE ABCDEFG 4
		Stop
	}
}

ACTOR LegBallAttack
{
PROJECTILE
Height 3
Radius 3
Speed 5
FastSpeed 5
+LOOKALLAROUND
+QUICKTORETALIATE
+NOTARGET
+NOCLIP
+NOTIMEFREEZE
DamageType "Legendary1"
Obituary "%o was slaughtered by a Legendary Imp"
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_CopyFriendliness(AAPTR_TARGET)
		TNT1 A 0 Bright A_RearrangePointers(AAPTR_NULL, AAPTR_TARGET, AAPTR_NULL)
		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_RearrangePointers(AAPTR_MASTER, AAPTR_MASTER, AAPTR_NULL)
		TNT1 A 1 Bright A_CustomRailgun(10,0,None,"Blue",RGF_SILENT|RGF_FULLBRIGHT,0,2,"LegendaryImpPuff")
		Goto Death
	Death:
		TNT1 A 1 Bright
		Stop
	}
}

Actor LegendaryImpPuff : BulletPuff
{
+THRUSPECIES
+MTHRUSPECIES
+PUFFGETSOWNER
DamageType "Legendary1"
}

ACTOR PLegendaryImpBlueBall : LegendaryImpBlueBall
{
Speed 15
FastSpeed 15
DamageType ""
DamageType "Legendary"
Obituary "%o got obliterated by %k's Legendary BFG."
States
	{
	Fly:
		LIBB A 3 Bright
		LIBB B 3 Bright
		TNT1 A 0 Bright A_CustomMissile("PLegBallAttack",random(-1,1),random(-2,2),0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("BlueBallTrailA",0,0,0,CMF_AIMDIRECTION)
		LIBB C 3 Bright
		TNT1 A 0 Bright A_CustomMissile("PLegBallAttack",random(-1,1),random(-2,2),0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("BlueBallTrailB",0,0,0,CMF_AIMDIRECTION)
		LIBB D 3 Bright
		TNT1 A 0 Bright A_CustomMissile("PLegBallAttack",random(-1,1),random(-2,2),0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("BlueBallTrailC",0,0,0,CMF_AIMDIRECTION)
		Loop
	Death:
		TNT1 A 0 Bright
		TNT1 AAA 0 Bright A_StopSound(6)
		TNT1 A 0 Bright A_Explode(210,138,0)
		TNT1 A 0 Bright Radius_Quake(20,12,0,12,0)
		LIBE ABCDEFG 4
		Stop
	}
}

Actor PLegBallAttack : LegBallAttack
{
Speed 15
FastSpeed 15
+FRIENDLY
DamageType ""
DamageType "Legendary"
Obituary "%o got obliterated by %k's Legendary BFG."
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_RearrangePointers(AAPTR_NULL, AAPTR_TARGET, AAPTR_NULL)
		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_RearrangePointers(AAPTR_MASTER, AAPTR_MASTER, AAPTR_NULL)
		TNT1 A 1 Bright A_CustomRailgun(random(2,4)*5,0,None,"Blue",RGF_SILENT|RGF_FULLBRIGHT,0,2,"PLegendaryImpPuff")
		Goto Death
	}
}

Actor PLegendaryImpPuff : BulletPuff
{
+THRUSPECIES
+MTHRUSPECIES
+PUFFGETSOWNER
DamageType "Legendary"
}