// --------------------------------------------------------------------------
//
//	BFG 10000
//
// --------------------------------------------------------------------------

Actor U_BFG10000 : BaseWeapon replaces BFG10k
{
	Weapon.AmmoUse 1
	Weapon.AmmoGive 20
	Weapon.AmmoType "RailCore"
	Weapon.Kickback 100
	Weapon.SelectionOrder 3500
	-WEAPON.CHEATNOTWEAPON
	Inventory.PickupSound "BFGREADY"
	Inventory.Pickupmessage "You got the BFG 10000!"
	Obituary "%o was blasted by %k's BFG10K."
	Decal BFGLightning
	tag "BFG 10000"
	States
	{
	Spawn:
		BFG2 ABCBACBCACBACABACB 1
		Loop
		
	Select:
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist",1,"PuristGun")
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1010,5)==0, "PuristGun")
		TNT1 A 0 A_Giveinventory("BFG10kSelected",1)
		TNT1 A 0 A_Giveinventory("GoSpecial",1)
		TNT1 A 0 A_Takeinventory("Unloading",1)
		TNT1 A 0 A_Takeinventory("Reloading",1)
		TNT1 A 0 A_TakeInventory("TossGrenade", 1)
		TNT1 A 0 A_Takeinventory("WeapSpecial",1)
		TNT1 A 0 A_Takeinventory("Taunting",1)
		TNT1 A 0 A_Takeinventory("IdleCounter",200)
		TNT1 A 4
		TNT1 A 0 A_Raise
		Wait
		
	Deselect:
		//TNT1 A 0 A_StopSound(1)
		BG2S ABCDEF 1
		TNT1 A 0 A_TakeInventory("BFG10kSelected", 1)
		TNT1 A 0 A_Lower
		Wait		

	Ready:
		TNT1 A 0 A_JumpIfInventory("GoFatality",1,"Steady")
        TNT1 A 0 A_PlaySound("BFGREADY")
	Ready1:
		BG2S FEDCBA 1
	Ready2:
		TNT1 A 0 A_PlaySound("10KIDLE", 1, 0.5)
		BG2G BADC 1 A_WeaponReady
		TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
		TNT1 A 0 A_JumpIfInventory("Taunting",1,"TauntR")
		TNT1 A 0 A_JumpIfInventory("Salute1",1,"Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2",1,"Salute")
		TNT1 A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
		BG2G ABCD 1 A_WeaponReady
		TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
		TNT1 A 0 A_JumpIfInventory("Taunting",1,"TauntR")
		TNT1 A 0 A_JumpIfInventory("Salute1",1,"Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2",1,"Salute")
		TNT1 A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
		BG2G ACBD 1 A_WeaponReady
		TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
		TNT1 A 0 A_JumpIfInventory("Taunting",1,"TauntR")
		TNT1 A 0 A_JumpIfInventory("Salute1",1,"Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2",1,"Salute")
		TNT1 A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
		TNT1 A 0 A_JumpIfInventory("IdleCounter",200,"PlayerIsIdle")
		Goto Ready2

	PuristGun:
		TNT1 A 0 A_TakeInventory("U_BFG10000", 1)
		Goto Ready

// --------------------------------------------------------------------------
//
//	Fire
//
// --------------------------------------------------------------------------

	Fire:
		TNT1 A 0 A_StopSound(2)
		BG2G E 15 A_PlaySound("10KSTART", 1, 0.8)
		BG2G FGHIJ 4 BRIGHT
		BG2G K 1 BRIGHT A_FireCustomMissile("GreenFlareSpawn",0,0,0,0)
		TNT1 A 0 A_PlaySound("10KFIRE", 5)
		BG2G L 1 BRIGHT A_FireCustomMissile("GreenFlareSpawn",0,0,0,0)
		TNT1 A 0 A_FireBullets(0, 0, 1, 100, "BrutalBFG10kShot")
		TNT1 A 0 A_SetPitch(-3.0 + pitch)
		TNT1 A 0 A_SetAngle(angle + frandom(-2, 2))
		BG2G M 1 BRIGHT A_FireCustomMissile("GreenFlareSpawn",0,0,0,0)
		BG2G N 1 BRIGHT A_SetPitch(0.35 + pitch)
		TNT1 A 0 A_ReFire
		BG2G OOOO 1 A_SetPitch(0.35 + pitch)
		TNT1 A 0 A_PlaySound("10KSTOP", 2)
		BG2G O 15
		Goto Ready2

	Hold:
		BG2G FGHIJ 1 BRIGHT A_SetPitch(0.25 + pitch)
		BG2G K 1 BRIGHT A_FireCustomMissile("GreenFlareSpawn",0,0,0,0)
		TNT1 A 0 A_PlaySound("10KFIRE", 5)
		BG2G L 1 BRIGHT A_FireCustomMissile("GreenFlareSpawn",0,0,0,0)
		TNT1 A 0 A_FireBullets(0, 0, 1, 100, "BrutalBFG10kShot")
		TNT1 A 0 A_SetPitch(-3.0 + pitch)
		TNT1 A 0 A_SetAngle(angle + frandom(-2, 2))
		BG2G M 1 BRIGHT A_FireCustomMissile("GreenFlareSpawn",0,0,0,0)
		BG2G N 1 BRIGHT A_SetPitch(0.35 + pitch)
		TNT1 A 0 A_ReFire
		BG2G OOOO 1 A_SetPitch(0.35 + pitch)
		TNT1 A 0 A_PlaySound("10KSTOP", 2)
		BG2G O 15
		Goto Ready2

// --------------------------------------------------------------------------
//
//	End Stuff
//
// --------------------------------------------------------------------------

	KickFlash:
		TNT1 A 0 A_PlaySound("10KIDLE", 1, 0.5)
		BG2K ABCD 1
		BG2K EFGHEFGH 1
		TNT1 A 0 A_PlaySound("10KIDLE", 1, 0.5)
		BG2K DCBA 1
		BG2G C 1
		Stop

	AirKickFlash:
		TNT1 A 0 A_PlaySound("10KIDLE", 1, 0.5)
		BG2K ABCD 1
		BG2K EFGEHGEG 1
		TNT1 A 0 A_PlaySound("10KIDLE", 1, 0.5)
		BG2K FH 1
		BG2K DCBA 1
		BG2G C 1
		Stop
		
	TauntFlash:
		TNT1 A 0 A_PlaySound("10KIDLE", 1, 0.5)
		BG2K ABCD 1
		BG2K EFGHEGFE 1
		TNT1 A 0 A_PlaySound("10KIDLE", 1, 0.5)
		BG2K HGEHFGEFGHEG 1
		TNT1 A 0 A_PlaySound("10KIDLE", 1, 0.5)
		BG2K FHGEFHFEFGHE 1
		TNT1 A 0 A_PlaySound("10KIDLE", 1, 0.5)
		BG2K FGH 1
		BG2K DCBA 1
		BG2G C 1
		Stop
	
	GrenadeFlash:
		//TNT1 A 0 A_StopSound(1)
		BG2S ABCDEF 1
		Stop
	}
}

Actor U_BrutalBFG10kShot replaces BrutalBFG10kShot
{
	Radius 11
	Height 8
	Speed 20
	Damage (random(100, 200))
	DamageType "EXTREME"
	+NoBlockMap
	+NoGravity
	+ActivateImpact
	+ActivatePCross
	+NoTeleport
	+PuffOnActors
	+PuffGetsOwner
	+EXTREMEDEATH
	Renderstyle Add
	Alpha 0.9
	Scale 0.7
	SeeSound "Weapons/BFG10KX"
	AttackSound "Weapons/BFG10KX"
	Obituary "$OB_BFG10K"
	States
	{
	Spawn:
		TNT1 A 0
		BFGB A 2 Bright A_Explode(150,220,1,1,10)
		TNT1 A 0 A_PlaySound("FAREXPL")
		TNT1 A 0 Radius_Quake(3, 2, 0, 12, 0)
		TNT1 A 0 A_SpawnItem("GreenShockWave",0,0,0)
		TNT1 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))
		BFGB BCDEFGHIJK 2 Bright A_CustomMissile ("BigNeoSmoke", 2, 0, random (0, 360), 2, random (0, 360))
		Stop
	}
}