]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/server/mutators/mutator_breakablehook.qc
Merge branch 'TimePath/cleanup'
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / mutators / mutator_breakablehook.qc
1 #include "../../common/deathtypes.qh"
2 #include "../g_hook.qh"
3
4 REGISTER_MUTATOR(bh, cvar("g_breakablehook"));
5
6 bool autocvar_g_breakablehook; // allow toggling mid match?
7 bool autocvar_g_breakablehook_owner;
8
9 MUTATOR_HOOKFUNCTION(bh, PlayerDamage_Calculate)
10 {
11         if(frag_target.classname == "grapplinghook")
12         {
13                 if((!autocvar_g_breakablehook)
14                 || (!autocvar_g_breakablehook_owner && frag_attacker == frag_target.realowner)
15                         ) { frag_damage = 0; }
16
17                 // hurt the owner of the hook
18                 if(DIFF_TEAM(frag_attacker, frag_target.realowner))
19                 {
20                         Damage (frag_target.realowner, frag_attacker, frag_attacker, 5, WEP_HOOK.m_id | HITTYPE_SPLASH, frag_target.realowner.origin, '0 0 0');
21                         RemoveGrapplingHook(frag_target.realowner);
22                         return false; // dead
23                 }
24         }
25
26         return false;
27 }