From: FruitieX Date: Wed, 13 Oct 2010 10:05:37 +0000 (+0300) Subject: nex secondary now charges the "speed circle" :) X-Git-Tag: xonotic-v0.1.0preview~307^2~13 X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=commitdiff_plain;h=3a4f3e582789ab474da656d6faa422ffa213099e nex secondary now charges the "speed circle" :) --- diff --git a/balance25.cfg b/balance25.cfg index 56e3f878b2..b4b9494f09 100644 --- a/balance25.cfg +++ b/balance25.cfg @@ -437,7 +437,7 @@ set g_balance_nex_secondary_damagefalloff_forcehalflife 0 set g_balance_nex_velocitydependent_halflife 0 set g_balance_nex_velocitydependent_minspeed 400 set g_balance_nex_velocitydependent_maxspeed 1000 -set g_balance_nex_velocitydependent_falloff_factor 0.001 +set g_balance_nex_velocitydependent_falloff_rate 0.001 // }}} // {{{ minstanex set g_balance_minstanex_refire 1 diff --git a/balanceLeeStricklin.cfg b/balanceLeeStricklin.cfg index 88e0f87087..ef0994dfc4 100644 --- a/balanceLeeStricklin.cfg +++ b/balanceLeeStricklin.cfg @@ -448,7 +448,7 @@ set g_balance_nex_secondary_damagefalloff_forcehalflife 9999999 set g_balance_nex_velocitydependent_halflife 0 set g_balance_nex_velocitydependent_minspeed 400 set g_balance_nex_velocitydependent_maxspeed 1000 -set g_balance_nex_velocitydependent_falloff_factor 0.001 +set g_balance_nex_velocitydependent_falloff_rate 0.001 // }}} // {{{ minstanex set g_balance_minstanex_refire 1 diff --git a/balanceNexSVN.cfg b/balanceNexSVN.cfg index 9cfc751dc7..9b3a2e720f 100644 --- a/balanceNexSVN.cfg +++ b/balanceNexSVN.cfg @@ -436,7 +436,7 @@ set g_balance_nex_secondary_damagefalloff_forcehalflife 1500 set g_balance_nex_velocitydependent_halflife 0 set g_balance_nex_velocitydependent_minspeed 400 set g_balance_nex_velocitydependent_maxspeed 1000 -set g_balance_nex_velocitydependent_falloff_factor 0.001 +set g_balance_nex_velocitydependent_falloff_rate 0.001 // }}} // {{{ minstanex set g_balance_minstanex_refire 1 diff --git a/balanceSamual.cfg b/balanceSamual.cfg index d43d82c28d..0561151bbf 100644 --- a/balanceSamual.cfg +++ b/balanceSamual.cfg @@ -437,7 +437,7 @@ set g_balance_nex_secondary_damagefalloff_forcehalflife 1500 set g_balance_nex_velocitydependent_halflife 0 set g_balance_nex_velocitydependent_minspeed 400 set g_balance_nex_velocitydependent_maxspeed 1000 -set g_balance_nex_velocitydependent_falloff_factor 0.001 +set g_balance_nex_velocitydependent_falloff_rate 0.001 // }}} // {{{ minstanex set g_balance_minstanex_refire 1 diff --git a/balanceXonotic.cfg b/balanceXonotic.cfg index 0dfe80d550..02a748d434 100644 --- a/balanceXonotic.cfg +++ b/balanceXonotic.cfg @@ -424,6 +424,9 @@ set g_balance_nex_primary_damagefalloff_halflife 2000 set g_balance_nex_primary_damagefalloff_forcehalflife 2000 set g_balance_nex_secondary 1 +set g_balance_nex_secondary_charge 1 +set g_balance_nex_secondary_charge_rate 20 +set g_balance_nex_secondary_charge_ammo 20 set g_balance_nex_secondary_damage 125 set g_balance_nex_secondary_force -700 set g_balance_nex_secondary_refire 1 @@ -437,7 +440,7 @@ set g_balance_nex_secondary_damagefalloff_forcehalflife 4000 set g_balance_nex_velocitydependent_halflife -500 set g_balance_nex_velocitydependent_minspeed 400 set g_balance_nex_velocitydependent_maxspeed 1000 -set g_balance_nex_velocitydependent_falloff_factor 0.001 +set g_balance_nex_velocitydependent_falloff_rate 20 // }}} // {{{ minstanex set g_balance_minstanex_refire 1.25 diff --git a/qcsrc/client/Defs.qc b/qcsrc/client/Defs.qc index 6798261eb3..a34e558c75 100644 --- a/qcsrc/client/Defs.qc +++ b/qcsrc/client/Defs.qc @@ -263,7 +263,9 @@ float nex_scope; float nex_minvelocity; float nex_maxvelocity; -float nex_speed_falloff_factor; +float nex_speed_falloff_rate; float nex_speed; +float nex_charge; +float nex_charge_rate; float cr_maxbullets; diff --git a/qcsrc/client/Main.qc b/qcsrc/client/Main.qc index 28db128b06..c9b344dac3 100644 --- a/qcsrc/client/Main.qc +++ b/qcsrc/client/Main.qc @@ -1354,7 +1354,9 @@ float CSQC_Parse_TempEntity() case TE_CSQC_NEX_VELOCITY: nex_minvelocity = ReadShort(); nex_maxvelocity = ReadShort(); - nex_speed_falloff_factor = ReadShort()/10000; + nex_speed_falloff_rate = ReadByte(); + nex_charge = ReadByte(); + nex_charge_rate = ReadByte(); bHandled = true; break; case TE_CSQC_CR_MAXBULLETS: diff --git a/qcsrc/client/View.qc b/qcsrc/client/View.qc index 5ee028d46b..c6d86520d4 100644 --- a/qcsrc/client/View.qc +++ b/qcsrc/client/View.qc @@ -836,7 +836,10 @@ void CSQC_UpdateView(float w, float h) if(xyspeed > nex_speed) nex_speed = min(xyspeed, nex_maxvelocity); else - nex_speed = (1 - nex_speed_falloff_factor) * nex_speed; + nex_speed = max(nex_minvelocity, nex_speed - nex_speed_falloff_rate * frametime); + + if (activeweapon == WEP_NEX && button_attack2 && nex_charge) + nex_speed = min(nex_maxvelocity, nex_speed + nex_charge_rate * frametime); // ring around crosshair representing bullets left in camping rifle clip if (activeweapon == WEP_CAMPINGRIFLE && cr_maxbullets) diff --git a/qcsrc/server/cl_client.qc b/qcsrc/server/cl_client.qc index 5c980920b7..b87dc27e5d 100644 --- a/qcsrc/server/cl_client.qc +++ b/qcsrc/server/cl_client.qc @@ -12,7 +12,9 @@ void send_CSQC_nexvelocity(entity e) { WriteByte(MSG_ONE, TE_CSQC_NEX_VELOCITY); WriteShort(MSG_ONE, cvar("g_balance_nex_velocitydependent_minspeed")); WriteShort(MSG_ONE, cvar("g_balance_nex_velocitydependent_maxspeed")); - WriteShort(MSG_ONE, cvar("g_balance_nex_velocitydependent_falloff_factor") * 10000); + WriteByte(MSG_ONE, cvar("g_balance_nex_velocitydependent_falloff_rate")); + WriteByte(MSG_ONE, cvar("g_balance_nex_secondary_charge")); + WriteByte(MSG_ONE, cvar("g_balance_nex_secondary_charge_rate")); } void send_CSQC_cr_maxbullets(entity e) { diff --git a/qcsrc/server/cl_physics.qc b/qcsrc/server/cl_physics.qc index c9531bbc63..d9394deaf2 100644 --- a/qcsrc/server/cl_physics.qc +++ b/qcsrc/server/cl_physics.qc @@ -1328,12 +1328,12 @@ void SV_PlayerPhysics() float f; float xyspeed; - f = cvar("g_balance_nex_velocitydependent_falloff_factor"); + f = cvar("g_balance_nex_velocitydependent_falloff_rate"); xyspeed = vlen('1 0 0' * self.velocity_x + '0 1 0' * self.velocity_y); if(xyspeed > self.nexspeed) self.nexspeed = min(xyspeed, cvar("g_balance_nex_velocitydependent_maxspeed")); else - self.nexspeed = (1 - f) * self.nexspeed; + self.nexspeed = max(cvar("g_balance_nex_velocitydependent_minspeed"), self.nexspeed - f * frametime); :end if(self.flags & FL_ONGROUND) self.lastground = time; diff --git a/qcsrc/server/w_nex.qc b/qcsrc/server/w_nex.qc index 87d0c88ab5..1da490842d 100644 --- a/qcsrc/server/w_nex.qc +++ b/qcsrc/server/w_nex.qc @@ -79,6 +79,7 @@ float w_nex(float req) } else if (req == WR_THINK) { + print(ftos(self.nexspeed), "\n"); if (self.BUTTON_ATCK) { if (weapon_prepareattack(0, cvar("g_balance_nex_primary_refire"))) @@ -89,7 +90,12 @@ float w_nex(float req) } if (self.BUTTON_ATCK2) { - if(cvar("g_balance_nex_secondary")) + if(cvar("g_balance_nex_secondary_charge")) + { + self.nexspeed = min(cvar("g_balance_nex_velocitydependent_maxspeed"), self.nexspeed + cvar("g_balance_nex_secondary_charge_rate") * frametime / W_TICSPERFRAME); + self.ammo_cells = max(0, self.ammo_cells - cvar("g_balance_nex_secondary_charge_ammo") * frametime / W_TICSPERFRAME); + } + else if(cvar("g_balance_nex_secondary")) { if (weapon_prepareattack(0, cvar("g_balance_nex_secondary_refire"))) {