Actor Gezzdt8ball : UWeapon
{
	Weapon.SelectionOrder 1700
	Weapon.SlotNumber 4
	Weapon.AmmoUse 1
	Weapon.AmmoGive 6
	Weapon.AmmoType "8Ballammo"
	Weapon.AmmoUse2 1
	Weapon.AmmoGive2 0
	Weapon.AmmoType2 "8Ballammo"
	Inventory.PickupMessage "You got the Eightball gun"
	Obituary "%o was smacked down multiple times by %k's Eightball."
	Tag "Eightball"
	scale 0.075
	Inventory.Icon "1001G0"
	+Weapon.NOALERT
	+WEAPON.EXPLOSIVE
	States
	{
	Select:
		TNT1 A 0 A_PlaySound("TurokRageWars/Weapons/TekCrossbowUp",6)
		8BAL GG 1 A_Raise
		8BAL H 1 Offset(-67, 100)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		8BAL I 1 Offset(-54, 81)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		8BAL J 1 Offset(-32, 69)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		8BAL K 1 Offset(-22, 58)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		8BAL L 1 Offset(-10, 47)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		8BAL M 1 Offset(-7, 39)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		8BAL N 1 Offset(-2, 34)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		Goto Ready
	Deselect:
		TNT1 A 0 a_playsound ("weapons/holster", 0)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		8BAL N 1 Offset(-2, 34)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		8BAL M 1 Offset(-7, 39)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		8BAL L 1 Offset(-10, 47)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		8BAL L 1 Offset(-22, 58)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		8BAL J 1 Offset(-32, 69)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		8BAL I 1 Offset(-54, 81)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		8BAL H 1 Offset(-67, 100)
		TNT1 A 1 A_Lower
		Wait
	Ready:
		TNT1 A 0 A_TakeInventory("8BallLoad0", 1)
		TNT1 A 0 A_TakeInventory("8BallLoad1", 1)
		TNT1 A 0 A_TakeInventory("8BallLoad2", 1)
		TNT1 A 0 A_TakeInventory("8BallLoad3", 1)
		TNT1 A 0 A_TakeInventory("8BallLoad4", 1)
		TNT1 A 0 A_TakeInventory("8BallLoad5", 1)
		TNT1 A 0 A_TakeInventory("8BallLoad6", 1)
		TNT1 A 0 A_TakeInventory("8BGrenadeload", 1)
		8BAL A 1 A_Weaponready
		loop
	Altfire:
		8BAL A 0 A_GiveInventory("8BGrenadeload",1)
		goto Fire
	Fire:
		TNT1 A 0 A_GiveInventory("8BallLoad0",1)
		8BAL A 2 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		8BAL A 2 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		8BAL A 0 A_ReFire("8BallLoaded0")
		Goto FireRockets
	8BallLoaded0:
		TNT1 A 0 A_JumpIfInventory("8Ballammo",1,1)
		Goto FireRockets
		TNT1 A 0 A_Playsound("8ball/load",6)
		TNT1 A 0 A_TakeInventory("8BallLoad0", 1)
		TNT1 A 0 A_GiveInventory("8BallLoad1", 1)
		8BLL ABCDEFGHIJKLMNOP 1
		TNT1 A 0 A_TakeInventory("8Ballammo",1)
		8BLL QRSTUVWXYZ 1
		8BLZ Z 1
		TNT1 A 0 A_JumpIfInventory("8Ballammo",1,1)
		Goto FireRockets
		TNT1 A 0 A_ReFire("8BallLoaded1")
		Goto FireRockets
	8BallLoaded1:
		TNT1 A 0 A_JumpIfInventory("8Ballammo",1,1)
		Goto FireRockets
		TNT1 A 0 A_Playsound("8ball/load",6)
		TNT1 A 0 A_TakeInventory("8BallLoad0", 1)
		TNT1 A 0 A_TakeInventory("8BallLoad1", 1)
		TNT1 A 0 A_GiveInventory("8BallLoad2", 1)
		8BLL ABCDEFGHIJKLMNOP 1
		TNT1 A 0 A_TakeInventory("8Ballammo",1)
		8BLL QRSTUVWXYZ 1
		8BLZ Z 1
		TNT1 A 0 A_JumpIfInventory("8Ballammo",1,1)
		Goto FireRockets
		TNT1 A 0 A_ReFire("8BallLoaded2")
		Goto FireRockets
	8BallLoaded2:
		TNT1 A 0 A_JumpIfInventory("8Ballammo",1,1)
		Goto FireRockets
		TNT1 A 0 A_Playsound("8ball/load",6)
		TNT1 A 0 A_TakeInventory("8BallLoad0", 1)
		TNT1 A 0 A_TakeInventory("8BallLoad1", 1)
		TNT1 A 0 A_TakeInventory("8BallLoad2", 1)
		TNT1 A 0 A_GiveInventory("8BallLoad3", 1)
		8BLL ABCDEFGHIJKLMNOP 1
		TNT1 A 0 A_TakeInventory("8Ballammo",1)
		8BLL QRSTUVWXYZ 1
		8BLZ Z 1
		TNT1 A 0 A_JumpIfInventory("8Ballammo",1,1)
		Goto FireRockets
		TNT1 A 0 A_ReFire("8BallLoaded3")
		Goto FireRockets
	8BallLoaded3:
		TNT1 A 0 A_JumpIfInventory("8Ballammo",1,1)
		Goto FireRockets
		TNT1 A 0 A_Playsound("8ball/load",6)
		TNT1 A 0 A_TakeInventory("8BallLoad0", 1)
		TNT1 A 0 A_TakeInventory("8BallLoad1", 1)
		TNT1 A 0 A_TakeInventory("8BallLoad2", 1)
		TNT1 A 0 A_TakeInventory("8BallLoad3", 1)
		TNT1 A 0 A_GiveInventory("8BallLoad4", 1)
		8BLL ABCDEFGHIJKLMNOP 1
		TNT1 A 0 A_TakeInventory("8Ballammo",1)
		8BLL QRSTUVWXYZ 1
		8BLZ Z 1
		TNT1 A 0 A_JumpIfInventory("8Ballammo",1,1)
		Goto FireRockets
		TNT1 A 0 A_ReFire("8BallLoaded4")
		Goto FireRockets
	8BallLoaded4:
		TNT1 A 0 A_JumpIfInventory("8Ballammo",1,1)
		Goto FireRockets
		TNT1 A 0 A_Playsound("8ball/load",6)
		TNT1 A 0 A_TakeInventory("8BallLoad0", 1)
		TNT1 A 0 A_TakeInventory("8BallLoad1", 1)
		TNT1 A 0 A_TakeInventory("8BallLoad2", 1)
		TNT1 A 0 A_TakeInventory("8BallLoad3", 1)
		TNT1 A 0 A_TakeInventory("8BallLoad4", 1)
		TNT1 A 0 A_GiveInventory("8BallLoad5", 1)
		8BLL ABCDEFGHIJKLMNOP 1
		TNT1 A 0 A_TakeInventory("8Ballammo",1)
		8BLL QRSTUVWXYZ 1
		8BLZ Z 1
		TNT1 A 0 A_JumpIfInventory("8Ballammo",1,1)
		Goto FireRockets
		TNT1 A 0 A_ReFire("8BallLoaded5")
		Goto FireRockets
	8BallLoaded5:
		TNT1 A 0 A_JumpIfInventory("8Ballammo",1,1)
		Goto FireRockets
		TNT1 A 0 A_Playsound("8ball/load",6)
		TNT1 A 0 A_TakeInventory("8BallLoad0", 1)
		TNT1 A 0 A_TakeInventory("8BallLoad1", 1)
		TNT1 A 0 A_TakeInventory("8BallLoad2", 1)
		TNT1 A 0 A_TakeInventory("8BallLoad3", 1)
		TNT1 A 0 A_TakeInventory("8BallLoad4", 1)
		TNT1 A 0 A_TakeInventory("8BallLoad5", 1)
		TNT1 A 0 A_GiveInventory("8BallLoad6", 1)
		8BLL ABCDEFGHIJKLMNOP 1
		TNT1 A 0 A_TakeInventory("8Ballammo",1)
		8BLL QRSTUVWXYZ 1
		8BLZ Z 1
		Goto FireRockets
	FireRockets:
		TNT1 A 0 A_AlertMonsters
		TNT1 A 0 A_JumpIfInventory("8BallLoad0",0,"Fire0")
		TNT1 A 0 A_JumpIfInventory("8BallLoad1",0,"Fire1")
		TNT1 A 0 A_JumpIfInventory("8BallLoad2",0,"Fire2")
		TNT1 A 0 A_JumpIfInventory("8BallLoad3",0,"Fire3")
		TNT1 A 0 A_JumpIfInventory("8BallLoad4",0,"Fire4")
		TNT1 A 0 A_JumpIfInventory("8BallLoad5",0,"Fire5")
		TNT1 A 0 A_JumpIfInventory("8BallLoad6",0,"Fire6")
		Goto Ready
	Fire0:
		TNT1 A 0 A_TakeInventory("8Ballammo",1)
	Fire1:
		TNT1 A 0 A_TakeInventory("8BallLoad1", 1)
		TNT1 A 0 A_JumpIfInventory("8BGrenadeload",0,2)
		TNT1 A 0 A_Playsound("8ball/fire",7)
		TNT1 A 0 A_Playsound("8ball/altfire",7)
		TNT1 A 0 A_JumpIfInventory("8BGrenadeload",0,3)
		TNT1 A 0 A_FireCustomMissile("8BRocket",0,0,0,3)
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_FireCustomMissile("8BGrenade",random(-3,3),0,random(-2,2),random(-2,0),0,random(12,18))
		8BAL BCDEFGHIJKLMN 1
		TNT1 A 0 A_Playsound("8ball/load",6)
		8BLL ABCDEFGHIJKLMNOPQRSTUVWXYZ 1
		8BLZ Z 1
		Goto Ready
	Fire2:
		TNT1 A 0 A_TakeInventory("8BallLoad1", 1)
		TNT1 A 0 A_TakeInventory("8BallLoad2", 1)
		TNT1 A 0 A_JumpIfInventory("8BGrenadeload",0,2)
		TNT1 A 0 A_Playsound("8ball/fire",7)
		TNT1 A 0 A_Playsound("8ball/altfire",7)
		TNT1 A 0 A_JumpIfInventory("8BGrenadeload",0,4)
		TNT1 A 0 A_FireCustomMissile("8BRocket",0,0,-10,3)
		TNT1 A 0 A_FireCustomMissile("8BRocket",0,0,10,3)
		TNT1 A 0 A_Jump(256,3)
		TNT1 AA 0 A_FireCustomMissile("8BGrenade",random(-3,3),0,random(-5,5),random(-2,0),0,random(12,18))
		8BAL BCDEFGHIJKLMN 1
		TNT1 A 0 A_Playsound("8ball/load",6)
		8BLL ABCDEFGHIJKLMNOPQRSTUVWXYZ 1
		8BLZ Z 1
		Goto Ready
	Fire3:
		TNT1 A 0 A_TakeInventory("8BallLoad1", 1)
		TNT1 A 0 A_TakeInventory("8BallLoad2", 1)
		TNT1 A 0 A_TakeInventory("8BallLoad3", 1)
		TNT1 A 0 A_JumpIfInventory("8BGrenadeload",0,2)
		TNT1 A 0 A_Playsound("8ball/fire",7)
		TNT1 A 0 A_Playsound("8ball/altfire",7)
		TNT1 A 0 A_JumpIfInventory("8BGrenadeload",0,5)
		TNT1 A 0 A_FireCustomMissile("8BRocket",0,0,-14,3)
		TNT1 A 0 A_FireCustomMissile("8BRocket",0,0,0,3)
		TNT1 A 0 A_FireCustomMissile("8BRocket",0,0,14,3)
		TNT1 A 0 A_Jump(256,4)
		TNT1 AAA 0 A_FireCustomMissile("8BGrenade",random(-3,3),0,random(-5,5),random(-2,0),0,random(12,18))
		8BAL BCDEFGHIJKLMN 1
		TNT1 A 0 A_Playsound("8ball/load",6)
		8BLL ABCDEFGHIJKLMNOPQRSTUVWXYZ 1
		8BLZ Z 1
		Goto Ready
	Fire4:
		TNT1 A 0 A_TakeInventory("8BallLoad1", 1)
		TNT1 A 0 A_TakeInventory("8BallLoad2", 1)
		TNT1 A 0 A_TakeInventory("8BallLoad3", 1)
		TNT1 A 0 A_TakeInventory("8BallLoad4", 1)
		TNT1 A 0 A_JumpIfInventory("8BGrenadeload",0,2)
		TNT1 A 0 A_Playsound("8ball/fire",7)
		TNT1 A 0 A_Playsound("8ball/altfire",7)
		TNT1 A 0 A_JumpIfInventory("8BGrenadeload",0,6)
		TNT1 A 0 A_FireCustomMissile("8BRocket",0,0,-24,3)
		TNT1 A 0 A_FireCustomMissile("8BRocket",0,0,-10,3)
		TNT1 A 0 A_FireCustomMissile("8BRocket",0,0,10,3)
		TNT1 A 0 A_FireCustomMissile("8BRocket",0,0,24,3)
		TNT1 A 0 A_Jump(256,5)
		TNT1 AAAA 0 A_FireCustomMissile("8BGrenade",random(-3,3),0,random(-5,5),random(-2,0),0,random(12,18))
		8BAL BCDEFGHIJKLMN 1
		TNT1 A 0 A_Playsound("8ball/load",6)
		8BLL ABCDEFGHIJKLMNOPQRSTUVWXYZ 1
		8BLZ Z 1
		Goto Ready
	Fire5:
		TNT1 A 0 A_TakeInventory("8BallLoad1", 1)
		TNT1 A 0 A_TakeInventory("8BallLoad2", 1)
		TNT1 A 0 A_TakeInventory("8BallLoad3", 1)
		TNT1 A 0 A_TakeInventory("8BallLoad4", 1)
		TNT1 A 0 A_TakeInventory("8BallLoad5", 1)
		TNT1 A 0 A_JumpIfInventory("8BGrenadeload",0,2)
		TNT1 A 0 A_Playsound("8ball/fire",7)
		TNT1 A 0 A_Playsound("8ball/altfire",7)
		TNT1 A 0 A_JumpIfInventory("8BGrenadeload",0,8)
		TNT1 A 0 A_FireCustomMissile("8BRocket",0,0,-26,3)
		TNT1 A 0 A_FireCustomMissile("8BRocket",0,0,-14,3)
		TNT1 A 0 A_FireCustomMissile("8BRocket",0,0,0,3)
		TNT1 A 0 A_FireCustomMissile("8BRocket",0,0,14,3)
		TNT1 A 0 A_FireCustomMissile("8BRocket",0,0,26,3)
		TNT1 A 0 A_Jump(256,6)
		TNT1 AAAAA 0 A_FireCustomMissile("8BGrenade",random(-3,3),0,random(-5,5),random(-2,0),0,random(12,18))
		8BAL BCDEFGHIJKLMN 1
		TNT1 A 0 A_Playsound("8ball/load",6)
		8BLL ABCDEFGHIJKLMNOPQRSTUVWXYZ 1
		8BLZ Z 1
		Goto Ready
	Fire6:
		TNT1 A 0 A_TakeInventory("8BallLoad1", 1)
		TNT1 A 0 A_TakeInventory("8BallLoad2", 1)
		TNT1 A 0 A_TakeInventory("8BallLoad3", 1)
		TNT1 A 0 A_TakeInventory("8BallLoad4", 1)
		TNT1 A 0 A_TakeInventory("8BallLoad5", 1)
		TNT1 A 0 A_TakeInventory("8BallLoad6", 1)
		TNT1 A 0 A_JumpIfInventory("8BGrenadeload",0,2)
		TNT1 A 0 A_Playsound("8ball/fire",7)
		TNT1 A 0 A_Playsound("8ball/altfire",7)
		TNT1 A 0 A_JumpIfInventory("8BGrenadeload",0,9)
		TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("8Ball6")==1,"Fire7")
		TNT1 A 0 A_FireCustomMissile("8BRocket",0,0,-24,3)
		TNT1 A 0 A_FireCustomMissile("8BRocket",0,0,-12,3)
		TNT1 A 0 A_FireCustomMissile("8BRocket",0,0,0,10)
		TNT1 A 0 A_FireCustomMissile("8BRocket",0,0,0,-10)
		TNT1 A 0 A_FireCustomMissile("8BRocket",0,0,12,3)
		TNT1 A 0 A_FireCustomMissile("8BRocket",0,0,24,3)
		TNT1 A 0 A_Jump(256,7)
		TNT1 AAAAAA 0 A_FireCustomMissile("8BGrenade",random(-3,3),0,random(-5,5),random(-2,0),0,random(12,18))
		8BAL BCDEFGHIJKLMN 1
		TNT1 A 0 A_Playsound("8ball/load",6)
		8BLL ABCDEFGHIJKLMNOPQRSTUVWXYZ 1
		8BLZ Z 1
		Goto Ready
	Fire7:
		TNT1 A 0 A_FireCustomMissile("8BRocket",0,0,-10,-5)
		TNT1 A 0 A_FireCustomMissile("8BRocket",0,0,-10,5)
		TNT1 A 0 A_FireCustomMissile("8BRocket",0,0,0,10)
		TNT1 A 0 A_FireCustomMissile("8BRocket",0,0,0,-10)
		TNT1 A 0 A_FireCustomMissile("8BRocket",0,0,10,-5)
		TNT1 A 0 A_FireCustomMissile("8BRocket",0,0,10,5)
		8BAL BCDEFGHIJKLMN 1
		TNT1 A 0 A_Playsound("8ball/load",6)
		8BLL ABCDEFGHIJKLMNOPQRSTUVWXYZ 1
		8BLZ Z 1
		Goto Ready
	Spawn:
		8BAL P -1
		Stop
	}
}

ACTOR 8BRocket
{
	Radius 11
	Height 8
	Speed 20
	Damage 15
	scale 0.6
	Projectile
	+RANDOMIZE
	+DEHEXPLOSION
	+FORCEXYBILLBOARD
	Obituary "%o was smacked down multiple times by %k's Eightball."
	SeeSound "8ball/fire"
	DeathSound "weapons/explosion"
	decal scorch
	States
	{
	Spawn:
		TNT1 A 5
	Spawnloop:
		8BRO A 1 Bright A_SpawnItemEX("8BRandomSmokeTrail",-10)
		Loop
	Death:
		TNT1 A 0 A_Explode(85)
		TNT1 A 0 A_Jump(256,3,2,1)
		TNT1 AAA 8 A_SpawnItemEX("RandomExplosion",-2,random(-6,6),random(-6,6))
		Stop
	}
}

ACTOR 8BGrenade
{
	Radius 11
	Height 8
	Speed 15
	vspeed 1
	Damage 25
	Projectile
	reactiontime 75
	scale 0.6
	mass 1
	gravity 0.3
	Bouncefactor 1
	+RANDOMIZE
	+DEHEXPLOSION
	+FORCEXYBILLBOARD
	bouncetype "doom"
	-NOGRAVITY
	Obituary "%o was smacked down multiple times by %k's Eightball."
	BounceSound "8ball/bounce"
	DeathSound "weapons/explosion"
	decal scorch
	States
	{
	Spawn:
		TNT1 A 4
		TNT1 A 0 A_Jump(256,"Spawnloop","Spawnloop2")
	Spawnloop:
		8BGR A 1 A_SpawnItemEX("8BRandomSmokeTrail",-10)
		TNT1 A 0 A_Countdown
		Loop
	Spawnloop2:
		TNT1 A 0 A_Setscale(0.6,-0.6)
		8BGR A 1 A_SpawnItemEX("8BRandomSmokeTrail",-10)
		TNT1 A 0 A_Countdown
		Loop
	Death:
		TNT1 A 0 A_Explode(100)
		TNT1 A 0 A_Jump(256,3,2,1)
		TNT1 AAA 8 A_SpawnItemEX("RandomExplosion",-2,random(-6,6),random(-6,6))
		Stop
	}
}

Actor RandomExplosion
{
	+NOGRAVITY
	+LOWGRAVITY
	+NOINTERACTION
	+FORCEXYBILLBOARD
	+FLOORCLIP
	scale 1.3
	states
		{
			Spawn:
				TNT1 A 0 NoDelay A_Jump(256,"Spawn1","Spawn2","Spawn3","Spawn4","Spawn5")
				stop
			Spawn1:
				XPL1 ABCDEFGH 2 Bright
				XPL1 H 1 Bright A_Fadeout(0.1)
				wait
			Spawn2:
				XPL2 ABCDEFGH 2 Bright
				XPL2 H 1 Bright A_Fadeout(0.1)
				wait
			Spawn3:
				XPL3 ABCDEFGH 2 Bright
				XPL3 H 1 Bright A_Fadeout(0.1)
				wait
			Spawn4:
				XPL4 ABCDEFGH 2 Bright
				XPL4 H 1 Bright A_Fadeout(0.1)
				wait
			Spawn5:
				XPL5 ABCDEFGH 2 Bright
				XPL5 H 1 Bright A_Fadeout(0.1)
				wait
		
		}
}

ACTOR 8BRandomSmokeTrail
{
	VSpeed 0.1
	+NOBLOCKMAP
	+NOCLIP
	+NOGRAVITY
	+DONTSPLASH
	+NOTELEPORT
	+FORCEXYBILLBOARD
	scale 0.6
		States
		{
		Spawn:
			TNT1 A 0 NoDelay A_Jump(256,"Spawn1","Spawn2","Spawn3")
			stop
		Spawn1:
			TNT1 A 1
			SMK1 ABCDEFGHIJ 2 Bright
			SMK1 J 1 Bright A_Fadeout(0.1)
			wait
		Spawn2:
			TNT1 A 1
			SMK2 ABCDEFG 2 Bright
			SMK2 G 1 Bright A_Fadeout(0.1)
			wait
		Spawn3:
			TNT1 A 1
			SMK3 ABCDEFGHIJK 2 Bright
			SMk3 K 1 Bright A_Fadeout(0.1)
			wait
  }
}

Actor 8BallLoad0 : Inventory
{inventory.maxamount 1}

Actor 8BallLoad1 : Inventory
{inventory.maxamount 1}

Actor 8BallLoad2 : Inventory
{inventory.maxamount 1}

Actor 8BallLoad3 : Inventory
{inventory.maxamount 1}

Actor 8BallLoad4 : Inventory
{inventory.maxamount 1}

Actor 8BallLoad5 : Inventory
{inventory.maxamount 1}

Actor 8BallLoad6 : Inventory
{inventory.maxamount 1}

Actor 8BGrenadeload : Inventory
{inventory.maxamount 1}