]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/common/mutators/mutator/melee_only/sv_melee_only.qc
Merge branch 'master' into DefaultUser/func_button_relay
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / mutators / mutator / melee_only / sv_melee_only.qc
1 #include "sv_melee_only.qh"
2
3 #include "../overkill/sv_overkill.qh"
4
5 string autocvar_g_melee_only;
6 REGISTER_MUTATOR(melee_only, expr_evaluate(autocvar_g_melee_only) && !MUTATOR_IS_ENABLED(mutator_instagib) && !MUTATOR_IS_ENABLED(ok) && !g_nexball);
7
8 MUTATOR_HOOKFUNCTION(melee_only, SetStartItems, CBC_ORDER_LAST)
9 {
10         start_ammo_shells = warmup_start_ammo_shells = 0;
11         start_weapons = warmup_start_weapons = WEPSET(SHOTGUN);
12 }
13
14 MUTATOR_HOOKFUNCTION(melee_only, SetWeaponArena)
15 {
16         // turn weapon arena off
17         M_ARGV(0, string) = "off";
18 }
19
20 MUTATOR_HOOKFUNCTION(melee_only, ForbidRandomStartWeapons)
21 {
22         return true;
23 }
24
25 MUTATOR_HOOKFUNCTION(melee_only, ForbidThrowCurrentWeapon)
26 {
27         return true;
28 }
29
30 MUTATOR_HOOKFUNCTION(melee_only, FilterItemDefinition)
31 {
32         entity definition = M_ARGV(0, entity);
33
34         switch (definition)
35         {
36                 case ITEM_HealthSmall:
37                 case ITEM_ArmorSmall:
38                         return false;
39         }
40
41         return true;
42 }
43
44 MUTATOR_HOOKFUNCTION(melee_only, BuildMutatorsString)
45 {
46         M_ARGV(0, string) = strcat(M_ARGV(0, string), ":MeleeOnly");
47 }
48
49 MUTATOR_HOOKFUNCTION(melee_only, BuildMutatorsPrettyString)
50 {
51         M_ARGV(0, string) = strcat(M_ARGV(0, string), ", Melee Only Arena");
52 }