From 9190ff9a3c18d4469455323ea5ffbaedcacb347b Mon Sep 17 00:00:00 2001
From: Samual <samual@xonotic.org>
Date: Wed, 12 Jan 2011 21:33:22 -0500
Subject: [PATCH] Simple edit to add an animtime cvar for the uzi burst
 secondary, this is so that you can have a high refire2 rate whilst still
 having a relatively low animtime for switching away from the weapon.

---
 balance25.cfg             | 1 +
 balanceLeeStricklin.cfg   | 1 +
 balanceSamual.cfg         | 1 +
 balanceXonotic.cfg        | 1 +
 balancetZork.cfg          | 1 +
 qcsrc/server/autocvars.qh | 1 +
 qcsrc/server/w_uzi.qc     | 5 ++++-
 7 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/balance25.cfg b/balance25.cfg
index f50eb7e290..7dddf11f99 100644
--- a/balance25.cfg
+++ b/balance25.cfg
@@ -269,6 +269,7 @@ set g_balance_uzi_spread_max 0.6
 set g_balance_uzi_spread_add 0.012
 
 set g_balance_uzi_burst 0				// # of bullets in a burst (if set to 2 or more)
+set g_balance_uzi_burst_animtime 0.75
 set g_balance_uzi_burst_refire 0.05		// refire between burst bullets
 set g_balance_uzi_burst_refire2 0.75	// refire after burst
 set g_balance_uzi_burst_spread 0.04
diff --git a/balanceLeeStricklin.cfg b/balanceLeeStricklin.cfg
index dd1a2022ad..01965cdf2f 100644
--- a/balanceLeeStricklin.cfg
+++ b/balanceLeeStricklin.cfg
@@ -269,6 +269,7 @@ set g_balance_uzi_spread_max 0.6
 set g_balance_uzi_spread_add 0.012
 
 set g_balance_uzi_burst 0				// # of bullets in a burst (if set to 2 or more)
+set g_balance_uzi_burst_animtime 0.75
 set g_balance_uzi_burst_refire 0.05		// refire between burst bullets
 set g_balance_uzi_burst_refire2 0.75	// refire after burst
 set g_balance_uzi_burst_spread 0.04
diff --git a/balanceSamual.cfg b/balanceSamual.cfg
index bfe331b151..a3978f5920 100644
--- a/balanceSamual.cfg
+++ b/balanceSamual.cfg
@@ -269,6 +269,7 @@ set g_balance_uzi_spread_max 0.6
 set g_balance_uzi_spread_add 0.012
 
 set g_balance_uzi_burst 0				// # of bullets in a burst (if set to 2 or more)
+set g_balance_uzi_burst_animtime 0.75
 set g_balance_uzi_burst_refire 0.05		// refire between burst bullets
 set g_balance_uzi_burst_refire2 0.75	// refire after burst
 set g_balance_uzi_burst_spread 0.04
diff --git a/balanceXonotic.cfg b/balanceXonotic.cfg
index b66ef86bd6..3cf4aa1f6b 100644
--- a/balanceXonotic.cfg
+++ b/balanceXonotic.cfg
@@ -269,6 +269,7 @@ set g_balance_uzi_spread_max 0.6
 set g_balance_uzi_spread_add 0.008
 
 set g_balance_uzi_burst 3				// # of bullets in a burst (if set to 2 or more)
+set g_balance_uzi_burst_animtime 0.45
 set g_balance_uzi_burst_refire 0.05		// refire between burst bullets
 set g_balance_uzi_burst_refire2 0.45 	// refire after burst
 set g_balance_uzi_burst_spread 0.05
diff --git a/balancetZork.cfg b/balancetZork.cfg
index e7f5431d04..f4ae1c0074 100644
--- a/balancetZork.cfg
+++ b/balancetZork.cfg
@@ -269,6 +269,7 @@ set g_balance_uzi_spread_max 0.6
 set g_balance_uzi_spread_add 0.008
 
 set g_balance_uzi_burst 3				// # of bullets in a burst (if set to 2 or more)
+set g_balance_uzi_burst_animtime 0.4
 set g_balance_uzi_burst_refire 0.05		// refire between burst bullets
 set g_balance_uzi_burst_refire2 0.4	// refire after burst
 set g_balance_uzi_burst_spread 0.03
diff --git a/qcsrc/server/autocvars.qh b/qcsrc/server/autocvars.qh
index 427a60c5ec..5051e44273 100644
--- a/qcsrc/server/autocvars.qh
+++ b/qcsrc/server/autocvars.qh
@@ -621,6 +621,7 @@ float autocvar_g_balance_tuba_refire;
 float autocvar_g_balance_uzi_bulletconstant;
 float autocvar_g_balance_uzi_burst;
 float autocvar_g_balance_uzi_burst_ammo;
+float autocvar_g_balance_uzi_burst_animtime;
 float autocvar_g_balance_uzi_burst_refire;
 float autocvar_g_balance_uzi_burst_refire2;
 float autocvar_g_balance_uzi_burst_spread;
diff --git a/qcsrc/server/w_uzi.qc b/qcsrc/server/w_uzi.qc
index 50f59ff01e..f3dc51ce83 100644
--- a/qcsrc/server/w_uzi.qc
+++ b/qcsrc/server/w_uzi.qc
@@ -168,7 +168,10 @@ void uzi_mode1_fire_burst()
 
 	self.misc_bulletcounter = self.misc_bulletcounter + 1;
 	if (self.misc_bulletcounter == 0)
-		weapon_thinkf(WFRAME_FIRE2, autocvar_g_balance_uzi_burst_refire2, w_ready);
+	{
+		ATTACK_FINISHED(self) = time + autocvar_g_balance_uzi_burst_refire2 * W_WeaponRateFactor();
+		weapon_thinkf(WFRAME_FIRE2, autocvar_g_balance_uzi_burst_animtime, w_ready);
+	}
 	else
 	{
 		weapon_thinkf(WFRAME_FIRE2, autocvar_g_balance_uzi_burst_refire, uzi_mode1_fire_burst);
-- 
2.39.5