+ // always deplete if secondary is held
+ self.nex_charge_pool_ammo = max(0, self.nex_charge_pool_ammo - cvar("g_balance_nex_secondary_ammo") * dt);
+
+ dt = min(dt, (1 - self.nex_charge) / cvar("g_balance_nex_secondary_charge_rate"));
+ self.nex_charge_pool_pauseregen_finished = time + cvar("g_balance_nex_secondary_charge_pool_pause_regen");
+ dt = min(dt, self.nex_charge_pool_ammo);
+ dt = max(0, dt);
+
+ self.nex_charge += dt * cvar("g_balance_nex_secondary_charge_rate");
+ }
+ }
+
+ else if(cvar("g_balance_nex_secondary_ammo"))
+ {
+ if(self.nex_charge < 1)
+ {
+ dt = min(dt, (1 - self.nex_charge) / cvar("g_balance_nex_secondary_charge_rate"));
+ if not(self.items & IT_UNLIMITED_WEAPON_AMMO)