ACTOR PoweredBFG9500 : BFG9500
{
  Weapon.SisterWeapon "BFG9500"
  +WEAPON.POWERED_UP
  States
	{
	Ready:
		PFGG A 1 A_WeaponReady
		Loop
	Select:
		TNT1 A 0 A_PlayWeaponSound("weapons/bfgpickup")
	SelectLoop:
		PFGG A 1 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:
		PFGG A 1 A_Lower
		Loop
	Fire:
		TNT1 A 0 A_JumpIfInventory("BfgUpgrade",1,"UpFire")
		TNT1 A 0 A_Light1
		PFGG A 2 Bright A_PlaySound("weapons/bfgf",CHAN_WEAPON)
		PFGC ABCDE 2 Bright Radius_Quake(2,2,0,1,0)
		PFGC FGHI 1 Bright Radius_Quake(3,2,0,1,0)
		PFGC FGHIF 1 Bright Radius_Quake(4,2,0,1,0)
		PFGC GH 1 Bright Radius_Quake(6,2,0,1,0)
		TNT1 A 0 A_Light2
		TNT1 A 0 A_GunFlash
		TNT1 A 0 Radius_Quake(12,4,0,1,0)
		PBFF A 4 Bright A_FireCustomMissile("PoweredBFG9500Ball",0,1)
		PBFF B 3 Bright
		TNT1 A 0 A_Light0
		PFGR ABCD 1
		PFGR EFG 2
		PFGG A 20 A_ReFire
		Goto Ready
	UpFire:
		TNT1 A 0 A_Light1
		PFGG A 2 Bright A_PlaySound("weapons/bfgf",CHAN_WEAPON)
		PFGC ABCDE 2 Bright Radius_Quake(2,2,0,1,0)
		PFGC FGHI 1 Bright Radius_Quake(3,2,0,1,0)
		PFGC FGHIF 1 Bright Radius_Quake(4,2,0,1,0)
		PFGC GH 1 Bright Radius_Quake(6,2,0,1,0)
		TNT1 A 0 A_Light2
		TNT1 A 0 A_GunFlash
		TNT1 A 0 Radius_Quake(12,4,0,1,0)
		PBFF A 4 Bright A_FireCustomMissile("UpPoweredBFG9500Ball",0,1)
		PBFF B 3 Bright
		TNT1 A 0 A_Light0
		PFGR ABCD 1
		PFGR EFG 2
		PFGG A 20 A_ReFire("UpFire")
		Goto Ready
	AltFire:
		TNT1 A 0 A_JumpIfInventory("BfgUpgrade",1,2)
		PFGG A 1 A_WeaponReady(WRF_NOFIRE)
		Goto Ready
		TNT1 A 0 A_JumpIfInventory("NewCell",600,2)
		PFGG A 1 A_WeaponReady(WRF_NOFIRE)
		Goto Ready
		TNT1 A 0 A_Light1
		PFGG A 2 Bright A_PlaySound("weapons/bfgf",CHAN_WEAPON)
		PFGC ABCDE 2 Bright Radius_Quake(2,2,0,1,0)
		PFGC FGHI 1 Bright Radius_Quake(3,2,0,1,0)
		PFGC FGHIF 1 Bright Radius_Quake(4,2,0,1,0)
		PFGC GH 1 Bright Radius_Quake(6,2,0,1,0)
		TNT1 A 0 A_Light2
		TNT1 A 0 A_GunFlash
		TNT1 A 0 Radius_Quake(12,4,0,1,0)
		TNT1 A 0 A_TakeInventory("NewCell",600)
		TNT1 A 0 A_FireCustomMissile("UpPoweredBFG9500Ball",-0.71,1)
		TNT1 A 0 A_FireCustomMissile("UpPoweredBFG9500Ball",0.71,1)
		TNT1 A 0 A_FireCustomMissile("UpPoweredBFG9500Ball",-2,1)
		TNT1 A 0 A_FireCustomMissile("UpPoweredBFG9500Ball",2,1)
		TNT1 A 0 A_FireCustomMissile("UpPoweredBFG9500Ball",-4,1)
		TNT1 A 0 A_FireCustomMissile("UpPoweredBFG9500Ball",4,1)
		TNT1 A 0 A_FireCustomMissile("UpPoweredBFG9500Ball",-6,1)
		TNT1 A 0 A_FireCustomMissile("UpPoweredBFG9500Ball",6,1)
		PBFF A 4 Bright
		PBFF B 3 Bright
		TNT1 A 0 A_Light0
		PFGR ABCD 1
		PFGR EFG 2
		PFGG A 20 A_ReFire
		Goto Ready
	Flash:
		TNT1 A 0
		Stop
	}
}

ACTOR PoweredBFG9500Ball : BFG9500Ball
{
Speed 70
+SEEKERMISSILE
States
	{
	Spawn:
		PFS3 AAA 1 Bright A_SpawnItemEx("PoweredBFGTrailparticle",Random(-12,12),Random(-12,12),Random(-12,12),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SeekerMissile(5,5)
		PFS3 BBB 1 Bright A_SpawnItemEx("PoweredBFGTrailparticle",Random(-12,12),Random(-12,12),Random(-12,12),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SeekerMissile(5,5)
		Loop
	Death:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("PoweredBFGShockwave",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 AAAAAA 0 A_CustomMissile("KaboomBlue",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		PFE3 AB 4 Bright A_SpawnItemEx("LegendaryBlueParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
		PFE3 CC 2 Bright A_BFGSpray("PoweredCustomSpray")
		PFE3 DEF 4 Bright
		Stop    
    }
}

ACTOR UpPoweredBFG9500Ball : PoweredBFG9500Ball
{
+FORCERADIUSDMG
DamageType ""
DamageType "UpBFG9500Ball"
States
	{
	Death:
		TNT1 A 0
		TNT1 A 0 A_Explode(damage*random(1,8),128,0,0)
		TNT1 A 0 A_SpawnItemEx("PoweredBFGShockwave",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 AAAAAA 0 A_CustomMissile("KaboomBlue",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		PFE3 AB 4 Bright A_SpawnItemEx("LegendaryBlueParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		PFE3 CC 2 Bright A_BFGSpray("UpPoweredCustomSpray")
		PFE3 DEF 4 Bright
		Stop    
	}
}

ACTOR PoweredCustomSpray : PCustomSpray
{
States
	{
	Spawn:
		TNT1 A 0
		PFE2 A 6 Bright A_SpawnItemEx("GreenParticleSpawnerDT",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		PFE2 BCD 6 Bright 
		Stop
	}
}

ACTOR UpPoweredCustomSpray : PoweredCustomSpray
{
DamageType ""
DamageType "UpBFGSplash"
}

ACTOR PoweredBFGShockwave : DTech10KShockwave 
{
Scale 1.0
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_JumpIf(CallAcs("LCAEffectCheck"),"Toaster")
PORI ABCDEFGHIJKLMNOPQR 2 Bright A_FadeOut(0.04)
Stop
}
}

ACTOR PoweredBFGTrailparticle : BFGTrailParticleGreen
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_JumpIf(CallAcs("LCAEffectCheck"),"Toaster")
SPPO A 2 Bright A_FadeOut(0.015)
Loop
}
}