X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fg_hook.qc;h=4e1b634008fb6d063f760a4f2f747af352363bcd;hb=ffc8306348654f791a14dfb6ffe918083067244c;hp=76f7b5b99efa5c452f367b2a48ed6258b62f2668;hpb=57f409333cc09406298b66421d5e99357a7f586d;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/g_hook.qc b/qcsrc/server/g_hook.qc index 76f7b5b99..4e1b63400 100644 --- a/qcsrc/server/g_hook.qc +++ b/qcsrc/server/g_hook.qc @@ -274,12 +274,12 @@ void GrapplingHook_Damage (entity inflictor, entity attacker, float damage, floa { if(self.health <= 0) return; - + if (!W_CheckProjectileDamage(inflictor.realowner, self.realowner, deathtype, -1)) // no exceptions return; // g_balance_projectiledamage says to halt - + self.health = self.health - damage; - + if (self.health <= 0) { if(attacker != self.realowner) @@ -383,7 +383,7 @@ void GrapplingHookFrame() // offhand hook controls if(self.BUTTON_HOOK) { - if (!(self.hook || (self.hook_state & HOOK_WAITING_FOR_RELEASE))) + if (!(self.hook || (self.hook_state & HOOK_WAITING_FOR_RELEASE)) && (time > self.hook_refire)) { self.hook_state |= HOOK_FIRING; self.hook_state |= HOOK_WAITING_FOR_RELEASE; @@ -426,6 +426,7 @@ void GrapplingHookFrame() RemoveGrapplingHook(self); FireGrapplingHook(); self.hook_state &= ~HOOK_FIRING; + self.hook_refire = max(self.hook_refire, time + autocvar_g_balance_grapplehook_refire * W_WeaponRateFactor()); } else if(self.hook_state & HOOK_REMOVING) {