class SauceBreath : Ammo
{
	Default
	{
		Inventory.MaxAmount 100;
	}
}

class SauceWeapon : Weapon
{
	Default
	{
		//Weapon.SelectionOrder 9999
		Weapon.AmmoType "SauceBreath";
		Weapon.AmmoGive 100;
		Weapon.AmmoUse 1;
		+WEAPON.CHEATNOTWEAPON;
		Tag " ";
	}
	States
	{
	Spawn:
		TNT1 A -1;
		Stop;
	Select:
		SAUW A 0;
		SAUW AA 0 A_Raise();
		SAUW A 1 Bright A_Raise();
		Loop;
	Deselect:
		SAUW A 0;
		SAUW A 0 A_StopSound(CHAN_5);
		SAUW A 0 A_Lower();
		SAUW A 1 Bright A_Lower();
		Loop;
	Ready:
		SAUW A 0 A_PlaySound("ambience/fire", CHAN_5, 1.0, 1);
	ReadyLoop:
		SAUW A 0 A_SetBlend("ff 00 00", 0.5, 25);
		SAUW A 0 A_CheckReload();
		SAUW A 0 A_PlaySound("player/square/hotsaucepain", CHAN_6);
		SAUW AAA 1 Bright A_Recoil(-1.5);
		TNT1 A 0 A_FireProjectile("SauceBall", random(-30,30), 1, 0, 2, random(-10,10));
		SAUW A 0 A_CheckReload();
		SAUW BBB 1 Bright A_Recoil(-1.5);
		TNT1 A 0 A_FireProjectile("SauceBall", random(-30,30), 1, 0, 2, random(-10,10));
		SAUW A 0 A_CheckReload();
		SAUW CCC 1 Bright A_Recoil(-1.5);
		TNT1 A 0 A_FireProjectile("SauceBall", random(-30,30), 1, 0, 2, random(-10,10));
		SAUW A 0 A_CheckReload();
		SAUW DDD 1 Bright A_Recoil(-1.5);
		TNT1 A 0 A_FireProjectile("SauceBall", random(-30,30), 1, 0, 2, random(-10,10));
		TNT1 A 0;
		Goto ReadyLoop;
	Fire:
		SAUW A 1;
		Goto Ready;
	}
}

class SauceBall : MaceFX4 // Insta-death
{
	Default
	{
		Gravity 0.75;
		Speed 40;
		Damage 10;
		DamageType 'Fire';
		+DONTBLAST;
		+FORCEXYBILLBOARD;

		RenderStyle 'Add';

		Radius 8;
		Height 16;

		-TELESTOMP;
		-THRUGHOST;
		+NOTELEPORT;

		BounceType "None";
		DeathSound "weapons/saucebreath/explode";

		Obituary "$OB_HOTSAUCE";
	}
	States
	{
	Spawn:
		SAUB A 2 Bright;
		SAUB A 0 A_JumpIf(waterlevel>=2, 1);
		Loop;
		SAUB A 0 A_FadeOut(0.1);
		Loop;
	Death:
		TNT1 A 0 A_JumpIf(waterlevel>=2, "WaterDeath");
		TNT1 A 0 A_NoGravity();
		TNT1 A 0 A_Stop();
		SAUB BCDEF 2 Bright;
		Stop;
	WaterDeath:
		SAUB A 2 A_FadeOut(0.1);
		Wait;
	}
}
