set g_balance_grapplehook_airfriction 0.2
set g_balance_grapplehook_health 130
set g_balance_grapplehook_damagedbycontents 0
+set g_balance_grapplehook_refire 0.2
// }}}
// {{{ weapon properties
// }}}
// {{{ hook
set g_balance_hook_primary_fuel 5 // hook monkeys set 0
-set g_balance_hook_primary_refire 0 // hook monkeys set 0
+set g_balance_hook_primary_refire 0.2 // hook monkeys set 0
set g_balance_hook_primary_animtime 0.3 // good shoot anim
set g_balance_hook_primary_hooked_time_max 0 // infinite
set g_balance_hook_primary_hooked_time_free 2 // 2s being hooked are free
set g_balance_grapplehook_airfriction 0.2
set g_balance_grapplehook_health 130
set g_balance_grapplehook_damagedbycontents 0
+set g_balance_grapplehook_refire 0.2
// }}}
// {{{ weapon properties
// }}}
// {{{ hook
set g_balance_hook_primary_fuel 5 // hook monkeys set 0
-set g_balance_hook_primary_refire 0 // hook monkeys set 0
+set g_balance_hook_primary_refire 0.2 // hook monkeys set 0
set g_balance_hook_primary_animtime 0.2 // good shoot anim
set g_balance_hook_primary_hooked_time_max 0 // infinite
set g_balance_hook_primary_hooked_time_free 2 // 2s being hooked are free
set g_balance_grapplehook_airfriction 0.2
set g_balance_grapplehook_health 130
set g_balance_grapplehook_damagedbycontents 0
+set g_balance_grapplehook_refire 0.2
// }}}
// {{{ weapon properties
// }}}
// {{{ hook
set g_balance_hook_primary_fuel 5 // hook monkeys set 0
-set g_balance_hook_primary_refire 0 // hook monkeys set 0
+set g_balance_hook_primary_refire 0.2 // hook monkeys set 0
set g_balance_hook_primary_animtime 0.3 // good shoot anim
set g_balance_hook_primary_hooked_time_max 0 // infinite
set g_balance_hook_primary_hooked_time_free 2 // 2s being hooked are free
set g_balance_grapplehook_airfriction 0.2
set g_balance_grapplehook_health 50
set g_balance_grapplehook_damagedbycontents 1
+set g_balance_grapplehook_refire 0.2
// }}}
// {{{ weapon properties
// }}}
// {{{ hook
set g_balance_hook_primary_fuel 5 // hook monkeys set 0
-set g_balance_hook_primary_refire 0 // hook monkeys set 0
+set g_balance_hook_primary_refire 0.2 // hook monkeys set 0
set g_balance_hook_primary_animtime 0.3 // good shoot anim
set g_balance_hook_primary_hooked_time_max 0 // infinite
set g_balance_hook_primary_hooked_time_free 2 // 2s being hooked are free
set g_balance_grapplehook_airfriction 0.2
set g_balance_grapplehook_health 50
set g_balance_grapplehook_damagedbycontents 1
+set g_balance_grapplehook_refire 0.2
// }}}
// {{{ weapon properties
// }}}
// {{{ hook
set g_balance_hook_primary_fuel 5 // hook monkeys set 0
-set g_balance_hook_primary_refire 0 // hook monkeys set 0
+set g_balance_hook_primary_refire 0.2 // hook monkeys set 0
set g_balance_hook_primary_animtime 0.3 // good shoot anim
set g_balance_hook_primary_hooked_time_max 0 // infinite
set g_balance_hook_primary_hooked_time_free 2 // 2s being hooked are free
float autocvar_g_balance_grapplehook_speed_pull;
float autocvar_g_balance_grapplehook_stretch;
float autocvar_g_balance_grapplehook_damagedbycontents;
+float autocvar_g_balance_grapplehook_refire;
float autocvar_g_balance_grenadelauncher_bouncefactor;
float autocvar_g_balance_grenadelauncher_bouncestop;
float autocvar_g_balance_grenadelauncher_primary_ammo;
// 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;
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)
{