Actor BFG11k : BrutalWeapon
{
  Radius 20
  Height 20
  SCALE 0.35
  	Weapon.BobSpeed 1.8
  Weapon.AmmoUse 0
  Weapon.AmmoGive 0
  Weapon.AmmoType "AmmoCell"
  Weapon.Kickback 100
  Weapon.SelectionOrder 3500
  Inventory.PickupSound "BFGUNLO1"
  Inventory.Pickupmessage "$GOTBFG11K"
  Obituary "%o was blasted by %k's BFG11K"
  tag "BFG 11k"
  Decal BFGLightningSMALL
  States
  {
	
  Spawn:
	BFG2 A 0
	BFG2 A 0 a_jumpifintargetinventory("BFGCoreCharge",1,2)
    BFG2 A -1
    Stop
	BFG2 A 0 a_spawnitem("ExplodingBFG",0,0)
	stop
	
  Ready:
  SelectAnimation:
		TNT1 A 0 a_clearoverlays(5,5)
		TNT1 A 0 A_takeinventory("BFGCoreCharge",250)
		BG2G A 0 A_STARTsound("BFGSELE1",20)
		BFGI AB 1
		BG2G A 0 A_overlay(6,"SelectLights1")
		BFGI CDEFGHIJ 1
				//Inspect check
				TNT1 A 0 a_jumpif(GetCVAR("weaponinspect") == 1,2)
				TNT1 A 0 A_JumpIfInventory("neverfoundBFG",1,"Inspect")
				//
		TNT1 A 0
		goto SelectAnimation2
 Inspect:
		TNT1 A 0 A_takeinventory("neverfoundBFG",1)
		BG2G A 0 A_overlay(5,"InspectLights")
		BFGI KLMNOPQRSSSSSSSSSSSS 2 A_InspectReady
		BG2G A 0 A_STARTsound("BFGINSPE",21)
		BFGI TUVWXYZ 2 A_InspectReady
		BFG1 ABCDEFGGGGGGGGGGHIJKLMN 2 A_InspectReady
 SelectAnimation2:
		BG2G A 0 A_overlay(6,"SelectLights2")
		BFG1 OPQRSTUVWXYZ 1
		8FGI ABCDEFGHIJKL 1
		//
		8FGI MNOPQRSTUV 1
		BG2G A 0 A_JumpIfInventory("BFGcoreintegrity",1,"Reboot")
			
  Ready3:
		TNT1 A 0 a_clearoverlays(12,13)
		TNT1 A 0 A_takeinventory("BFGCoreCharge",250)
  SteadY:
		8FGI V 0 A_JumpIfInventory("Kicking",1,"DoKickBFG")
		8FGI V 0 A_JumpIfInventory("StartDualWield",1,"Detonate")
		8FGI V 0 A_overlay(5,"IdleLights")
		8FGI V 1 A_WeaponReadyLit
		Loop
	
	UseAttack:
		BG2G A 0 A_overlay(5,"IdleLights")
		8FGI V 1 A_WeaponReady
		"####" "#" 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_USE, "UseAttackBFG")
		"####" "#" 0 A_FireCustomMissile("UseAttack", 0, 0, 0, 0, 0, 0)
		"####" "#" 0 A_FireCustomMissile("StealthAttack", 0, 0, 0, 0, 0, 0)
		goto ready3
	
	SelectLights1:
		BADP B 0 BRIGHT a_overlayflags(6, PSPF_ALPHA | PSPF_RENDERSTYLE, true)
		BADP B 0 A_OverlayRenderstyle(6,STYLE_Translucent)
		BG2G A 0 A_JumpIfInventory("BFGcoreloaded",1,1)
		goto nolights
		BG2G A 0 A_JumpIfInventory("BFGcoreintegrity",1,2)
		BG2G A 0 A_overlayalpha(6,0.4)
		BFG7 ABCDEFGH 1 bright 
		stop
	
	IdleLights:
		BADP B 0 BRIGHT a_overlayflags(5, PSPF_ALPHA | PSPF_RENDERSTYLE, true)
		BADP B 0 A_OverlayRenderstyle(5,STYLE_Translucent)
		BG2G A 0 A_JumpIfInventory("BFGcoreloaded",1,1)
		goto nolights
		BG2G A 0 A_JumpIfInventory("BFGcoreintegrity",1,1)
		goto idlelights2
		BG2G A 0 A_overlay(13,"energyoverlay")
		BG2G A 0 
		BFG9 S 1 bright A_overlay(12,"coreintegrityoverlay",TRUE)
		stop
	IdleLights2:
		BG2G A 0 A_overlayalpha(5,0.4)
		BFG9 S 1 bright A_overlay(12,"coreintegrityoverlay",TRUE)
		stop
	
	SelectLights2:
		BADP B 0 BRIGHT a_overlayflags(6, PSPF_ALPHA | PSPF_RENDERSTYLE, true)
		BADP B 0 A_OverlayRenderstyle(6,STYLE_Translucent)
		BG2G A 0 A_JumpIfInventory("BFGcoreloaded",1,2)
		BG2G A 0 A_STARTsound("BFGSELE1",22)
		goto nolights
		BG2G A 0 A_STARTsound("BFGSELE2",22)
		BG2G A 0 A_JumpIfInventory("BFGcoreintegrity",1,2)
		BG2G A 0 A_overlayalpha(6,0.4)
		BFG8 MNOPQRSTUVWXYZ 1 bright 
		BFG9 ABCDEFGHIJ 1 bright 
		//
		BFG9 KLMNOPQRST 1 bright 
		stop
		
	InspectLights:
		BG2G A 0 A_JumpIfInventory("BFGcoreintegrity",1,1)
		goto nolights
		BFG7 IJKLMNOPQQQQQQQQQQQQRSTUVWX 2 bright 
		//
		BFG7 YZ 2 bright 
		BFG8 ABCDEFFFFFFFFFFGHIJKL 2 bright 
		stop
	Nolights:
		TNT1 A 0 a_clearoverlays(5,6)
		stop
		
	DeselectLights:
		BADP B 0 BRIGHT a_overlayflags(5, PSPF_ALPHA | PSPF_RENDERSTYLE, true)
		BADP B 0 A_OverlayRenderstyle(5,STYLE_Translucent)
		BG2G A 0 A_JumpIfInventory("BFGcoreloaded",1,1)
		goto nolights
		BG2G A 0 A_JumpIfInventory("BFGcoreintegrity",1,2)
		BG2G A 0 A_overlayalpha(5,0.4)
		BG2G A 0 A_STARTsound("BFGOFF",20,0,1.0,0,1.0,0.3)
		BFG7 JIHGFEDCBA 1 bright 
		TNT1 A 0 
		stop
		
	DetonateLights:
		BADP B 0 BRIGHT a_overlayflags(5, PSPF_ALPHA | PSPF_RENDERSTYLE, true)
		BADP B 0 A_OverlayRenderstyle(5,STYLE_Translucent)
		BG2G A 0 A_JumpIfInventory("BFGcoreloaded",1,1)
		goto nolights
		BG2G A 0 A_JumpIfInventory("BFGcoreintegrity",1,2)
		BG2G A 0 A_overlayalpha(5,0.4)
		BFG9 R 20 bright 
		stop

	ENERGYoverlay:
		A12M B 0 BRIGHT a_overlayflags(11, PSPF_ALPHA | PSPF_RENDERSTYLE, true)
		A12M B 0 A_OverlayRenderstyle(11,STYLE_Translucent)
		
		BADF A 0 A_JumpIfInventory("ammocell",600,"12shots")
		BADF A 0 A_JumpIfInventory("ammocell",550,"11shots")
		BADF A 0 A_JumpIfInventory("ammocell",500,"10shots")
		BADF A 0 A_JumpIfInventory("ammocell",450,"9shots")
		BADF A 0 A_JumpIfInventory("ammocell",400,"8shots")
		BADF A 0 A_JumpIfInventory("ammocell",350,"7shots")
		BADF A 0 A_JumpIfInventory("ammocell",300,"6shots")
		BADF A 0 A_JumpIfInventory("ammocell",250,"5shots")
		BADF A 0 A_JumpIfInventory("ammocell",200,"4shots")
		BADF A 0 A_JumpIfInventory("ammocell",150,"3shots")
		BADF A 0 A_JumpIfInventory("ammocell",100,"2shots")
		BADF A 0 A_JumpIfInventory("ammocell",50,"1shot")
		BADF A 0 A_JumpIfInventory("ammocell",1,"almostempty")
		TNT1 A 1 BRIGHT
		stop
	12shots:
		BFGD A 7 BRIGHT
		stop
	11shots:
		BFGD B 7 BRIGHT
		stop		
	10shots:
		BFGD C 7 BRIGHT
		stop
	9shots:
		BFGD D 7 BRIGHT
		stop
	8shots:
		BFGD E 7 BRIGHT
		stop
	7shots:
		BFGD F 7 BRIGHT
		stop
	6shots:
		BFGD G 7 BRIGHT
		stop
	5shots:
		BFGD H 7 BRIGHT
		stop
	4shots:
		BFGD I 7 BRIGHT
		stop
	3shots:
		BFGD J 7 BRIGHT
		stop
	2shots:
		BFGD K 7 BRIGHT
		stop
	1shot:
		BFGD L 7 BRIGHT
		stop
	almostempty:
		BFGD M 7 BRIGHT
		stop

	coreintegrityoverlay:
		A12M B 0 BRIGHT a_overlayflags(12, PSPF_ALPHA | PSPF_RENDERSTYLE, true)
		A12M B 0 A_OverlayRenderstyle(12,STYLE_Translucent)
		BADF A 0 A_JumpIfInventory("BFGcoreintegrity",6,"integrity_6")
		BADF A 0 A_JumpIfInventory("BFGcoreintegrity",5,"integrity_5")
		BADF A 0 A_JumpIfInventory("BFGcoreintegrity",4,"integrity_4")
		BADF A 0 A_JumpIfInventory("BFGcoreintegrity",3,"integrity_3")
		BADF A 0 A_JumpIfInventory("BFGcoreintegrity",2,"integrity_2")
		BADF A 0 A_JumpIfInventory("BFGcoreintegrity",1,"integrity_1")
		BFC0 E 12 BRIGHT
		stop

	integrity_6:
		BFCO YZ 2 BRIGHT
		BFC0 ABCD 2 BRIGHT
		stop
	integrity_5:
		BFCO YZ 2 BRIGHT
		BFC0 ABCD 2 BRIGHT
		stop
	integrity_4:
		BFCO STUVWX 2 BRIGHT
		stop
	integrity_3:
		BFCO MNOPQR 2 BRIGHT
		stop
	integrity_2:
		BFCO GHIJKL 2 BRIGHT
		stop
	integrity_1:
		BFCO ABCDEF 2 BRIGHT
		stop
	

	
	Detonate:
		TNT1 A 0 a_clearoverlays(12,13)
		TNT1 A 0 A_REMOVELIGHT(2)
		BFGN A 0 A_STOPSOUND(802)
		BG2G A 0 A_takeinventory("startdualwield",1)
		//core check
		BFGN A 0 A_JumpIfInventory("BFGCOREloaded",1,2)
		BFGN A 0 A_Jump(256,4)
		
		BG2G A 0 A_overlay(5,"DetonateLights")
		BG2G A 0 A_overlay(12,"DetonateOverlay")
		BG2G A 0 A_radiusgive("BFGballtrigger",5000, RGF_NOSIGHT | RGF_MISSILES, 1, "SuperBFGBall")
		8FGI U 20 a_weaponready(WRF_NOFIRE)
		goto Ready3
		
	DetonateOverlay:
		BG2G A 0 A_STARTsound("BFGDETO",20)
		BFGT ABCDEFGHIJ 2 bright
		stop
	
  Deselect:
  TNT1 A 0 a_clearoverlays(6,13)
	BFGN A 0 A_STOPSOUND(802)
	TNT1 A 0 A_REMOVELIGHT(2)
		RLNG A 0 A_Takeinventory("BFG11Kselected",1)
		TNT1 A 0 A_TakeInventory("throwtoken", 1)
		TNT1 A 0 A_TakeInventory("slashtoken", 1)
		BG2G A 0 A_TakeInventory("Flaretoken", 1)
		BG2G A 0 A_TakeInventory("TossGrenade", 1)
	BG2G A 0 A_overlay(5,"DeselectLights")
	BFGI LKJIHGFEDCBA 1 offset(50,50)
	TNT1 A 0 offset(1,32)
DeselectContinue:
	TNT1 AAAAAAAAAAAAAAAAAA 0 A_Lower
    Loop
	
	goingtoaction:
		TNT1 A 0 a_clearoverlays(12,13)
		BG2G A 0 A_overlay(5,"DeselectLights")
		BFGI LKJIHGFEDCBA 1 offset(50,50)
		TNT1 A 0 offset(1,32)
		TNT1 A 0 A_JumpIfInventory("weargasmask", 1, "wearanimation")
		TNT1 A 0 A_JumpIfInventory("removegasmask", 1, "removeanimation")
		TNT1 A 0 A_JumpIfInventory("battledrugtoken",1,"drugshot")
		TNT1 A 0 A_JumpIfInventory("BANDAGETOKEN",1,"BANDAGE")
		goto repair
		
  Select: 
		TNT1 A 0  A_Overlay(-10,"FirstPersonLegsStand")
		TNT1 A 0 {if(GetCVAR("bd_SmartCrosshairs") == 1){A_SetCrosshair(GetCVAR("BFG11kCrosshair"));}else{A_SetCrosshair(0);}}		
 		TNT1 A 0 a_removelight(1)
		TNT1 A 0 A_removelight(2) 
	TNT1 A 0 SetPlayerProperty(0,0,2)
	TNT1 A 0 A_SetRoll(0)
 	TNT1 A 0 ACS_NAMEDEXECUTE("WEAPONSELECT",0)
	BG2G A 0 A_Giveinventory("GoSpecial",1)
 Select2:	
    BG2G E 0 A_Raise
   LOOP
   
  ALTFire:
  		BFGN A 0 A_JumpIfInventory("BFGCOREloaded",1,1)
		goto noammo
		BFGN A 0 A_JumpIfInventory("BFGCOREINTEGRITY",1,2)
		BFGN A 0 A_print("The weapon's core has run out of power. You need to replace it.",4)
		goto noammo
		BFGN A 0 A_JumpIfInventory("AmmoCell",1,1)
		Goto NoAmmo	
		TNT1 A 0 a_clearoverlays(12,13)
		BFGN A 0 A_overlay(12,"beamoverlay")
		TNT1 A 0 A_AttachLightdef(2,"greengooz2")
		BFGN A 0 A_startSound("BFGBEAM1",801)
		BFGF C 1 offset(0,33)
		BFGF D 1 offset(0,34)
		BFGF C 1 offset(0,35)
		BFGF D 1 offset(0,36)
		BFGF ABCDABCD 1 A_WeaponOffset(random(0,1),random(32,33)) 
		TNT1 A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_altattack, 1)
		goto OverloadStop
		BFGF ABCDABCD 1 A_WeaponOffset(random(0,1),random(32,33)) 
		TNT1 A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_altattack, 1)
		goto OverloadStop
		BFGF ABCDABCD 1 A_WeaponOffset(random(0,1),random(32,33)) 
		TNT1 A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_altattack, 1)
		goto OverloadStop
		BFGF ABCDABCD 1 A_WeaponOffset(random(0,1),random(32,33)) 
		TNT1 A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_altattack, 1)
		goto OverloadStop
		BFGF ABCDABCD 1 A_WeaponOffset(random(0,1),random(32,33)) 
		TNT1 A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_altattack, 1)
		goto OverloadStop
		BFGF ABCDABCD 1 A_WeaponOffset(random(0,1),random(32,33)) 
		TNT1 A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_altattack, 1)
		goto OverloadStop
		BFGF ABCD 1 A_WeaponOffset(random(0,1),random(32,33))
		TNT1 A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_altattack, 1)
		goto OverloadStop
		TNT1 A 0 A_AttachLightdef(2,"BFGBALL")
    Goto ALTHold
  
  ALTHold:
	//DURABILITY CHECK
		TNT1 A 0 A_JumpIFInventory("FirearmsdurabilityOFF", 1, 4)
		PIST F 0 A_Takeinventory("BFG11KDurability",2)
		PIST F 0 A_JumpIfInventory("BFG11KDurability",180, 2)
		PIST F 0 A_Jump(10, "Overloaded")
		///
	BFGN A 0 A_overlay(12,"beamoverlay2",true)
  	BFGN A 0 A_JumpIfInventory("AmmoCell",1,2)
	BFGN A 0 A_startSound("BFGBEAM3",803)
    Goto NoAmmo+4
	BFGN A 0 Radius_Quake(1,2,0,12,0)
	BFGN A 0 A_startSound("BFGBEAM2",802,chanf_looping)
    BFGF E 1 A_WeaponOffset(random(-3,3),random(32,34))
	BG2G A 0 A_FireCustomMissile("GreenFlareSpawn",0,0,0,0)
	BFGN A 0 A_TakeInventory("AmmoCell", 1)
    RAIL A 0 A_RailAttack(50, 10, 0, "green", "yellow", RGF_FULLBRIGHT | RGF_SILENT | RGF_NOPIERCING | RGF_CENTERZ , 0,"RailgunPuff2",0,0,1000,1,0.2,1.0,"none",10)
	BG2G N 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_ALTATTACK, "AltHold")
	
	/// DURABILITY CHECK 2
		PIST F 0 A_JumpIfInventory("BFG11KDurability", 1, 1)
		goto weaponbreak
		TNT1 A 0
		///
	
	BFGN A 0 A_startSound("BFGBEAM3",803)
    BG2G N 0 A_Removelight(2)
	BFGF C 1 offset(0,35)
	BFGF D 1 offset(0,34)
	BFGF C 1 offset(0,33)
	BFGF D 1 offset(0,32)
    Goto Noammo+4

	Beamoverlay:
		BFGB I 16 BRIGHT
		BFGB HGFEDCBA 5 BRIGHT
		stop
	Beamoverlay2:
		BFGB JKLM 4 BRIGHT
		stop

	NoammoUnload:
		BFGN A 0 acs_namedexecute("BFGdurabilitycheck",0)
	Noammo:
		TNT1 A 0 A_PlaySound("BFGDRY", 4,0.8)
		TNT1 A 0 a_clearoverlays(12,15)
		TNT1 A 0 A_takeinventory("BFGCoreCharge",250)
		TNT1 A 0 A_REMOVELIGHT(2)
		BFGN A 0 A_STOPSOUND(802)
		//core check
		8FGI U 0 A_JumpIfInventory("BFGCOREINTEGRITY",1,2)
		8FGI U 0 A_Jump(256,3)
		
		8FGI U 0 A_overlay(5,"DetonateLights")
		8FGI U 0 A_overlay(12,"NoAmmoOverlay")
		
	NoAmmoHold:
		8FGI U 1 offset(0,34)//A_WeaponReady(WRF_ALLOWRELOAD | WRF_NOFIRE)
		8FGI U 0 offset(0,34) A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_ALTATTACK || GetPlayerInput(INPUT_BUTTONS) & BT_ATTACK || GetPlayerInput(INPUT_BUTTONS) & BT_RELOAD || GetPlayerInput(INPUT_BUTTONS) & BT_USER4, "Noammohold")
		8FGI U 1 offset(0,33)
		8FGI U 1 offset(0,32)
		Goto Ready3
	
	NoammoOverlay:
		BG2G A 0 A_STARTsound("BFGON",804,0,1.0,0,1.0,0.15)
		BFGT IJ 1 BRIGHT
		BFGW ABCCCC 2 BRIGHT
		BG2G A 0 A_STARTsound("BFGOFF",20)
		BFGW BA 2 BRIGHT
		BFGT JI 1 BRIGHT
		stop

ChargingOverlay:
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 {A_FireCustomMissile("GreenFlareSpawn",0,0,0,0);  Radius_Quake(1,2,0,12,0);}
	STOP

	Fire:
		BFGN A 0
		BFGN A 0 A_JumpIfInventory("BFGCOREloaded",1,1)
		goto noammo
		BFGN A 0 A_JumpIfInventory("BFGCOREINTEGRITY",1,2)
		BFGN A 0 A_print("The weapon's core has run out of power. You need to replace it.",4)
		goto noammo
		BFGN A 0 A_JumpIfInventory("AmmoCell",10,2)
        Goto NoAmmo	
		BFGN A 0
		
		//DURABILITY CHECK
		TNT1 A 0 A_JumpIFInventory("FirearmsdurabilityOFF", 1, 4)
		PIST F 0 A_Takeinventory("BFG11KDurability",10)
		PIST F 0 A_JumpIfInventory("BFG11KDurability",180, 2)
		PIST F 0 A_Jump(80, "Misfire")
		///
		
		TNT1 A 0 a_clearoverlays(12,13)
		BFGN A 0 A_overlay(12,"cannonoverlay",true)
        BFGN A 0 A_startSound("BFGFIRE",802,chanf_overlap)
		TNT1 A 0 A_AttachLightdef(2,"SMALLGREENTORCH")
		BFGF C 1 offset(0,33)
		BFGF D 1 offset(0,34)
		BFGF C 1 offset(0,35)
		BFGF D 1 offset(0,36)
		"####" "#" 0 offset(0,32)
		8FGI V 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_attack, 1)
		goto Quickfire
		BFGN A 0 A_JumpIfInventory("AmmoCell",50,1)
		goto Quickfire
		TNT1 A 0 A_Overlay(15, "ChargingOverlay")
		BFGF ABCDABCD 1
		TNT1 A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_attack, 1)
		goto OverloadStop
		BFGF ABCDABCD 1 A_WeaponOffset(random(0,1),random(32,33))
		TNT1 A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_attack, 1)
		goto OverloadStop
		BFGF ABCDABCD 1 A_WeaponOffset(random(0,1),random(32,33))
		TNT1 A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_attack, 1)
		goto OverloadStop
		BFGF ABCDABCD 1 A_WeaponOffset(random(0,1),random(32,33))
		TNT1 A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_attack, 1)
		goto OverloadStop
		BFGF ABCDABCD 1 A_WeaponOffset(random(0,1),random(32,33))
		TNT1 A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_attack, 1)
		goto OverloadStop
		BFGF ABCDABCD 1 A_WeaponOffset(random(0,1),random(32,33))
		TNT1 A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_attack, 1)
		goto OverloadStop
		BFGF ABCD 1 A_WeaponOffset(random(0,1),random(32,33))
		TNT1 A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_attack, 1)
		goto OverloadStop
		BFGN A 0 A_TakeInventory("AmmoCell", 50)
		BFGN A 0 A_TakeInventory("bfgcoreintegrity", 1)
		TNT1 A 0 A_AttachLightdef(2,"BFGBALL")
		TNT1 A 0 A_OverlayPivotAlign(0, PSPA_CENTER,PSPA_CENTER)
		TNT1 A 0 A_FireCustomMissile("GreenFlareSpawn",0,0,0,0)
		
		//DURABILITY CHECK
		TNT1 A 0 A_JumpIFInventory("FirearmsdurabilityOFF", 1, 4)
		PIST F 0 A_Takeinventory("BFG11KDurability",50)
		PIST F 0 A_JumpIfInventory("BFG11KDurability",180, 2)
		PIST F 0 A_Jump(80, "Overloaded")
		///
		
        BFGF E 1  
		BFGN A 0 A_ZoomFactor(0.9)
		BFGF F 1  offset(0,40)
		TNT1 AAA 0 A_FireCustomMissile("GreenFlareSpawn",0,0,0,0)
        BFGN A 0 A_Recoil(8)     
		BFGN A 0 Radius_Quake(10,20,0,12,0)
        BFGN A 0 BRIGHT A_FireCustomMissile("Alerter", 0, 0, -1, 0)
		BFGN A 0 BRIGHT A_FireCustomMissile("BFGBall")
		BFGN A 0
		
		/// DURABILITY CHECK 2
		PIST F 0 A_JumpIfInventory("BFG11KDurability", 1, 1)
		goto weaponbreak
		TNT1 A 0
		///
	
		//BFGN A 0 A_ZoomFactor(1.0)`
		BFGF FGHIJKL 1 A_WeaponOffset(random(-1,1),random(32,33))
		TNT1 A 0 A_REMOVELIGHT(2)
		BFGF MMMMNNOO 1 A_WeaponOffset(random(-1,1),random(32,33))
		BFGF PQRSTUVWXY 2 A_WeaponOffset(random(-1,1),random(32,33))
		TNT1 A 0 A_WeaponOffset(0,32)
		BFGN A 0 A_JumpIfInventory("BFGCOREINTEGRITY",1,1)
		goto shutdown
	Reboot:
		TNT1 A 0 A_STARTsound("BFGON",20)
		TNT1 A 0 a_clearoverlays(12,13)
		TNT1 A 0 A_overlay(8,"RebootLights")
		TNT1 A 0 A_overlay(11,"RebootOverlay")
		8FGI V 21 Offset(0,32) A_WeaponReady(WRF_NOFIRE)
		Goto Ready3	
	ShutDown:
		TNT1 A 0 A_STARTsound("BFGOFF",20)
		TNT1 A 0 a_clearoverlays(12,13)
		TNT1 A 0 A_overlay(11,"ShutdownOverlay")
		TNT1 A 0 A_overlay(8,"ShutDownLights")
		8FGI V 30 Offset(0,32) A_WeaponReady(WRF_NOFIRE)
		Goto Ready3	

Rebootoverlay:
	TNT1 A 17
	BFGT IJIJ 1 BRIGHT offset(1, 1)
	stop
RebootLights:
	BFGL HFCA 1 BRIGHT
	TNT1 A 5 
	BFGL ABCDEEEEFGGH 1 BRIGHT
	stop
ShutDownOverlay:
	BFGT IJIJIIJJJJIIJIJIJIJIJ 1 BRIGHT offset(1, 1)
	stop
ShutDownLights:
	BFGL HGFEEFGHGFEDCBA 2 BRIGHT
	stop
	
CannonOverlay:
	BFGP I 17 BRIGHT
	BFGP HGFEDCBAJJ 4 BRIGHT
	stop
	

QuickFire:
	TNT1 A 0 a_clearoverlays(12,13)
	BFGN A 0 Radius_Quake(3,6,0,12,0)
	BFGN A 0 A_startSound("BFGFIRE2",802)
	BFGN A 0 A_TakeInventory("AmmoCell", 10)
	BFGN A 0 BRIGHT A_FireCustomMissile("Alerter", 0, 0, -1, 0)
	BFGN A 0 BRIGHT A_FireCustomMissile("BFG10K_Ball")
	BFGF FG 1
	TNT1 A 0 A_REMOVELIGHT(2)
	BFGF HIJKLMNOPQVWXY 1
	goto Ready3

OverchargeOverlay:
	BFGO AAABBBCCDDEEFGGHIJKLMNOPQRSTUVWXYZZ 5 bright
	stop

OverchargeOverlay2:
	BFG0 ABCDEFGGHIJ 2 bright 
	stop

Reload:
		TNT1 A 0 a_clearoverlays(12,13)
		BFGN A 0 A_STOPSOUND(802)
		PIST F 0 A_JumpIfInventory("REPAIRMODE",1,"KITREPAIR")
		
		BG2G A 0 A_JumpIfInventory("isscientist",1,2)
		BG2G A 0 A_print("You lack the scientific knowledge to handle this weapon's fusion core.",4)
		goto noammo
		TNT1 A 0 A_JumpIfInventory("BFGcoreloaded", 1, 1)
		goto ReplaceCore
		TNT1 A 0 A_JumpIfInventory("BFGcoreintegrity", 1, 1)
		goto noammo+1
		
///OVERCHARGE START
		TNT1 A 0 a_overlay(12,"OverchargeOverlay")
		BFGN A 0 A_STARTSound("BFGOVERC",802)
		BFGF C 1 offset(0,33)
		BFGF D 1 offset(0,34)
		BFGF C 1 offset(0,35)
		BFGF D 1 offset(0,36)
		TNT1 A 0 A_AttachLightdef(2,"greengooz2")
OverloadLoop:
	BFGF A 1 A_WeaponOffset(random(0,1),random(32,33))
		TNT1 A 0 A_giveinventory("BFGCoreCharge",1)
		BG2G A 0 A_JumpIfInventory("BFGCoreCharge", 170, "Overloaded")
		TNT1 A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_RELOAD, 1)
		goto OverloadStop
	BFGF B 1 A_WeaponOffset(random(0,1),random(32,33))
		TNT1 A 0 A_giveinventory("BFGCoreCharge",1)
		BG2G A 0 A_JumpIfInventory("BFGCoreCharge", 170, "Overloaded")
		TNT1 A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_RELOAD, 1)
		goto OverloadStop
		BFGF C 1 A_WeaponOffset(random(0,1),random(32,33))
		TNT1 A 0 A_giveinventory("BFGCoreCharge",1)
		BG2G A 0 A_JumpIfInventory("BFGCoreCharge", 170, "Overloaded")
		TNT1 A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_RELOAD, 1)
		goto OverloadStop
	BFGF D 1 A_WeaponOffset(random(0,1),random(32,33))
		TNT1 A 0 A_giveinventory("BFGCoreCharge",1)
		BG2G A 0 A_JumpIfInventory("BFGCoreCharge", 170, "Overloaded")		
		TNT1 A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_RELOAD, 1)
		goto OverloadStop
		TNT1 A 0
		goto OverloadLoop
	
	OverloadStop:
		BFGN A 0 A_STARTSound("BFGIMPL0",801,0,1.0,0,1.0,0.2)
		goto noammo+1
		

	Overloaded:
		TNT1 A 0 A_changeflag("inventory.undroppable",1)
		TNT1 A 0 A_changeflag("inventory.untossable",1)
		TNT1 A 0 A_AttachLightdef(2,"SMALLGREENTORCH")
		TNT1 A 0 a_overlay(12,"OverchargeOverlay2",FALSE)
		TNT1 A 0 A_giveinventory("BFGCoreCharge",5)
		TNT1 A 0 a_quake(5,4,0,50,0)
		TNT1 A 0 A_WeaponOffset(random(0,1),random(32,33))
		TNT1 AAA 0 A_FireCustomMissile("GreenFlareSpawn",0,0,0,0)
		BFGN A 0 A_STARTSound("BFGBEAM2",802,chanf_looping)
		BFGN A 0 A_STARTSound("BFGHUM",802,chanf_OVERLAP | chanf_looping )
		BG2G A 0 A_JumpIfInventory("BFGCoreCharge", 250, "OverloadFail")
		BG2G A 0 A_JumpIfInventory("isscientist",1,5)
		BFGF ABCD 1 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_USER4, "OverloadedDrop")		
		loop
		BFGF ABCD 1 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_USER4, "UnloadExplosive")	
		goto Overloaded
		
	OverloadFail:
		TNT1 A 0 a_clearoverlays(12,13)
		BFGN A 0 A_STOPSOUND(802)
		TNT1 A 0 A_REMOVELIGHT(2)
		TNT1 A 0 A_takeinventory("BFGCoreCharge",250)
		TNT1 A 0 A_takeinventory("BFG11Kdurability",600)
		TNT1 A 0 A_spawnitemex("SuperBFGBall",0,0,0)
		BFGF A 1
		BG2G A 0 A_radiusgive("BFGballtrigger",5000, RGF_NOSIGHT | RGF_MISSILES, 1, "SuperBFGBall")
		TNT1 A 0 ACS_namedexecute("BROKENDISARM",0)
		TNT1 AAA 1 a_weaponready
		Wait
		
	OverloadedDrop:
		TNT1 A 0 A_takeinventory("BFGCoreCharge",250)
		TNT1 A 0 a_clearoverlays(12,13)	
		TNT1 A 0 A_REMOVELIGHT(2)
		BFGN A 0 A_STARTSound("BFGimpl0",908)
		BFGI LKJIHGFEDCBA 1 offset(50,50)
		BFGN A 0 A_STOPSOUND(802)
		TNT1 A 0 offset(1,32)
		TNT1 A 0 A_Firecustommissile("ExplodingBFG",0,1,0,-10)
		TNT1 A 0 ACS_namedexecute("BROKENDISARM",0)
		TNT1 AAA 1 a_weaponready
		Wait
	
	ReplaceCoreLights2:
		BADP B 0 BRIGHT a_overlayflags(5, PSPF_ALPHA | PSPF_RENDERSTYLE, true)
		BADP B 0 A_OverlayRenderstyle(5,STYLE_Translucent)
		TNT1 A 0 a_overlayalpha(5,0.4)
	ReplaceCoreLights:
		BFG9 SRQPONNNNNNNNNNNNNOPQRS 1 BRIGHT
		stop
		
	ReplaceCoreOverlay:
		TNT1 A 0 offset(4, 7)
		BFGT I 1 bright offset(83, -10)
		BFGT J 1 bright offset(83, -3)
		BFGT I 1 bright offset(85, 4)
		BFGT J 1 bright offset(85, 8)
		BFGT I 1 bright offset(85, 9)
		BFGT J 1 bright offset(85, 8)
		BFGT I 1 bright offset(85, 6)
		BFGT I 1 bright offset(85, 3)
		BFGW C 1 BRIGHT offset(1,1)
		TNT1 A 0 A_OverlayPivotAlign(12, PSPA_CENTER,PSPA_CENTER)
		BFGW A 1 BRIGHT offset(1,1) 
		BFGW B 1 BRIGHT offset(1,-1) 
		BFGW C 1 BRIGHT offset(-1,1) 
		BFGW C 1 BRIGHT offset(-1,3) 
		TNT1 A 0 A_overlayrotate(12,5)
		BFGW ABCABC 2 BRIGHT offset(-2,1)
		BFGW A 1 BRIGHT offset(-2,1)
		TNT1 A 0 A_overlayrotate(12,0)
		BFGW B 1 BRIGHT offset(-3,3)
		BFGW C 1 BRIGHT offset(-1,2)
		BFGT J 1 BRIGHT offset(1,1)
		BFGT I 1 BRIGHT offset(1,1)
		BFGT J 1 BRIGHT offset(1,1)
		stop
	
	ReplaceCore:
		TNT1 A 0 a_clearoverlays(12,13)
		BG2G A 0 A_JumpIfInventory("BFGCoreammo", 1, 1)
		goto noammo
		BG2G A 0 A_STARTsound("BFGRELO1",21)
		BFGI LKJIHGFEDCBA 1 offset(50,50)
		TNT1 A 30 offset(1,32)
		TNT1 A 0 a_takeinventory("BFGCoreAmmo",1)
		8FGC ZYXWVUTSRQPONMLKJ 2
		BG2G A 0 A_STARTsound("BFGLOAD",22)
		8FGC IHG 2
		BG2G A 0 A_STARTsound("BFGRELO2",23)
		8FGC FEDCBA 2
		TNT1 A 0 {a_giveinventory("BFGCoreintegrity",6); a_giveinventory("BFGCoreloaded",1);}
		BFGC ZYXWVUTSRQPONMLKJI 1
		TNT1 A 0 a_overlay(12,"replacecoreOverlay")
		BFGC HGFEDCBA 1
		TNT1 A 0 a_overlay(5,"ReplaceCoreLights")
		8FGI V 1 offset(83,35)
		8FGI U 1 offset(78,35)
		8FGI T 1 offset(74,34)
		8FGI S 1 offset(69,34)
		8FGI R 1 offset(65,33)
		8FGI Q 1 offset(62,33)
		8FGI Q 1 offset(58,32)
		8FGI Q 1 offset(54,32)
		8FGI Q 1 offset(50,32)
		8FGI Q 1 offset(46,32)
		8FGI Q 1 offset(42,32)
		8FGI Q 1 offset(38,32)
		8FGI Q 1 offset(35,32)
		8FGI Q 1 offset(32,32)
		8FGI Q 1 offset(29,32)
		8FGI Q 1 offset(26,32)
		8FGI Q 1 offset(23,32)
		8FGI Q 1 offset(20,32)
		8FGI R 1 offset(17,32)
		8FGI S 1 offset(12,32)
		8FGI T 1 offset(9,32)
		8FGI U 1 offset(6,32)
		8FGI V 1 offset(3,32)
		TNT1 A 0 offset(1,32) 
		goto Reboot
	
	UnloadOverlay:
	BFGT I 1 BRIGHT offset(1,1)
	BFGT J 1 BRIGHT 
	TNT1 A 0 A_OverlayPivotAlign(12, PSPA_CENTER,PSPA_CENTER)
	BFGW A 1 BRIGHT
	BFGW B 1 BRIGHT offset(-1,2)
	TNT1 A 0 A_overlayrotate(12,5)
	BFGW C 1 BRIGHT offset(-1,3)
	BFGW ABCABCAB 2 BRIGHT offset(-2,1)
	BFGW C 1 BRIGHT offset(-2,1)
	stop

UnloadOverlay2:
	TNT1 A 1 offset(4, 7)
	GOTO unloadoverlay3+1
UnloadOverlay3:
	BFGT I 1 bright offset(4, 7)
	BFGT I 1 bright offset(85, 3)
	BFGT J 1 bright offset(85, 6)
	BFGT I 1 bright offset(85, 8)
	BFGT J 1 bright offset(85, 9)
	BFGT I 1 bright offset(85, 8)
	BFGT J 1 bright offset(85, 3)
	BFGT I 1 bright offset(84, -3)
	stop
	
	user4:
		BG2G A 0 A_JumpIfInventory("isscientist",1,2)
		BG2G A 0 A_print("You lack the scientific knowledge to handle this weapon's fusion core.",2)
		goto noammounload
		BG2G A 0 A_JumpIfInventory("BFGcoreloaded",1,1)
		goto noammounload
		BG2G A 0 A_JumpIfInventory("BFGCoreCharge",160,"UnloadExplosive")
		BG2G A 0 A_JumpIfInventory("BFGcoreintegrity",1,1)
		goto UnloadDepleted
	NoUnload:
		TNT1 A 0 a_print("You can't remove a still functioning core unless it's overcharged",2)
		goto noammounload
	UnloadDepleted:
		BG2G A 0 A_STARTsound("BFGUNLO1",21)
		TNT1 A 0 a_overlay(5,"ReplaceCoreLights2")
		TNT1 A 0 a_overlay(12,"UnloadOverlay")
		8FGI V 1 offset(3,32)
		8FGI U 1 offset(6,32)
		8FGI T 1 offset(9,32)
		8FGI S 1 offset(12,32)
		8FGI R 1 offset(17,32)
		8FGI Q 1 offset(20,32)
		8FGI Q 1 offset(23,32)
		8FGI Q 1 offset(26,32)
		8FGI Q 1 offset(29,32)
		8FGI Q 1 offset(32,32)
		8FGI Q 1 offset(35,32)
		8FGI Q 1 offset(38,32)
		8FGI Q 1 offset(42,32)
		8FGI Q 1 offset(46,32)
		8FGI Q 1 offset(50,32)
		8FGI Q 1 offset(54,32)
		8FGI Q 1 offset(58,32)
		8FGI Q 1 offset(62,33)
		8FGI R 1 offset(65,33)
		8FGI S 1 offset(69,34)
		8FGI T 1 offset(74,34)
		8FGI U 1 offset(78,35)
		TNT1 A 0 a_overlay(13,"UnloadOverlay2",FALSE)
		8FGI V 1 offset(83,35)
		BFGC A 1 offset(1,32)
		BFGC BCDEFGHIJKLMNOPQRSTUVWXYZ 1
		8FGC ABCDE 2
		TNT1 A 0 A_REMOVELIGHT(2)
		BG2G A 0 A_STARTsound("BFGUNLO2",21)
		8FGC FGHIJKLMNOPQRSTUVWXYZ 2 A_SPAWNITEMEX ("HUDSMOKE",5,15,30,1,0,1)
		TNT1 A 0 A_Firecustommissile("DepletedBFGCORE",0,1,0,-10)
		TNT1 A 0 A_takeinventory("bfgcoreloaded",1)
		TNT1 A 0 A_takeinventory("bfgcoreintegrity",6)
		GOTO READY
		
	UnloadExplosive:
		BG2G A 0 A_STARTsound("BFGUNLO1",21)
		TNT1 A 0 a_clearoverlays(12,13)
		TNT1 A 0 A_takeinventory("BFGCoreCharge",250)
		TNT1 A 0 a_overlay(12,"OverchargeOverlay2",FALSE)
		BFGF A 1 offset(3,32) a_quake(5,24,0,50,0)
		BFGF B 1 offset(6,32)
		BFGF C 1 offset(9,32)
		BFGF D 1 offset(12,32)
		BFGF E 1 offset(17,32)
		BFGF A 1 offset(20,32)
		BFGF B 1 offset(23,32)
		BFGF C 1 offset(26,32)
		BFGF D 1 offset(29,32) 
		BFGF E 1 offset(32,32)
		BFGF A 1 offset(35,32)
		BFGF B 1 offset(38,32) 
		BFGF C 1 offset(42,32)
		BFGF D 1 offset(46,32)
		BFGF E 1 offset(50,32) 
		BFGF A 1 offset(54,32)
		BFGF B 1 offset(58,32) 
		BFGF C 1 offset(62,33) 
		BFGF D 1 offset(65,33) 
		BFGF E 1 offset(69,34) 
		BFGF A 1 offset(74,34) 
		BFGF B 1 offset(78,35) 
		TNT1 A 0 a_overlay(13,"UnloadOverlay3")
		BFGF C 1 offset(83,35)
		BFGC A 1 offset(1,32) a_quake(5,100,0,50,0)
		BFGC BCDEFGHIJKLMNOPQRSTUVWXYZ 1 A_WeaponOffset(random(0,1),random(32,33))
		BFGN A 0 A_STARTSound("BFGIMPL0",806)
		8FGC ABCDE 2
		TNT1 A 0 A_REMOVELIGHT(2)
		BFGN A 0 A_STOPSound(802)
		BFGN A 0 A_STARTSound("ssteam",805)
		8FGC F 2
		BG2G A 0 A_STARTsound("BFGUNLO2",22)
		8FGC G 2
		BFGN A 0 A_STARTSound("BFGHUM",804)
		8FGC HIJKLMNOPQRSTUVWXYZ 2 {A_WeaponOffset(random(0,1),random(32,33)); A_SPAWNITEMEX ("HUDSMOKE",5,15,30,1,0,1);}
		TNT1 A 0 A_Firecustommissile("ExplodingBFGCORE",0,1,0,-10)
		TNT1 A 0 A_takeinventory("bfgcoreloaded",1)
		TNT1 A 0 A_takeinventory("bfgcoreintegrity",6)
		BFGN A 0 A_STOPSound(804)
		TNT1 A 30
		goto READY
		
		
	Misfire:
		TNT1 A 0 a_clearoverlays(12,13)
		BFGN A 0 A_STOPSOUND(802)
		TNT1 A 0 A_REMOVELIGHT(2)
		TNT1 A 0 a_giveinventory("BFG11KDurability",1)
		goto noammo
   
   Weaponbreak:
		TNT1 A 0 a_clearoverlays(12,13)
		BFGN A 0 A_STOPSOUND(802)
		TNT1 A 0 A_REMOVELIGHT(2)
		TNT1 A 0 A_STARTsound("BFGOff",20)
		TNT1 A 0 a_print("your BFG-11000 has broken!")
		TNT1 A 0 ACS_namedexecute("BROKENDISARM",0)
		TNT1 AAA 1 a_weaponready
		Wait
		
	
	KITREPAIR:
		TNT1 A 0 a_clearoverlays(12,13)
		BFGN A 0 A_STOPSOUND(802)
		TNT1 A 0 A_REMOVELIGHT(2)
		TNT1 A 0 A_JumpIFInventory("isscientist",1, 2)
		8FGI V 0 A_Jump(256,"RequireScience")
		TNT1 A 0 A_JumpIFInventory("survivalkituses",1, 2)
		8FGI V 0 A_Jump(256,"kitbroke")
		8FGI V 5
		
		TNT1 A 0 A_JumpIFInventory("BFG11KDurability",600, "NoNeedRepair")
		PIST F 0 A_JumpIfInventory("electronicparts",1, 2)
		8FGI V 0 A_Jump(256,"outofmetal2")
		PIST F 0 A_JumpIfInventory("scrapmetal",1, 2)
		8FGI V 0 A_Jump(256,"outofmetal2")
		
	KITREPAIR2:
		TNT1 A 0 a_clearoverlays(12,13)
		BFGN A 0 A_STOPSOUND(802)
		TNT1 A 0 A_REMOVELIGHT(2)
		BFGI LKJIHGFEDCBA 1
		PIST F 0 A_GIVEinventory("BFG11KDurability",100)
		BADF A 0 A_Takeinventory("survivalkituses",1)
		BADF A 0 A_Takeinventory("scrapmetal",1)
		BADF A 0 A_Takeinventory("electronicparts",1)
		TNT1 A 0 A_playsound("WIRECUT",1)
		TNT1 A 35
		TNT1 A 0 A_JumpIFInventory("survivalkituses",1, 2)
		PIST F 0 A_Jump(256,"kitbroke")
		TNT1 A 0
		goto Ready
	
	DoKICKBFG:
		TNT1 A 0 A_JumpIfInventory("isdoomguy", 1, 4)
		TNT1 A 0 A_JumpIfInventory("LARGESTAMINA", 1, 2)
		TNT1 A 0 A_JumpifInventory("UsedStamina",95,4)
		TNT1 A 0 A_JumpifInventory("UsedStamina",1995,3)
		TNT1 A 0 A_overlay(12,"KICKBFG")
		TNT1 A 0 a_Jump(256,"Dokick")
		goto Ready3
		TNT1 A 0 A_overlay(12,"KICKBFGtired")
		TNT1 A 0 a_Jump(256,"Dokick")
		goto Ready3	
	KICKBFG:
		BG2G A 0 A_overlay(13,"KickLights")
		8FGI A 1
		BFG1 ZXVTRQPN 1
		TNT1 A 0 A_JumpIfInventory("isSliding", 1, 11)
		BFG1 NPQRTVXZ 1
		8FGI A 1
		TNT1 A 0 A_JumpIfInventory("Airkicking", 1, 2)
		stop
		BFG1 N 10
		STOP
		8FGI A 10
		STOP
	KICKBFGtired:
		BG2G A 0 A_overlay(13,"KickTiredLights")
		8FGI A 2
		BFG1 ZXVTRQPN 2
		BFG1 N 13
		BFG1 NPQRTVXZ 2
		8FGI A 2
		STOP
		
	KickLights:
		BADP B 0 BRIGHT a_overlayflags(6, PSPF_ALPHA | PSPF_RENDERSTYLE, true)
		BADP B 0 A_OverlayRenderstyle(6,STYLE_Translucent)
		BG2G A 0 A_JumpIfInventory("BFGcoreloaded",1,1)
		goto nolights
		BG2G A 0 A_JumpIfInventory("BFGcoreintegrity",1,2)
		BG2G A 0 A_overlayalpha(6,0.4)
		
		BFG8 YXVTRPNML 1 BRIGHT
		TNT1 A 0 A_JumpIfInventory("isSliding", 1, 11)
		BFG8 LMNPRTVXY 1 BRIGHT
		TNT1 A 0 A_JumpIfInventory("Airkicking", 1, 2)
		stop 
		BFG8 L 10 BRIGHT
		stop
		BFG8 Y 10 BRIGHT
		stop
	
	KickTiredLights:
		BADP B 0 BRIGHT a_overlayflags(6, PSPF_ALPHA | PSPF_RENDERSTYLE, true)
		BADP B 0 A_OverlayRenderstyle(6,STYLE_Translucent)
		BG2G A 0 A_JumpIfInventory("BFGcoreloaded",1,1)
		goto nolights
		BG2G A 0 A_JumpIfInventory("BFGcoreintegrity",1,2)
		BG2G A 0 A_overlayalpha(6,0.4)
		
		BFG8 YXVTRPNML 2 BRIGHT
		BFG8 L 13 BRIGHT
		BFG8 LMNPRTVXY 2 BRIGHT
		stop
  }
}

ACTOR BfgCoreAmmo : custominventory
{
	Inventory.PickupMessage "$GOTBFGCORE"
	Inventory.Amount 1
	Inventory.MaxAmount 3
	Inventory.Icon "BFG2H0"
	Inventory.PickupSound "BFGLOAD"
	+INVBAR
	+vulnerable
	+NOBLOOD
	+cannotpush
	+FORCEXYBILLBOARD
	Height 1
	Health 1000
	tag"BFG Core"
	Scale 0.15
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(128,2)
		TNT1 A 0 A_ChangeFlag("XFLIP",1)
		TNT1 A 0
	Stay:
		BFG2 B 1 a_jumpifinventory("removeingredient",1,"Disappear")
		loop
	Use:
		TNT1 A 0 A_jumpifinventory("isscientist",1,2)
		TNT1 A 0 A_print("You have literally no idea on what to do with this thing.",4)
		fail
		TNT1 A 0 A_print("Spare fusion core to 'reload' a BFG, in case the one it comes with gets damaged.",6)
		fail	
	Disappear:
		TNT1 A 1
		stop
	}
}

ACTOR BFGcoreloaded : ammo { Inventory.MaxAmount 1 }
ACTOR BFGcorecharge : Inventory { Inventory.MaxAmount 250 }
ACTOR BFGcoreINTEGRITY : ammo { Inventory.MaxAmount 6 }

ACTOR BFG10K_Ball: FastProjectile
{
	Radius 10
	Height 2
	Speed 200
	Damage (random(200, 200))
    DamageType Extreme
	Decal "acidscorch"
	Projectile
	//+SHOOTABLE
	-NOBLOCKMAP
	+NOBLOOD
	+THRUSPECIES
	+MTHRUSPECIES
	+FORCEXYBILLBOARD
	+FORCEPAIN
	Species "Marines"
	Scale 1.0
	renderstyle ADD
	alpha 0.99
	Scale 0.4
	DeathSound "BFGEXPLO"
    SeeSound "None"
	Obituary "$OB_MPPLASMARIFLE"
	States
	{

	Spawn:
        BFS1 AB 1 BRIGHT A_CustomMissile ("BFGDeathParticleFast", 0, 0, random (0, 360), 2, random (0, 360))
		Loop

	Death:
		BFE1 A 0 Bright
		BFE1 A 3 Bright
		BG2G A 0 a_explode(200,200,0,1,50,0,0,"hitpuff","acid")
		BG2G A 0 a_explode(30,200,XF_HURTSOURCE,1,50,0,0,"hitpuff","acid")
		//BG2G A 0 A_SpawnItem("CyberRocketExplosion")
		BG2G A 0 Radius_Quake(3, 2, 0, 12, 0)
		BG2G A 0 Bright A_SpawnItem("GreenShockWave",0,0,0)
		EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BFGDeathParticleSuperFast", 0, 0, random (0, 360), 2, random (0, 360))
		EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BFGDeathParticleFast", 0, 0, random (0, 360), 2, random (0, 360))
		EXPL AAAA 0 A_CustomMissile ("BFGBIGFOG", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 AAAAAAA 0 A_CustomMissile ("GreenExplosionFire", 2, 0, random (0, 360), 2, random (0, 360))
		EXPL AA 0 A_CustomMissile ("BigNeoSmoke", 0, 0, random (0, 360), 2, random (0, 360))
		BFE1 BCDEF 2 Bright
		TNT1 AAAA 2 A_CustomMissile ("BigNeoSmoke", 2, 0, random (0, 360), 2, random (0, 360))
		Stop
	}
}


ACTOR BFGballLifetime : Inventory { Inventory.MaxAmount 500 }
ACTOR BFGballTRIGGER : Inventory { Inventory.MaxAmount 1 }

Actor SuperBFGBall : BFGBall replaces BFGBall
{
    +EXTREMEDEATH
	SPEED 20
	Damage (random(100, 100))
  Decal BFGLightning
	Bouncesound "BFGBounc"
    DamageType Desintegrate
	Scale 0.7
	Species "Marines"
	radius 15
	Height 1
	bouncetype Hexen
	gravity 0.3
	+RIPPER
	+BOUNCEONFLOORS
	+BOUNCEONWALLS
	+BOUNCEONCEILINGS
	+SKYEXPLODE
	+THRUSPECIES
	+MTHRUSPECIES
	+PIERCEARMOR
  States
  {
 Spawn:
	BFGN A 0
	BFGN AAAA 0 A_SpawnItemEx("BFGFOG", 0, 0)
	TNT1 A 0 A_AttachLightdef(3,"GREENGOOZ2")
	BFGN A 0 a_setscale(0.1,0.1)
	
	BFS1 B 1 BRIGHT A_jumpifinventory("BFGBalltrigger",1,"Explodemax")
	BFS1 A 1 BRIGHT a_setscale(0.2,0.2)
	BFS1 B 1 BRIGHT A_jumpifinventory("BFGBalltrigger",1,"Explodemax")
	BFS1 A 1 BRIGHT a_setscale(0.3,0.3)
	BFS1 B 1 BRIGHT
	BFS1 A 1 BRIGHT a_setscale(0.4,0.4)
	BFS1 B 1 BRIGHT
	BFS1 A 1 BRIGHT a_setscale(0.5,0.5)
	BFS1 B 1 BRIGHT 
	BFS1 A 1 BRIGHT a_setscale(0.6,0.6)
	BFS1 B 1 BRIGHT 
	BFS1 A 1 BRIGHT a_setscale(0.7,0.7)
	BFS1 B 1 BRIGHT
	
FlyingMAX:
	BFGN A 0 A_STartsound("BFGhum",901,CHANF_looping,1.0)
	TNT1 A 0 A_AttachLightdef(2,"bfgball2")
	BFGN A 0 A_Giveinventory("BFGBallLifetime",2)
	BFGN A 0 A_jumpifinventory("BFGBallLifetime",100,"FlyingHigh")
	BFGN A 0 A_jumpifinventory("BFGBalltrigger",1,"Explode")
    BFS1 AB 1 BRIGHT A_SpawnItemEx("BFGTrailParticle", Random(-13, 13), Random(-13, 13), Random(0, 18), Random(1, 3), 0, (0.1)*Random(-10, 10), Random(-20, 20), 128)
	BFGN A 0 A_Explode(30,250,XF_HURTSOURCE,0,200,0,0,"hitpuff","acid")
    Loop

FlyingHIGH:
	BFS1 A 1 BRIGHT a_setscale(0.65,0.65)
	BFS1 B 1 BRIGHT a_setscale(0.6,0.6)
	BFGN A 0 A_STartsound("BFGhum",901,CHANF_looping,0.7)
loophigh:
	BFGN A 0 A_Giveinventory("BFGBallLifetime",2)
	BFGN A 0 A_jumpifinventory("BFGBallLifetime",250,"FlyingMed")
	BFGN A 0 A_jumpifinventory("BFGBalltrigger",1,"Explode")
    BFS1 AB 1 BRIGHT A_SpawnItemEx("BFGTrailParticle", Random(-13, 13), Random(-13, 13), Random(0, 18), Random(1, 3), 0, (0.1)*Random(-10, 10), Random(-20, 20), 128)
	BFGN A 0 A_Explode(20,200,XF_HURTSOURCE,0,150,0,0,"hitpuff","acid")
    Loop

FlyingMED:
	BFS1 A 1 BRIGHT a_setscale(0.55,0.55)
	BFS1 B 1 BRIGHT a_setscale(0.5,0.5)
	BFGN A 0 A_STartsound("BFGhum",901,CHANF_looping,0.5)
loopmed:
	TNT1 A 0 A_AttachLightdef(2,"bfgball")
	BFGN A 0 A_Giveinventory("BFGBallLifetime",2)
	BFGN A 0 A_jumpifinventory("BFGBallLifetime",350,"FlyingLow")
	BFGN A 0 A_jumpifinventory("BFGBalltrigger",1,"Explode")
    BFS1 AB 1 BRIGHT A_SpawnItemEx("BFGTrailParticle", Random(-13, 13), Random(-13, 13), Random(0, 18), Random(1, 3), 0, (0.1)*Random(-10, 10), Random(-20, 20), 128)
	BFGN A 0 A_Explode(10,150,XF_HURTSOURCE,0,100,0,0,"hitpuff","acid")
    Loop

FlyingLOW:
	BFS1 A 1 BRIGHT a_setscale(0.4,0.4)
	BFS1 B 1 BRIGHT a_setscale(0.3,0.3)
	BFGN A 0 A_STartsound("BFGhum",901,CHANF_looping,0.3)
looplow:
	TNT1 A 0 A_AttachLightdef(2,"GREENGOOZ2")
	BFGN A 0 A_Giveinventory("BFGBallLifetime",2)
	BFGN A 0 A_jumpifinventory("BFGBallLifetime",500,"Explodelow")
	BFGN A 0 A_jumpifinventory("BFGBalltrigger",1,"Explode")
    BFS1 AB 1 BRIGHT A_SpawnItemEx("BFGTrailParticle", Random(-13, 13), Random(-13, 13), Random(0, 18), Random(1, 3), 0, (0.1)*Random(-10, 10), Random(-20, 20), 128)
	BFGN A 0 A_Explode(5,100,XF_HURTSOURCE,0,50,0,0,"hitpuff","acid")
    Loop
 
 Death:
 Explode:
 //implode
    BFGN A 0
	TNT1 A 0 A_AttachLightdef(3,"GREENGOOZ2")
	TNT1 A 0 A_AttachLightdef(2,"BFGIMPLO")
	BG2G A 0 a_explode(10,300,XF_HURTSOURCE,1,800,0,0,"hitpuff","acid")
	BG2G A 0 a_explode(10,800,0,1,800,0,0,"hitpuff","acid")
	BFGN A 0 A_STOP()
	BFGN A 0 A_STartsound("BFGIMPLO",901,0,1.0)
	BFS1 B 1 BRIGHT a_setscale(0.65,0.65)
	BFS1 A 1 BRIGHT a_setscale(0.6,0.6)
	BFS1 B 1 BRIGHT a_setscale(0.55,0.55)
	BFS1 A 1 BRIGHT a_setscale(0.5,0.5)
	BFS1 B 1 BRIGHT a_setscale(0.45,0.45)
	BFS1 A 1 BRIGHT a_setscale(0.4,0.4)
	BFS1 B 1 BRIGHT a_setscale(0.35,0.35)
	BFS1 A 1 BRIGHT a_setscale(0.3,0.3)
	BFS1 B 1 BRIGHT a_setscale(0.25,0.25)
	BFS1 A 1 BRIGHT a_setscale(0.2,0.2)
	BFS1 B 1 BRIGHT a_setscale(0.1,0.1)
	BFGN A 0 A_SpawnItemEx("BFGFOG", 0, 0)
	TNT1 A 0 A_spawnitemex("bfgwave",60,-60,8, 30,-25, 0, 0, SXF_NOCHECKPOSITION)
	TNT1 A 0 A_REMOVELIGHT(2)
	TNT1 A 20

//Boom	
	BFGN A 0 Radius_Quake(4,34,0,12,0)
	BFGN A 0 Radius_Quake(1,34,0,32,0)
	BFGN A 0 A_SpawnItemEx ("ExplosionSplashSpawner", 0, 0, -20)
	BFGN A 0 A_SpawnItemEx ("UnderwaterExplosion",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
    TNT1 AA 0 A_SpawnItemEx ("DetectFloorCrater",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	BFGN A 0 A_SpawnItemEx ("DetectCeilCrater",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_STARTSOund("BFGEXPLO",256)
	BFGN A 0 Bright A_SpawnItem("GreenShockWave",0,0,0)
	BFGN A 0 A_jumpifinventory("BFGBallLifetime",100,"Explodehigh")
	BFGN A 0 A_jumpifinventory("BFGBallLifetime",250,"Explodemed")
	BFGN A 0 A_jumpifinventory("BFGBallLifetime",350,"Explodelow")
	
ExplodeMax:	
	TNT1 A 0 A_AttachLightdef(2,"BFGEXPLO3")
	TNT1 A 0 A_STARTSOund("BFGEXPL2",255)
	BFGN A 0 A_Explode(300,1000,0,1,800)
	BFGN A 0 A_Explode(20,1000,XF_HURTSOURCE,1,800)
	EXPL A 0 A_CustomMissile ("BFGBIGFOG", 0, 0, random (0, 360), 2, random (0, 360))
	TNT1 A 0 A_CustomMissile ("GreenExplosionFire", 2, 0, random (0, 360), 2, random (0, 360))
		EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0, 0, 0,0,0,0,0,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 400,0,40,40,0,0,0,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 400,0,40,40,0,0,45,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 400,0,40,40,0,0,90,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 400,0,40,40,0,0,135,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 400,0,40,40,0,0,180,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 400,0,40,40,0,0,225,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 400,0,40,40,0,0,270,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 400,0,40,40,0,0,360,SXF_NOCHECKPOSITION)
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_spawnitemex ("BFGDeathParticleSuperFast",700,0,40,40,0,0,random(0,360),SXF_NOCHECKPOSITION)
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_spawnitemex ("BFGDeathParticleSuperFast",700,0,40,40,0,0,random(0,360),SXF_NOCHECKPOSITION)
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_spawnitemex ("BFGDeathParticleSuperFast",700,0,40,40,0,0,random(0,360),SXF_NOCHECKPOSITION)
ExplodeHigh:
	TNT1 A 0 A_AttachLightdef(3,"BFGEXPLO2")
	TNT1 A 0 A_STARTSOund("BFGEXPL2",255)
	BFGN A 0 A_Explode(200,700,0,1,600)
	BFGN A 0 A_Explode(30,500,XF_HURTSOURCE,1,450)
	EXPL A 0 A_CustomMissile ("BFGBIGFOG", 0, 0, random (0, 360), 2, random (0, 360))
	TNT1 A 0 A_CustomMissile ("GreenExplosionFire", 2, 0, random (0, 360), 2, random (0, 360))
		EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0, 0, 0,0,0,0,0,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0,0,30,20,0,0,0,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0,0,30,20,0,0,45,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0,0,30,20,0,0,90,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0,0,30,20,0,0,135,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0,0,30,20,0,0,180,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0,0,30,20,0,0,225,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0,0,30,20,0,0,270,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0,0,30,20,0,0,360,SXF_NOCHECKPOSITION)
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_spawnitemex ("BFGDeathParticleSuperFast",500,0,40,40,0,0,random(0,360),SXF_NOCHECKPOSITION)
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_spawnitemex ("BFGDeathParticleSuperFast",500,0,40,40,0,0,random(0,360),SXF_NOCHECKPOSITION)
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_spawnitemex ("BFGDeathParticleSuperFast",500,0,40,40,0,0,random(0,360),SXF_NOCHECKPOSITION)
Explodemed:
	TNT1 A 0 A_AttachLightdef(4,"BFGEXPLO")
	TNT1 A 0 A_STARTSOund("BFGEXPL2",255)
	BFGN A 0 A_Explode(200,500,0,1,400)
	BFGN A 0 A_Explode(40,300,XF_HURTSOURCE,1,250)
	EXPL A 0 A_CustomMissile ("BFGBIGFOG", 0, 0, random (0, 360), 2, random (0, 360))
	TNT1 A 0 A_CustomMissile ("GreenExplosionFire", 2, 0, random (0, 360), 2, random (0, 360))
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0, 0, 0)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0,0,20,10,0,0,0,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0,0,20,10,0,0,45,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0,0,20,10,0,0,90,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0,0,20,10,0,0,135,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0,0,20,10,0,0,180,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0,0,20,10,0,0,225,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0,0,20,10,0,0,270,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0,0,20,10,0,0,360,SXF_NOCHECKPOSITION)
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_spawnitemex ("BFGDeathParticleSuperFast",400,0,40,40,0,0,random(0,360),SXF_NOCHECKPOSITION)
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_spawnitemex ("BFGDeathParticleSuperFast",400,0,40,40,0,0,random(0,360),SXF_NOCHECKPOSITION)
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_spawnitemex ("BFGDeathParticleSuperFast",400,0,40,40,0,0,random(0,360),SXF_NOCHECKPOSITION)
Explodelow:
	
	TNT1 A 0 A_AttachLightdef(5,"BFGBALL")
	TNT1 A 0 A_stopsound(901)
	TNT1 A 0 A_STARTSOund("BFGEXPLO",256)
	BFGN A 0 A_Explode(300,300,0,1)
	BFGN A 0 A_Explode(100,300,XF_HURTSOURCE,1,50)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0, 0, 0)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 100, 0, 0)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", -100, 0, 0)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0, 100, 0)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0, -100, 0)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 100, 100, 0)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 100, -100, 0)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", -100, 100, 0)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", -100, -100, 0)
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BFGDeathParticleFast", 0, 0, random (0, 360), 2, random (0, 360))
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BFGDeathParticleSuperFast", 0, 0, random (0, 360), 2, random (0, 360))
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BFGDeathParticleFast", 0, 0, random (0, 360), 2, random (0, 360))
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BFGDeathParticleFast", 0, 0, random (0, 360), 2, random (0, 360))
    
	BFGB A 2 BRIGHT
	BFGB BCDEFG 2 Bright
	BFGN A 0 A_SPawnItem("SuperBFGExtraGiant")
	TNT1 A 0 A_removelight(2)
    TNT1 A 12
    Stop
  }
}

ACTOR DepletedBFGcore
{
	Speed 7
	Scale 0.15
    Gravity 1.0
	+bounceonwalls
	+BOUNCEONFLOORS
	bouncefactor 0.5
	+THRUSPECIES
	Species "Marines"
	SeeSound "Weapons/GrenadeBounce"
	States
	{
	Spawn:
		BFG2 CCCCCCCCCCCCCCC 3 A_CustomMissile ("RocketSmokeTrail52", 2, 0, random (70, 110), 2, random (0, 360))
		BFG2 C -1
		stop
	}
}

ACTOR ExplodingBFGcore
{
	Radius 4
	Height 4
	Speed 7
	Damage (random(50, 50))
	Scale 0.15
    +BLOODSPLATTER
    Gravity 1.0
	+bounceonwalls
	+BOUNCEONFLOORS
	+ROLLSPRITE
	+ROLLCENTER
	bouncefactor 0.5
	+THRUSPECIES
	Species "Marines"
	DamageType Kick
	SeeSound "Weapons/GrenadeBounce"
	DeathSound "none"
	Decal "Scorch"
	States
	{
	Spawn:
	    TNT1 A 0 
		BFGN A 0 A_STARTSound("BFGHUM",901,chanf_looping,0.4)
		TNT1 A 0 A_AttachLightdef(2,"greengooz2")
		BFGN A 0 Radius_Quake(1,160,0,600,0)
		BFG2 DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD 1 A_CustomMissile ("RocketSmokeTrail52", 2, 0, random (70, 110), 2, random (0, 360))
		BFGN A 0 A_soundvolume(901,0.5)
		BFG2 B 0 A_CHANGEFLAG("NOGRAVITY",1)
		BFG2 D 1 {ThrustThingz(0,1,0,1); A_CustomMissile ("RocketSmokeTrail52", 2, 0, random (70, 110), 2, random (0, 360));}
		BFG2 D 10 {A_STartsound("bep",505,0,1.0); A_CustomMissile ("RocketSmokeTrail52", 2, 0, random (70, 110), 2, random (0, 360));}
		BFG2 DDDDDDDDDDDD 5 {A_SETROLL(ROLL+5); A_STartsound("bep",505,0,1.0); A_CustomMissile ("RocketSmokeTrail52", 2, 0, random (70, 110), 2, random (0, 360));}
		BFGN A 0 A_soundvolume(901,0.6)
		BFG2 DDDDDD 5 {A_SETROLL(ROLL+10); A_STartsound("bep",505,0,1.0); A_CustomMissile ("RocketSmokeTrail52", 2, 0, random (70, 110), 2, random (0, 360));}
		BFGN A 0 A_soundvolume(901,0.7)
		TNT1 A 0 A_AttachLightdef(3,"SMALLGREENTORCH")
		BFGN A 0 Radius_Quake(2,100,0,800,0)
		BFG2 DDDDDDDD 4 {A_SETROLL(ROLL+15); A_STartsound("bep",505,0,1.0); A_CustomMissile ("RocketSmokeTrail52", 2, 0, random (70, 110), 2, random (0, 360));A_SpawnItem("GreenShockWavesmall",0,0,0);}
		BFGN A 0 A_soundvolume(901,0.9)
		BFG2 DDDDDDDDDDD 3 {A_SETROLL(ROLL+20); A_CustomMissile ("BFGDeathParticleFast", 0, 0, random (0, 360), 2, random (0, 360)); A_STartsound("bep",505,0); A_CustomMissile ("RocketSmokeTrail52", 2, 0, random (70, 110), 2, random (0, 360));A_SpawnItem("whiteShockWavesmall",0,0,0);}
		BFGN A 0 A_soundvolume(901,1.0)
		BFG2 DDDDDDDDDDDDDD 2 {A_SETROLL(ROLL+30) ; A_CustomMissile ("BFGDeathParticleFast", 0, 0, random (0, 360), 2, random (0, 360)); A_STartsound("bep",505,0); A_CustomMissile ("RocketSmokeTrail52", 2, 0, random (70, 110), 2, random (0, 360));A_SpawnItem("whiteShockWave",0,0,0);}
		TNT1 A 0 A_AttachLightdef(2,"BFGBALL")
		TNT1 A 0 A_STartsound("BFGEXPL3",505,0,1.0)
		BFG2 EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 1 {A_SETROLL(ROLL+30); A_CustomMissile ("BFGDeathParticleFast", 0, 0, random (0, 360), 2, random (0, 360)); A_SpawnItem("GreenShockWave",0,0,0);A_spawnitem("GreenFlareSpawn",0,0);}
		BFG2 FFFGGG 1 BRIGHT {A_SETROLL(ROLL+30); A_CustomMissile ("BFGDeathParticleFast", 0, 0, random (0, 360), 2, random (0, 360)); A_SpawnItem("GreenShockWave",0,0,0);A_spawnitem("GreenFlareSpawn",0,0);}
		BFGN A 0 A_STOPsound(901)
		BFGN A 0 A_SpawnItem("explodingcoreshrapnel",0,0)
		GOTO DEATH

Death:
 Explode:
 //implode
    BFGN A 0
	TNT1 A 0 A_AttachLightdef(3,"GREENGOOZ2")
	TNT1 A 0 A_AttachLightdef(2,"BFGIMPLO")
	BG2G A 0 a_explode(10,1500,XF_HURTSOURCE,1,800,0,0,"hitpuff","acid")
	BG2G A 0 a_explode(10,2000,0,1,800,0,0,"hitpuff","acid")
	BFGN A 0 A_STOP()
	BFGN A 0 A_STartsound("BFGIMPLO",901,0,1.0)
	BFS1 B 1 BRIGHT a_setscale(0.65,0.65)
	BFS1 A 1 BRIGHT a_setscale(0.6,0.6)
	BFS1 B 1 BRIGHT a_setscale(0.55,0.55)
	BFS1 A 1 BRIGHT a_setscale(0.5,0.5)
	BFS1 B 1 BRIGHT a_setscale(0.45,0.45)
	BFS1 A 1 BRIGHT a_setscale(0.4,0.4)
	BFS1 B 1 BRIGHT a_setscale(0.35,0.35)
	BFS1 A 1 BRIGHT a_setscale(0.3,0.3)
	BFS1 B 1 BRIGHT a_setscale(0.25,0.25)
	BFS1 A 1 BRIGHT a_setscale(0.2,0.2)
	BFS1 B 1 BRIGHT a_setscale(0.1,0.1)
	BFGN A 0 A_SpawnItemEx("BFGFOG", 0, 0)
	TNT1 A 0 A_spawnitemex("bfgwave",60,-60,8, 30,-25, 0, 0, SXF_NOCHECKPOSITION)
	TNT1 A 0 A_REMOVELIGHT(2)
	TNT1 A 20

//Boom	
	BFGN A 0 Radius_Quake(4,34,0,12,0)
	BFGN A 0 Radius_Quake(1,34,0,32,0)
	BFGN A 0 A_SpawnItemEx ("ExplosionSplashSpawner", 0, 0, -20)
	BFGN A 0 A_SpawnItemEx ("UnderwaterExplosion",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
    TNT1 AA 0 A_SpawnItemEx ("DetectFloorCrater",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	BFGN A 0 A_SpawnItemEx ("DetectCeilCrater",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_STARTSOund("BFGEXPLO",256)
	BFGN A 0 Bright A_SpawnItem("GreenShockWave",0,0,0)
	
ExplodeMax:	
	TNT1 A 0 A_AttachLightdef(2,"BFGEXPLO4")
	TNT1 A 0 A_STARTSOund("BFGEXPL1",255)
	BFGN A 0 A_Explode(2000,2000,0,1,1000)
	BFGN A 0 A_Explode(200,1800,XF_HURTSOURCE,1,800)
		EXPL AAAA 0 A_CustomMissile ("BFGBIGFOG", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 AAAAAAA 0 A_CustomMissile ("GreenExplosionFire", 2, 0, random (0, 360), 2, random (0, 360))
		EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0, 0, 0,0,0,0,0,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 400,0,40,40,0,0,0,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 400,0,40,40,0,0,45,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 400,0,40,40,0,0,90,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 400,0,40,40,0,0,135,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 400,0,40,40,0,0,180,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 400,0,40,40,0,0,225,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 400,0,40,40,0,0,270,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 400,0,40,40,0,0,360,SXF_NOCHECKPOSITION)
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_spawnitemex ("BFGDeathParticleSuperFast",700,0,40,40,0,0,random(0,360),SXF_NOCHECKPOSITION)
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_spawnitemex ("BFGDeathParticleSuperFast",700,0,40,40,0,0,random(0,360),SXF_NOCHECKPOSITION)
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_spawnitemex ("BFGDeathParticleSuperFast",700,0,40,40,0,0,random(0,360),SXF_NOCHECKPOSITION)
		EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0, 0, 0,0,0,0,0,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0,0,30,20,0,0,0,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0,0,30,20,0,0,45,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0,0,30,20,0,0,90,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0,0,30,20,0,0,135,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0,0,30,20,0,0,180,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0,0,30,20,0,0,225,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0,0,30,20,0,0,270,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0,0,30,20,0,0,360,SXF_NOCHECKPOSITION)
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_spawnitemex ("BFGDeathParticleSuperFast",500,0,40,40,0,0,random(0,360),SXF_NOCHECKPOSITION)
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_spawnitemex ("BFGDeathParticleSuperFast",500,0,40,40,0,0,random(0,360),SXF_NOCHECKPOSITION)
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_spawnitemex ("BFGDeathParticleSuperFast",500,0,40,40,0,0,random(0,360),SXF_NOCHECKPOSITION)
		EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0, 0, 0)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0,0,20,10,0,0,0,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0,0,20,10,0,0,45,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0,0,20,10,0,0,90,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0,0,20,10,0,0,135,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0,0,20,10,0,0,180,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0,0,20,10,0,0,225,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0,0,20,10,0,0,270,SXF_NOCHECKPOSITION)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0,0,20,10,0,0,360,SXF_NOCHECKPOSITION)
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_spawnitemex ("BFGDeathParticleSuperFast",400,0,40,40,0,0,random(0,360),SXF_NOCHECKPOSITION)
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_spawnitemex ("BFGDeathParticleSuperFast",400,0,40,40,0,0,random(0,360),SXF_NOCHECKPOSITION)
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_spawnitemex ("BFGDeathParticleSuperFast",400,0,40,40,0,0,random(0,360),SXF_NOCHECKPOSITION)
		EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0, 0, 0)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 100, 0, 0)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", -100, 0, 0)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0, 100, 0)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0, -100, 0)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 100, 100, 0)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", 100, -100, 0)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", -100, 100, 0)
	EXPL A 0 A_SpawnItemEx("BFGBigFlare", -100, -100, 0)
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BFGDeathParticleFast", 0, 0, random (0, 360), 2, random (0, 360))
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BFGDeathParticleSuperFast", 0, 0, random (0, 360), 2, random (0, 360))
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BFGDeathParticleFast", 0, 0, random (0, 360), 2, random (0, 360))
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BFGDeathParticleFast", 0, 0, random (0, 360), 2, random (0, 360))
    
	BFGB A 2 BRIGHT
	BFGB BCDEFG 2 Bright
	TNT1 A 0 A_AttachLightdef(2,"BFGFALLOUT")
	BFGN A 0 A_SPawnItem("SuperBFGExtraGiant")
	
	BFGN A 0 A_Startsound("BFGSURGE",608,chanf_looping)
	BFGN A 0 A_SPawnItem("BFGFALLOUTFOGspawner")
   	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 35 
	{ a_explode(10,1500,XF_HURTSOURCE,1,800,0,0,"hitpuff","acid"); 
	  a_explode(50,1600,0,1,800,0,0,"hitpuff","acid");
	  A_SpawnItemEx("BFGDeathParticleSpawner", Random(0, 1200), Random(0, 1200),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);
	  A_SpawnItemEx("BFGfalloutsmoke", Random(0, 1200), Random(0, 1200),0,0,0,-90,random(0,360),SXF_NOCHECKPOSITION);
	 }
	 TNT1 A 10 {A_AttachLightdef(2,"BFGEXPLO3"); A_soundvolume(608,0.8);}
	 TNT1 A 10 {A_AttachLightdef(2,"BFGEXPLO2"); A_soundvolume(608,0.6);}
	 TNT1 A 10 {A_AttachLightdef(2,"BFGEXPLO"); A_soundvolume(608,0.4);}
	 TNT1 A 10 {A_AttachLightdef(2,"BFGBALL"); A_soundvolume(608,0.2);}
	TNT1 A 0 A_removelight(2)
	TNT1 A 0 A_stopsound(608)
    Stop
	}
}

ACTOR ExplodingBFG
{
	Radius 4
	Height 4
	Speed 7
	Damage (random(100, 100))
	SCALE 0.35
    +BLOODSPLATTER
    Gravity 1.0
	+bounceonwalls
	+BOUNCEONFLOORS
	+ROLLSPRITE
	+ROLLCENTER
	bouncefactor 0.5
	+THRUSPECIES
	Species "Marines"
	DamageType Kick
	SeeSound "Weapons/GrenadeBounce"
	DeathSound "none"
	Decal "Scorch"
	States
	{
	Spawn:
	    TNT1 A 0 
		BFGN A 0 A_STARTSound("BFGBEAM2",802,chanf_looping,0.7)
		TNT1 A 0 A_AttachLightdef(2,"greengooz2")
		BFG2 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_CustomMissile ("RocketSmokeTrail52", 2, 0, random (70, 110), 2, random (0, 360))
		BFGN A 0 A_soundvolume(901,0.8)
		BFG2 AAAAAAAA 5 A_CustomMissile ("RocketSmokeTrail52", 2, 0, random (70, 110), 2, random (0, 360))
		BFGN A 0 A_soundvolume(901,0.9)
		TNT1 A 0 A_AttachLightdef(3,"SMALLGREENTORCH")
		BFGN A 0 Radius_Quake(1,100,0,800,0)
		BFG2 AAAAAAAAAAAAAA 4 {A_CustomMissile ("RocketSmokeTrail52", 2, 0, random (70, 110), 2, random (0, 360));A_SpawnItem("GreenShockWavesmall",20,0,0);}
		BFGN A 0 A_soundvolume(901,1.0)
		BFG2 AAAAAAAAAAAAAAA 2 { A_CustomMissile ("BFGDeathParticleFast", 10, 0, random (0, 360), 2, random (0, 360)); A_CustomMissile ("RocketSmokeTrail52", 2, 0, random (70, 110), 2, random (0, 360));A_spawnitem("GreenFlareSpawn",10,0); A_SpawnItem("GreenShockWave",20,0,0);}
		TNT1 A 0 A_spawnitemex("SuperBFGBall",0,0,0)
		BFG2 A 1
		BG2G A 0 A_radiusgive("BFGballtrigger",5000, RGF_NOSIGHT | RGF_MISSILES, 1, "SuperBFGBall")
		BFG2 A 31
		stop
	}
}

ACTOR GreenExplosionFire
{
	Game Doom
	Radius 1
	Height 1
	Speed 3
	Damage 0 
    +NOBLOCKMAP
    +NOTELEPORT
    +DONTSPLASH
	+MISSILE
	+FORCEXYBILLBOARD
    +CLIENTSIDEONLY
    +NOINTERACTION
	+NOCLIP
	+FORCEPAIN
	RenderStyle Add
    DamageType Flames
    Scale 2.0
	Alpha 1
	Gravity 0
	States
	{
    Spawn:
        TNT1 A 1
        EXPG ABCDEFG 3 BRIGHT
        Stop
	}
}


ACTOR GreenExplosionFireSmall: GreenExplosionFire
{
    Scale 0.6
}

Actor BFGBallDM : SuperBFGBall
{

	Species "NOne"
	-THRUSPECIES
	-MTHRUSPECIES
}


Actor AlphaBFGBAll : SuperBFGBall
{

	Scale 0.3
	Species "Marines"
	+THRUSPECIES
	+MTHRUSPECIES
	DeathSound "Explosion"
	Damage (random(100, 150))
  States
  {
	DM:
		BFGN A 0
		BFGN A 0 A_ChangeFLag("THRUSPECIES", 0)
		BFGN A 0 A_ChangeFLag("MTHRUSPECIES", 0)
		Goto Spawn1
	
	Spawn:
		BFGN A 0
		BFGN A 0 ACS_NamedExecuteAlways("CheckIfDM", 0, 0, 0, 0)//Check if Coop

	Spawn1:
    BFS1 AB 1 BRIGHT A_SpawnItem("GreenFlareMedium",0,0)
    Loop
 
 Death:
    BFGN A 0
	BFGN A 0 A_Explode(35,100,0)
	Goto Death2
	
 Death2:	
    BFGN A 0 Radius_Quake(2,34,0,12,0)
        BFGN A 0 A_SpawnItemEx ("DetectFloorCrater",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	    BFGN A 0 A_SpawnItemEx ("DetectCeilCrater",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
    //BFE1 A 0 A_SpawnItemEx("BFGDeathParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
    //BFE1 A 0 A_SpawnItemEx("BFGSuperParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
	EXPL AAAAAAAAAAAAAAAA 0 A_CustomMissile ("BFGDeathParticleSuperFast", 0, 0, random (0, 360), 2, random (0, 360))
	TNT1 AAAAAAAAA 0 A_CustomMissile ("GreenExplosionFire", 2, 0, random (0, 360), 2, random (0, 360))
    
	
	BFGB ABCDE 1 Bright A_SpawnItem("GreenFlare",0,0)
    BFGB GHIJK 1 Bright A_SpawnItem("GreenFlare",0,0)
    Stop
  }
}



Actor AlphaBFGBAll2 : AlphaBFGBAll
{

	Scale 0.15
	Speed 50
	Damagetype "Extreme"
	DeathSound "Explosion"
	Damage (random(300, 350))
	States
	{
	 Death:
    BFGN A 0
	BFGN A 0 A_Explode(200,300,0)
	Goto Death2
	}
}

Actor FriendlyBFGBAll : SuperBFGBall
{
    Damagetype "FriendBullet"
	+EXTREMEDEATH
  States
  {
 Death:
    BFGN A 0
    //BFGN A 0 Radius_Quake(4,34,0,12,0)
	
	BFGN A 0 Bright A_SpawnItem("GreenShockWave",0,0,0)
	BFGN A 0 A_SpawnItemEx ("ExplosionSplashSpawner", 0, 0, -20)
        BFGN A 0 A_SpawnItemEx ("DetectFloorCrater",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	    BFGN A 0 A_SpawnItemEx ("DetectCeilCrater",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
    //BFE1 A 0 A_SpawnItemEx("BFGDeathParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
    //BFE1 A 0 A_SpawnItemEx("BFGSuperParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BFGBIGFOG", 0, 0, random (0, 360), 2, random (0, 360))
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BFGDeathParticleFast", 0, 0, random (0, 360), 2, random (0, 360))
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BFGDeathParticleSuperFast", 0, 0, random (0, 360), 2, random (0, 360))
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BFGDeathParticleFast", 0, 0, random (0, 360), 2, random (0, 360))
	EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BFGDeathParticleFast", 0, 0, random (0, 360), 2, random (0, 360))
    
	BFGN A 0 A_Explode(120,350,0)
	BFGB ABCDE 1 Bright A_SpawnItem("GreenFlare",0,0)
	BFGN A 0 A_SPawnItem("SuperBFGExtraGiant")
    BFGB GHIJK 1 Bright A_SpawnItem("GreenFlare",0,0)
    Stop
  }
}

Actor BFGTrailParticle
{
  Height 0
  Radius 0
  Mass 0
  Speed 3
  +Missile
  +NoBlockMap
  +NoGravity
  +DontSplash
  RenderStyle Add
  Scale 0.05
  States
  {
  Spawn:
    SPKG A 2 Bright A_FadeOut(0.02)
    Loop
  }
}



Actor BFGDeathParticle
{
  Height 0
  Radius 0
  Mass 0
  +Missile
  +NoBlockMap
  -NoGravity
  +LowGravity
  +DontSplash
  +DoomBounce
  BounceFactor 0.5
  RenderStyle Add
  Scale 0.04
  States
  {
  Spawn:
  Death:
    SPKG A 2 Bright A_FadeOut(0.02)
    Loop
  }
}



Actor BFGDeathParticleFast: BFGDeathParticle
{
  Speed 10
  Scale 0.1
  States
  {
  Spawn:
  Death:
	SPKG A 11 BRIGHT
    SPKG AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 2 Bright A_FadeOut(0.06)
    Stop
  }
}

Actor BFGDeathParticleSuperFast: BFGDeathParticleFast
{
  Speed 20
}

Actor SuperBFGExtra : BFGExtra Replaces BFGExtra
{
  +NoBlockMap
  +NoGravity
  RenderStyle Add
  +FORCERADIUSDMG
  +THRUGHOST
  +PIERCEARMOR
  Alpha 0.75
  Damage 6
  Scale 0.6
  Radius 1
  Height 1
  DamageType "Desintegrate"
  States
  {
  Spawn:
    BFE2 A 0
    TNT1 AAAAA 0 A_SpawnItemEx("BFGExtraParticle", 0, 0, 14, (0.1)*Random(10, 40), 0, (0.1)*Random(-40, 40), Random(0, 360), 128)
    TNT1 AAAAA 0 A_SpawnItemEx("BFGExtraParticle", 0, 0, 14, (0.1)*Random(10, 40), 0, (0.1)*Random(-40, 40), Random(0, 360), 128)
    TNT1 AAAAA 0 A_SpawnItemEx("BFGExtraParticle", 0, 0, 14, (0.1)*Random(10, 40), 0, (0.1)*Random(-40, 40), Random(0, 360), 128)
	BFGB ABCDEFGHIJK 2 Bright A_SpawnItem("GreenFlareMedium",0,0)
    stop
  }
}


Actor SuperBFGExtraGiant : SuperBFGExtra
{
  Scale 5.0
  States
  {
  Spawn:
    BFE2 A 0
    BFGB ABCDEFGH 2 Bright
	Stop
}}

Actor BFGExtraParticle
{
  Height 0
  Radius 0
  Mass 0
  +Missile
  +NoBlockMap
  +DontSplash
  +NoInteraction
  RenderStyle Add
  Scale 0.035
  States
  {
  Spawn:
  Death:
    SPKG A 2 Bright A_FadeOut(0.1)
    Loop
  }
}


ACTOR GreenShockWave 
{ 
   Speed 0
   Height 64 
   Radius 32
   Scale 2.25 
   RenderStyle add
   Alpha 0.9
   +DROPOFF 
   +NOBLOCKMAP 
   +NOGRAVITY 
   +CLIENTSIDEONLY
   States 
   { 
   Spawn: 
      SHOK A 1 BRIGHT
      Goto Death 
   Death: 
      SHOK BCDEFGHIJKLMNOPQR 1 BRIGHT A_FadeOut(0.05)
      Stop 
   } 
} 


ACTOR WhiteShockWave: GreenShockwave
{ 
Scale 2.0
Alpha 0.12
   States 
   { 
   Spawn: 
      SHWK A 1
      SHWK CEGIKMOQ 1 A_FadeOut(0.01)
      Stop 
   } 
} 

ACTOR WhiteShockWaveBig: WhiteShockWave
{ 
Scale 3.0
} 

ACTOR WhiteShockWaveSmall: WhiteShockWave
{ 
Scale 1.0
} 

ACTOR greenShockWaveSmall: greenShockWave
{ 
Scale 0.5
} 

ACTOR BFGFOG
{
    Radius 1
    Height 1
	Alpha 0.7
	RenderStyle Add
	Scale 0.4
	Speed 8
	Gravity 0
    +NOBLOCKMAP
    +NOTELEPORT
    +DONTSPLASH
	+MISSILE
	+FORCEXYBILLBOARD
    +CLIENTSIDEONLY
    States
    {
    Spawn:
		TNT1 A 2
        BFOG ABCDEF 1 BRIGHT 
		Stop
    }
}

ACTOR BFGBIGFOG: BFGFOG
{
	Scale 0.8
}

ACTOR SmallGreenFog: BFGFOG
{
	Speed 3
	Scale 0.5
}

ACTOR BFGFALLOUTFOG: BFGFOG
{
	Scale 0.8
    States
    {
    Spawn:
		TNT1 A 2
        BFOG ABCDEF 5 BRIGHT 
		Stop
    }
}

Actor BFGDeathParticleSpawner
{
  +NoClip
  +NoBlockMap
  +NoGravity
  +Missile
  States
  {
  Spawn:
    BFGN A 0
    TNT1 AAAAA 0 A_SpawnItemEx("BFGDeathParticle", 0, 0, 0, (0.1)*Random(20, 45), 0, (0.1)*Random(-40, 40), Random(0, 360), 128)
    TNT1 AAAAA 0 A_SpawnItemEx("BFGDeathParticle", 0, 0, 0, (0.1)*Random(20, 45), 0, (0.1)*Random(-40, 40), Random(0, 360), 128)
    TNT1 AAAAA 0 A_SpawnItemEx("BFGDeathParticle", 0, 0, 0, (0.1)*Random(20, 45), 0, (0.1)*Random(-40, 40), Random(0, 360), 128)
    TNT1 AAAAA 0 A_SpawnItemEx("BFGDeathParticle", 0, 0, 0, (0.1)*Random(20, 45), 0, (0.1)*Random(-40, 40), Random(0, 360), 128)
    TNT1 A 1
    Stop
  }
}

Actor BFGSuperParticleSpawner
{
  +NoClip
  +NoBlockMap
  +NoGravity
  +Missile
  +FORCEXYBILLBOARD
  States
  {
  Spawn:
    BFGN A 0
    TNT1 AAAAAAAAAAA 0 A_SpawnItemEx("BFGSuperParticle", 0, 0, 0, (0.1)*Random(10, 35), 0, (0.1)*Random(-20, 20), Random(0, 360), 128)
    TNT1 AAAAAAAAAAA 0 A_SpawnItemEx("BFGSuperParticle", 0, 0, 0, (0.1)*Random(10, 35), 0, (0.1)*Random(-20, 20), Random(0, 360), 128)
    TNT1 AAAAAAAAAAAAAAA 0 A_SpawnItemEx("BFGSuperParticle", 0, 0, 0, (0.1)*Random(10, 35), 0, (0.1)*Random(-20, 20), Random(0, 360), 128)
    TNT1 A 1
    Stop
  }
}

Actor BFGfalloutFogSPAWNER
{
  +NoClip
  +NoBlockMap
  +NoGravity
  +Missile
  States
  {
  Spawn:
    BFGN A 0
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 AAAAA 10 {A_SpawnItemEx("BFGfalloutFOG", Random(0, 1000), Random(0, 1000),0,5,5,0,random(0,360),SXF_NOCHECKPOSITION);  A_SpawnItemEx("BFGDeathParticleFast", Random(0, 1200), Random(0, 1200),-20,2,2,-4,random(0,360),SXF_NOCHECKPOSITION);}
    TNT1 A 1
    Stop
  }
}

Actor BFGSuperParticle
{
  Height 0
  Radius 0
  Mass 0
  +Missile
  +NoBlockMap
  +NOGRAVITY
  +DontSplash
  +FORCEXYBILLBOARD
  RenderStyle Add
  Scale 0.04
  Speed 24
  States
  {
  Spawn:
  Death:
    SPKG A 2 Bright A_FadeOut(0.02)
    Loop
  }
}

/// CORE SHARDS
Actor ExplodingCoreShrapnel
{
+NOCLIP
+NOBLOCKMAP
States
	{
		Spawn:
		Death:
			TNT1 A 0
			TNT1 A 0 A_CustomMissile("BFGCoreShard1", 0, 8, random(0, 360), 2, random(-45, 45))
			TNT1 A 0 A_CustomMissile("BFGCoreShard2", 0, 8, random(0, 360), 2, random(-45, 45))
			TNT1 A 0 A_CustomMissile("BFGCoreShard3", 0, 8, random(0, 360), 2, random(-45, 45))
			TNT1 A 0 A_CustomMissile("BFGCoreShard4", 0, 8, random(0, 360), 2, random(-45, 45))
			TNT1 A 0 A_CustomMissile("BFGCoreShard5", 0, 8, random(0, 360), 2, random(-45, 45))
			TNT1 A 0 A_CustomMissile("BFGCoreShard6", 0, 8, random(0, 360), 2, random(-45, 45))
			TNT1 A 0 A_CustomMissile("BFGCoreShard7", 0, 8, random(0, 360), 2, random(-45, 45))
			TNT1 A 0 A_CustomMissile("BFGCoreShard8", 0, 8, random(0, 360), 2, random(-45, 45))
			TNT1 A 0 A_CustomMissile("BFGCoreShard9", 0, 8, random(0, 360), 2, random(-45, 45))
			TNT1 A 0 A_CustomMissile("BFGCoreShard10", 0, 8, random(0, 360), 2, random(-45, 45))
			TNT1 A 0 A_CustomMissile("BFGCoreShard11", 0, 8, random(0, 360), 2, random(-45, 45))
			TNT1 A 0 A_CustomMissile("BFGCoreShard12", 0, 8, random(0, 360), 2, random(-45, 45))
			TNT1 A 0 A_CustomMissile("BFGCoreShard13", 0, 8, random(0, 360), 2, random(-45, 45))
			TNT1 A 0 A_CustomMissile("BFGCoreShard14", 0, 8, random(0, 360), 2, random(-45, 45))
			Stop
		}
}

Actor BFGCoreShard1
{
bouncefactor 1.5
WallBounceFactor 0.6
PROJECTILE
+MISSILE
+BOUNCEONCEILINGS
+BOUNCEONFLOORS
+BOUNCEONWALLS
+BLOODSPLATTER
+HITOWNER
+THRUspecies
-NOGRAVITY
+ROLLSPRITE
+ROLLCENTER
Gravity 1.0
speed 36
BounceCount 3
Scale 0.15
Radius 10
Height 10
Species "Shrapnel"
Damage (random (80, 80))
Damagetype "Shrapnel"
Obituary "%o ate a handful of shrapnel."
States
	{
	Spawn:
	BFSH A 1 A_SETROLL(ROLL+20)
	Loop
	
	Death:
	BFSH A 500
	stop
	}
}

Actor BFGCoreShard2 : BFGCoreShard1
{States
	{Spawn:
	BFSH B 1 A_SETROLL(ROLL+20)Loop 
	Death: 
	BFSH B 500 
	stop }}

Actor BFGCoreShard3 : BFGCoreShard1
{States
	{Spawn:
	BFSH C 1 A_SETROLL(ROLL+20)Loop 
	Death: 
	BFSH C 500 
	stop }}

Actor BFGCoreShard4 : BFGCoreShard1
{States
	{Spawn:
	BFSH D 1 A_SETROLL(ROLL+20)Loop 
	Death: 
	BFSH D 500 
	stop }}

Actor BFGCoreShard5 : BFGCoreShard1
{States
	{Spawn:
	BFSH E 1 A_SETROLL(ROLL+20)Loop 
	Death: 
	BFSH E 500
	stop }}

Actor BFGCoreShard6 : BFGCoreShard1
{States
	{Spawn:
	BFSH F 1 A_SETROLL(ROLL+20)Loop 
	Death:
	BFSH F 500 
	stop }}

Actor BFGCoreShard7 : BFGCoreShard1
{States
	{Spawn:BFSH G 1 A_SETROLL(ROLL+20)Loop 
	Death:
	BFSH G 500 
	stop }}

Actor BFGCoreShard8 : BFGCoreShard1
{States
	{Spawn:
	BFSH H 1 A_SETROLL(ROLL+20)Loop
	Death:
	BFSH H 500 
	stop }}

Actor BFGCoreShard9 : BFGCoreShard1
{States
	{Spawn:
	BFSH I 1 A_SETROLL(ROLL+20)Loop 
	Death:
	BFSH I 500
	stop }}

Actor BFGCoreShard10 : BFGCoreShard1
{States
	{Spawn:
	BFSH J 1 A_SETROLL(ROLL+20)Loop
	Death:
	BFSH J 500 
	stop }}

Actor BFGCoreShard11 : BFGCoreShard1
{States
	{Spawn:
	BFSH K 1 A_SETROLL(ROLL+20)Loop 
	Death:
	BFSH K 500 
	stop }}

Actor BFGCoreShard12 : BFGCoreShard1
{States
	{Spawn:
	BFSH L 1 A_SETROLL(ROLL+20)Loop 
	Death: 
	BFSH L 500
	stop }}

Actor BFGCoreShard13 : BFGCoreShard1
{States
	{Spawn:
	BFSH M 1 A_SETROLL(ROLL+20)Loop
	Death: 
	BFSH M 500
	stop }}

Actor BFGCoreShard14 : BFGCoreShard1
{States
	{Spawn:
	BFSH N 1 A_SETROLL(ROLL+20)Loop 
	Death:
	BFSH N 500 
	stop }}