// BFG 2704
actor "BFG 2704" : AOWWeapon replaces BFG9000 {
    Weapon.BobSpeed 1.75
    Weapon.BobRangeX 0.2
    Weapon.BobRangeY 0.4
    Weapon.BobStyle Alpha
	+WEAPON.NOAUTOFIRE
	Inventory.PickupMessage "$GOTBFG2704"
	Inventory.RespawnTics 10500
	Weapon.SelectionOrder 2800
	Weapon.AmmoUse 0
	Weapon.AmmoType ""
	Weapon.AmmoGive 0
	Weapon.PreferredSkin "MarineBFG"
	Weapon.UpSound "weapons/up/bfg"
	Tag "BFG 2704"
	DropItem ""
	States {
	Spawn:
		BFUG A -1
		stop
    Select:
		BFGG A 1 offset (90,100)
		BFGG A 1 offset (80,89)
		BFGG A 1 offset (70,79)
		BFGG A 1 offset (60,70)
		BFGG A 1 offset (50,62)
		BFGG A 1 offset (40,55)
		BFGG A 1 offset (30,49)
		BFGG A 1 offset (20,44)
		BFGG A 1 offset (15,40)
		BFGG A 1 offset (10,37)
		BFGG A 1 offset (5,34)
		BFGG A 1 offset (0,0)
		TNT1 A 0 A_TakeInventory("SelectAnimation",1)
		goto ready
	Deselect:
		TNT1 A 0 A_TakeInventory("ActionFragGrenade",1)	
        TNT1 A 0 A_TakeInventory("ActionFlashbang",1)
        TNT1 A 0 A_TakeInventory("ActionRemoteC4",1)	
        TNT1 A 0 A_TakeInventory("ActionMeleeAttack",1)
		TNT1 A 0 A_TakeInventory("ActionReload",1)	
		BFGG A 1 offset (4,34)
		BFGG A 1 offset (8,40)
		BFGG A 1 offset (16,49)
		BFGG A 1 offset (24,62)
		BFGG A 1 offset (32,79)
		BFGG A 1 offset (40,100)
		TNT1 A 0 offset (1, 33)
		TNT1 A 0 A_Lower
		wait
	Ready:
	    TNT1 A 0 A_JumpIfInventory("SelectAnimation",1,"Select")
		TNT1 A 0 A_JumpIfInventory("ActionFragGrenade",1,"UseFragGrenade")
		TNT1 A 0 A_JumpIfInventory("ActionFlashbang",1,"UseFlashbang")
		TNT1 A 0 A_JumpIfInventory("ActionRemoteC4",1,"UseRemoteC4")
		TNT1 A 0 A_JumpIfInventory("ActionMeleeAttack",1,"UseMeleeAttack")
		TNT1 A 0 A_TakeInventory("ActionReload",1)
		BFGG A 1 A_WeaponReady
		loop
	Fire:
		BFGG A 0 A_JumpIfInventory ("IsInSpawnRoom", 1, "Ready")
		BFGG A 0 A_JumpIfInventory ("InMenu", 1, "Ready")
		BFGG A 20 A_BFGSound
		BFGG B 10 A_GunFlash
		BFGG B 1 A_FireCustomMissile("BFGBetaShot1", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG B 0 A_FireCustomMissile("BFGBetaShot2", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG B 1 A_FireCustomMissile("BFGBetaShot1", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG B 0 A_FireCustomMissile("BFGBetaShot2", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG B 1 A_FireCustomMissile("BFGBetaShot1", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG B 0 A_FireCustomMissile("BFGBetaShot2", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG B 1 A_FireCustomMissile("BFGBetaShot1", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG B 0 A_FireCustomMissile("BFGBetaShot2", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG B 1 A_FireCustomMissile("BFGBetaShot1", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG B 0 A_FireCustomMissile("BFGBetaShot2", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG B 1 A_FireCustomMissile("BFGBetaShot1", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG B 0 A_FireCustomMissile("BFGBetaShot2", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG B 1 A_FireCustomMissile("BFGBetaShot1", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG B 0 A_FireCustomMissile("BFGBetaShot2", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG B 1 A_FireCustomMissile("BFGBetaShot1", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG B 0 A_FireCustomMissile("BFGBetaShot2", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG B 1 A_FireCustomMissile("BFGBetaShot1", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG B 0 A_FireCustomMissile("BFGBetaShot2", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG B 1 A_FireCustomMissile("BFGBetaShot1", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG B 0 A_FireCustomMissile("BFGBetaShot2", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG B 1 A_FireCustomMissile("BFGBetaShot1", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG B 0 A_FireCustomMissile("BFGBetaShot2", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG B 1 A_FireCustomMissile("BFGBetaShot1", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG B 0 A_FireCustomMissile("BFGBetaShot2", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG B 1 A_FireCustomMissile("BFGBetaShot1", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG B 0 A_FireCustomMissile("BFGBetaShot2", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG B 1 A_FireCustomMissile("BFGBetaShot1", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG B 0 A_FireCustomMissile("BFGBetaShot2", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG B 1 A_FireCustomMissile("BFGBetaShot1", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG B 0 A_FireCustomMissile("BFGBetaShot2", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG B 1 A_FireCustomMissile("BFGBetaShot1", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG B 0 A_FireCustomMissile("BFGBetaShot2", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG B 1 A_FireCustomMissile("BFGBetaShot1", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG B 0 A_FireCustomMissile("BFGBetaShot2", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG B 1 A_FireCustomMissile("BFGBetaShot1", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG B 0 A_FireCustomMissile("BFGBetaShot2", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG B 1 A_FireCustomMissile("BFGBetaShot1", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG B 0 A_FireCustomMissile("BFGBetaShot2", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG B 1 A_FireCustomMissile("BFGBetaShot1", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG B 0 A_FireCustomMissile("BFGBetaShot2", (random(-10, 10) * 0.75), 0, 0, 8, 0, (random(-10, 10) * 0.9))
		BFGG C 10
		BFGG C 0 Damagething(20)
		BFGG C 10
		BFGG B 0 A_ReFire
		goto Ready
	Flash:
		BFGF A 11 Bright A_Light1
		BFGF B 6 Bright A_Light2
		goto LightDone
	}
}

Actor BFGBetaShot1 : PlasmaBall
{
	Damage 4
	Obituary "$OB_BFG2704"
	damagetype "Energy"
	seesound "imp/attack"
	+HERETICBOUNCE
	bouncecount 256
	bouncefactor 1.0
	States
	{
	Spawn:
		PLS1 AB 6 Bright
	Loop
	Death:
		PLS1 CDEFG 4 Bright
		Stop
	}
}

Actor BFGBetaShot2 : BFGBetaShot1
{
	States
	{
	Spawn:
		PLS2 AB 6 Bright
		Loop
	Death:
		PLS2 CDE 4 Bright
		Stop
	}
}