From dc11e4d06f1210762d2ec2309d43f380f1a5587b Mon Sep 17 00:00:00 2001 From: FruitieX Date: Sun, 18 Jul 2010 22:55:35 +0300 Subject: [PATCH] "refire" for tweaking how often damage is dealt --- balanceFruit.cfg | 4 ++-- qcsrc/server/w_electro.qc | 12 +++++++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/balanceFruit.cfg b/balanceFruit.cfg index 3d5931bae..d3db7152a 100644 --- a/balanceFruit.cfg +++ b/balanceFruit.cfg @@ -312,8 +312,8 @@ set g_balance_electro_primary_comboradius 50 set g_balance_electro_primary_speed 0 set g_balance_electro_primary_spread 0 set g_balance_electro_primary_lifetime 0 -set g_balance_electro_primary_refire 0 -set g_balance_electro_primary_animtime 0.05 +set g_balance_electro_primary_refire 0.03333333 +set g_balance_electro_primary_animtime 0.03333333 set g_balance_electro_primary_ammo 1 set g_balance_electro_primary_range 800 set g_balance_electro_primary_velocityfactor 0.75 diff --git a/qcsrc/server/w_electro.qc b/qcsrc/server/w_electro.qc index 9e3e5b25b..a0c758280 100644 --- a/qcsrc/server/w_electro.qc +++ b/qcsrc/server/w_electro.qc @@ -185,6 +185,7 @@ void W_Electro_Attack2() } .entity lgbeam, exteriorlgbeam; +.float nextdamagethink; void lgbeam_think() { if (self.owner.weaponentity.state != WS_INUSE || (self.owner.ammo_cells <= 0 && !(self.owner.items & IT_UNLIMITED_WEAPON_AMMO)) || self != self.owner.lgbeam || self.owner.BUTTON_ATCK == 0) @@ -222,9 +223,6 @@ void exteriorlgbeam_think() sound (self, CHAN_PROJECTILE, "turrets/phaser.wav", VOL_BASE, ATTN_NORM); } - if not(self.items & IT_UNLIMITED_WEAPON_AMMO) - self.ammo_cells = max(0, self.ammo_cells - cvar("g_balance_electro_primary_ammo") * frametime); - self.nextthink = time; makevectors(self.owner.v_angle); @@ -234,12 +232,16 @@ void exteriorlgbeam_think() traceline_antilag(self.owner, self.owner.origin + self.owner.view_ofs, self.owner.origin + self.owner.view_ofs + angle * cvar("g_balance_electro_primary_range"), FALSE, self.owner, ANTILAG_LATENCY(self.owner)); // apply the damage - if(trace_fraction < 1) + if(trace_fraction < 1 && self.nextdamagethink <= time) { + if not(self.items & IT_UNLIMITED_WEAPON_AMMO) + self.ammo_cells = max(0, self.ammo_cells - cvar("g_balance_electro_primary_ammo") * cvar("g_balance_electro_primary_refire")); + vector force; force = angle * cvar("g_balance_electro_primary_force") + trace_ent.velocity * cvar("g_balance_electro_primary_velocityfactor") + '0 0 1' * cvar("g_balance_electro_primary_force_up"); - Damage (trace_ent, self.owner, self.owner, cvar("g_balance_electro_primary_damage") * frametime, WEP_ELECTRO, trace_endpos, force * frametime); + Damage (trace_ent, self.owner, self.owner, cvar("g_balance_electro_primary_damage") * cvar("g_balance_electro_primary_refire"), WEP_ELECTRO, trace_endpos, force * cvar("g_balance_electro_primary_refire")); W_Plasma_TriggerCombo(trace_endpos, cvar("g_balance_electro_primary_comboradius"), self.owner); + self.nextdamagethink = time + cvar("g_balance_electro_primary_refire"); } self.angles = '0 0 0'; -- 2.39.2