class SquareWeapon : Weapon
{
	Default
	{
		Weapon.BobStyle 'Inverse';
		Weapon.BobSpeed 1.2;
		+FORCEXYBILLBOARD;
		+WEAPON.ALT_AMMO_OPTIONAL;
		+WEAPON.NOALERT;
	}
	States
	{
	Spawn:
	Ready:
	Select:
	Deselect:
	Fire:
		NOPE A 0; // Nonexistent sprite; prevents weapon from being selectable.
		Stop;
	AltFire:
		#### # 0 A_JumpIfInventory("NumberofGoonades", 1, "DoAltFire");
		#### # 1 A_WeaponReady(WRF_NOSECONDARY);
		#### # 0 A_Jump(256, "Ready");
		Goto Ready;
	DoAltFire:
		#### # 1 Offset(0,35);
		#### # 1 Offset(1,38);
		#### # 1 Offset(2,44);
		#### # 1 Offset(3,52);
		#### # 1 Offset(4,62);
		#### # 1 Offset(5,72);
		#### # 1 Offset(6,82);
		#### # 1 Offset(7,92);
		#### # 1 Offset(8,102);
		Goto AltHold;
	AltHold:
		TNT1 A 6 A_GiveInventory("GoonadeThrowCheck", 1);
		TNT1 A 0 A_ReFire();
		TNT1 A 0 A_PlaySound("weapons/goonthrow");
		GOON C 1 Offset(0,32);
		GOON C 1 Offset(40,56);
		GOON C 1 Offset(80,80);
	ThrowNade:
		TNT1 A 0 A_JumpIfInventory("GoonadeThrowCheck", 5, "ThrowNade5");
		TNT1 A 0 A_JumpIfInventory("GoonadeThrowCheck", 4, "ThrowNade4");
		TNT1 A 0 A_JumpIfInventory("GoonadeThrowCheck", 3, "ThrowNade3");
		TNT1 A 0 A_JumpIfInventory("GoonadeThrowCheck", 2, "ThrowNade2");
		TNT1 A 0 A_Jump(256, "ThrowNade1");
	ThrowNade1:
		GOON C 0 A_FireProjectile("GoonadeSpeed1", 0, 0, -4, 0, FPF_NOAUTOAIM);
		Goto AltHold2;
	ThrowNade2:
		GOON C 0 A_FireProjectile("GoonadeSpeed2", 0, 0, -4, 0, FPF_NOAUTOAIM);
		Goto AltHold2;
	ThrowNade3:
		GOON C 0 A_FireProjectile("GoonadeSpeed3", 0, 0, -4, 0, FPF_NOAUTOAIM);
		Goto AltHold2;
	ThrowNade4:
		GOON C 0 A_FireProjectile("GoonadeSpeed4", 0, 0, -4, 0, FPF_NOAUTOAIM);
		Goto AltHold2;
	ThrowNade5:
		GOON C 0 A_FireProjectile("GoonadeSpeed5", 0, 0, -4, 0, FPF_NOAUTOAIM);
		Goto AltHold2;
	AltHold2:
		GOON C 0 A_TakeInventory("GoonadeThrowCheck", 5);
		GOON C 0 A_TakeInventory("NumberofGoonades", 1);
		GOON C 1 Offset(120,104);
		GOON C 1 Offset(160,128);
		GOON C 1 Offset(200,152);
		GOON C 1 Offset(240,176);
		GOON C 0 A_Jump(256, "ResetSprite");
	ResetSprite:
	Reraise:
		#### # 1 Offset(8,120);
		#### # 1 Offset(8,102);
		#### # 1 Offset(7,92);
		#### # 1 Offset(6,82);
		#### # 1 Offset(5,72);
		#### # 1 Offset(4,62);
		#### # 1 Offset(3,52);
		#### # 1 Offset(2,44);
		#### # 1 Offset(1,38);
		#### # 1 Offset(0,35);
		#### # 0 A_Jump(256, "Ready");
		Goto Ready;
	Flash:
		TNT1 A 0 A_AlertMonsters;
		Stop;
	}

	override void PostBeginPlay()
	{
		super.PostBeginPlay();
		self.bDropped = false;
	}
}

class SquareDummyWeapon : Weapon
{
	Default
	{
		+Inventory.UNTOSSABLE;
		+WEAPON.CHEATNOTWEAPON;
		Tag " ";
	}
}
