X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fserver%2Fcl_physics.qc;h=b005dd5f3f20c575914e76107a7891ffd4198d07;hp=d9394deaf26a968573d2331a5c78d87d227a5ccd;hb=373b4a3d504ef2a3626e20788fabd35d6dfab9ee;hpb=9334cf53b0bdefd6710e84a4ba2f5e4fb97818c9 diff --git a/qcsrc/server/cl_physics.qc b/qcsrc/server/cl_physics.qc index d9394deaf..b005dd5f3 100644 --- a/qcsrc/server/cl_physics.qc +++ b/qcsrc/server/cl_physics.qc @@ -1326,14 +1326,16 @@ void SV_PlayerPhysics() } } - float f; float xyspeed; - 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 = max(cvar("g_balance_nex_velocitydependent_minspeed"), self.nexspeed - f * frametime); + if(self.weapon == WEP_NEX && cvar("g_balance_nex_charge") && cvar("g_balance_nex_charge_velocity_rate") && xyspeed > cvar("g_balance_nex_charge_minspeed")) + { + // add a maximum of charge_velocity_rate when going fast (f = 1), gradually increasing from minspeed (f = 0) to maxspeed + xyspeed = min(xyspeed, cvar("g_balance_nex_charge_maxspeed")); + f = (xyspeed - cvar("g_balance_nex_charge_minspeed")) / (cvar("g_balance_nex_charge_maxspeed") - cvar("g_balance_nex_charge_minspeed")); + // add the extra charge + self.nex_charge = min(1, self.nex_charge + cvar("g_balance_nex_charge_velocity_rate") * f * frametime); + } :end if(self.flags & FL_ONGROUND) self.lastground = time;