From 8ec5d09966b8304eff74b9948fb98bea12721a7c Mon Sep 17 00:00:00 2001
From: Rudolf Polzer <divverent@xonotic.org>
Date: Mon, 5 Sep 2011 20:21:00 +0200
Subject: [PATCH] make some guns able to be "excessive"

---
 qcsrc/server/w_fireball.qc | 2 +-
 qcsrc/server/w_hagar.qc    | 6 +++---
 qcsrc/server/w_hook.qc     | 2 +-
 qcsrc/server/w_seeker.qc   | 2 +-
 qcsrc/server/w_shotgun.qc  | 4 ++--
 qcsrc/server/w_tuba.qc     | 2 +-
 6 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/qcsrc/server/w_fireball.qc b/qcsrc/server/w_fireball.qc
index bbb74204c..d916edd9f 100644
--- a/qcsrc/server/w_fireball.qc
+++ b/qcsrc/server/w_fireball.qc
@@ -334,7 +334,7 @@ float w_fireball(float req)
 			if (weapon_prepareattack(0, autocvar_g_balance_fireball_primary_refire))
 			{
 				W_Fireball_Attack1_Frame0();
-				self.fireball_primarytime = time + autocvar_g_balance_fireball_primary_refire2;
+				self.fireball_primarytime = time + autocvar_g_balance_fireball_primary_refire2 * W_WeaponRateFactor();
 			}
 		}
 		else if (self.BUTTON_ATCK2)
diff --git a/qcsrc/server/w_hagar.qc b/qcsrc/server/w_hagar.qc
index 0be80db12..26d2df69e 100644
--- a/qcsrc/server/w_hagar.qc
+++ b/qcsrc/server/w_hagar.qc
@@ -177,7 +177,7 @@ void W_Hagar_Attack2_Load_Release (void)
 	}
 
 	weapon_thinkf(WFRAME_FIRE2, autocvar_g_balance_hagar_secondary_refire, w_ready);
-	self.hagar_loadstep = time + autocvar_g_balance_hagar_secondary_refire;
+	self.hagar_loadstep = time + autocvar_g_balance_hagar_secondary_refire * W_WeaponRateFactor();
 	self.hagar_load = 0;
 }
 
@@ -207,7 +207,7 @@ void W_Hagar_Attack2_Load (void)
 				sound(self, CH_WEAPON_A, "weapons/hagar_beep.wav", VOL_BASE, ATTN_NORM);
 
 				// pause until we can load rockets again, once we re-press the alt fire button
-				self.hagar_loadstep = time + autocvar_g_balance_hagar_secondary_load_speed;
+				self.hagar_loadstep = time + autocvar_g_balance_hagar_secondary_load_speed * W_WeaponRateFactor();
 
 				// require letting go of the alt fire button before we can load again
 				self.hagar_loadblock = TRUE;
@@ -225,7 +225,7 @@ void W_Hagar_Attack2_Load (void)
 					self.hagar_load += 1;
 					sound(self, CH_WEAPON_B, "weapons/hagar_load.wav", VOL_BASE, ATTN_NORM);
 
-					self.hagar_loadstep = time + autocvar_g_balance_hagar_secondary_load_speed;
+					self.hagar_loadstep = time + autocvar_g_balance_hagar_secondary_load_speed * W_WeaponRateFactor();
 				}
 			}
 			else if(!self.hagar_loadbeep && self.hagar_load) // prevents the beep from playing each frame
diff --git a/qcsrc/server/w_hook.qc b/qcsrc/server/w_hook.qc
index 32892d555..754ffff90 100644
--- a/qcsrc/server/w_hook.qc
+++ b/qcsrc/server/w_hook.qc
@@ -143,7 +143,7 @@ float w_hook(float req)
 		if(self.hook)
 		{
 			// if hooked, no bombs, and increase the timer
-			self.hook_refire = max(self.hook_refire, time + autocvar_g_balance_hook_primary_refire);
+			self.hook_refire = max(self.hook_refire, time + autocvar_g_balance_hook_primary_refire * W_WeaponRateFactor());
 
 			// hook also inhibits health regeneration, but only for 1 second
 			if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
diff --git a/qcsrc/server/w_seeker.qc b/qcsrc/server/w_seeker.qc
index 11423cdf9..7071ed706 100644
--- a/qcsrc/server/w_seeker.qc
+++ b/qcsrc/server/w_seeker.qc
@@ -334,7 +334,7 @@ void Seeker_Vollycontroller_Think() // TODO: Merge this with Seeker_Attack
 		return;
 	}
 
-	self.nextthink = time + autocvar_g_balance_seeker_missile_delay;
+	self.nextthink = time + autocvar_g_balance_seeker_missile_delay * W_WeaponRateFactor();
 	
 	oldself = self;
 	self = self.realowner;
diff --git a/qcsrc/server/w_shotgun.qc b/qcsrc/server/w_shotgun.qc
index 9d80ff4a7..2088073f9 100644
--- a/qcsrc/server/w_shotgun.qc
+++ b/qcsrc/server/w_shotgun.qc
@@ -98,7 +98,7 @@ void W_Shotgun_Attack2 (void)
 	meleetemp = spawn();
 	meleetemp.owner = meleetemp.realowner = self;
 	meleetemp.think = shotgun_meleethink;
-	meleetemp.nextthink = time + autocvar_g_balance_shotgun_secondary_melee_delay;
+	meleetemp.nextthink = time + autocvar_g_balance_shotgun_secondary_melee_delay * W_WeaponRateFactor();
 	W_SetupShot_Range(self, TRUE, 0, "", 0, autocvar_g_balance_shotgun_secondary_damage, autocvar_g_balance_shotgun_secondary_melee_range);
 }
 
@@ -137,7 +137,7 @@ float w_shotgun(float req)
 					if(weapon_prepareattack(0, autocvar_g_balance_shotgun_primary_animtime))
 					{
 						W_Shotgun_Attack();
-						self.shotgun_primarytime = time + autocvar_g_balance_shotgun_primary_refire;
+						self.shotgun_primarytime = time + autocvar_g_balance_shotgun_primary_refire * W_WeaponRateFactor();
 						weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_shotgun_primary_animtime, w_ready);
 					}
 				}
diff --git a/qcsrc/server/w_tuba.qc b/qcsrc/server/w_tuba.qc
index 117d32cb9..7a4a9c600 100644
--- a/qcsrc/server/w_tuba.qc
+++ b/qcsrc/server/w_tuba.qc
@@ -157,7 +157,7 @@ void W_Tuba_Attack(float hittype)
 		Net_LinkEntity(self.tuba_note, FALSE, 0, W_Tuba_NoteSendEntity);
 	}
 
-	self.tuba_note.teleport_time = time + autocvar_g_balance_tuba_refire * 2; // so it can get prolonged safely
+	self.tuba_note.teleport_time = time + autocvar_g_balance_tuba_refire * 2 * W_WeaponRateFactor(); // so it can get prolonged safely
 
 	//sound(self, c, TUBA_NOTE(n), bound(0, VOL_BASE * cvar("g_balance_tuba_volume"), 1), autocvar_g_balance_tuba_attenuation);
 	RadiusDamage(self, self, autocvar_g_balance_tuba_damage, autocvar_g_balance_tuba_edgedamage, autocvar_g_balance_tuba_radius, world, autocvar_g_balance_tuba_force, hittype | WEP_TUBA, world);
-- 
2.39.5