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