class Oozi : SquareWeapon
{
	Default
	{
		Weapon.SelectionOrder 460;
		Inventory.PickupMessage "$GOTOOZI";
		Inventory.PickupSound "misc/w_pkup";
		Tag "$TAG_OOZI";
		Weapon.Kickback 500;
		Weapon.AmmoGive 40;
		Weapon.AmmoUse 1;
		Weapon.AmmoType "OoziAmmo";
		Obituary "$OB_OOZI";
		AttackSound "weapons/oozi";
	}
	States
	{
	Spawn:
		OOZP A -1;
		Stop;
	Ready:
		OOZI A 1 A_WeaponReady();
		Loop;
	Deselect:
		OOZI A 1 A_Lower();
		OOZI A 0 A_Lower();
		Loop;
	Select:
		OOZI A 1 A_Raise();
		OOZI A 0 A_Raise();
		Loop;
	ResetSprite:
		OOZI A 0;
		Goto Reraise;
	Fire:
	Hold:
		OOZI A 1 A_AlertMonsters();
		OOZI C 1 Bright A_GunFlash();
		OOZI D 1 Bright A_FireBullets(11,6,-1,6,"PaintPuff3",FBF_USEAMMO);
		OOZI A 1 A_AlertMonsters();
		OOZI C 1 Bright A_GunFlash();
		OOZI D 1 Bright A_FireBullets(11,6,-1,6,"PaintPuff3",0);
		OOZI B 20 A_ReFire();
		Goto Ready;
	}
}

class Oozis : Oozi
{
	Default
	{
		Inventory.PickupMessage "$GOTOOZI";
		Tag "$TAG_OOZIS";
		Weapon.SelectionOrder 450;
		AttackSound "weapons/oozis";
		Obituary "$OB_OOZIS";
	}
	States
	{
	Spawn:
		OOZP B -1;
		Stop;
	Ready:
		OOZ2 A 1 A_WeaponReady();
		Loop;
	Deselect:
		OOZ2 A 1 A_Lower();
		OOZ2 A 0 A_Lower();
		Loop;
	Select:
		OOZ2 A 1 A_Raise();
		OOZ2 A 0 A_Raise();
		Loop;
	ResetSprite:
		OOZ2 A 0;
		Goto Reraise;
	Fire:
	Hold:
		OOZ2 A 1 A_AlertMonsters();
		OOZ2 C 1 Bright A_GunFlash();
		OOZ2 D 1 Bright A_FireBullets(15, 6.5, 2, 6, "PaintPuff3", FBF_USEAMMO);
		OOZ2 A 1 A_AlertMonsters();
		OOZ2 C 1 Bright A_GunFlash();
		OOZ2 D 1 Bright A_FireBullets(15, 6.5, 2, 6, "PaintPuff3", FBF_USEAMMO);
		OOZ2 B 20 A_ReFire();
		Goto Ready;
	Flash:
		TNT1 A 1;
		TNT1 A 2 Bright A_Light1();
		TNT1 A 0 Bright A_Light0();
		Stop;
	}
}
