]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/common/mutators/mutator/overkill/sv_overkill.qh
Merge branch 'master' into terencehill/less_entities
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / mutators / mutator / overkill / sv_overkill.qh
1 #pragma once
2
3 string autocvar_g_overkill;
4 bool autocvar_g_overkill_filter_healthmega;
5 bool autocvar_g_overkill_filter_armormedium = true;
6 bool autocvar_g_overkill_filter_armorbig = true;
7 bool autocvar_g_overkill_filter_armormega;
8
9 .float ok_item;
10 IntrusiveList g_overkill_items;
11
12 REGISTER_MUTATOR(ok, expr_evaluate(autocvar_g_overkill) && !MUTATOR_IS_ENABLED(mutator_instagib) && !MapInfo_LoadedGametype.m_weaponarena && cvar_string("g_mod_balance") == "Overkill")
13 {
14         MUTATOR_ONADD
15         {
16                 precache_all_playermodels("models/ok_player/*.dpm");
17
18                 if (autocvar_g_overkill_filter_healthmega)
19                 {
20                         ITEM_HealthMega.spawnflags |= ITEM_FLAG_MUTATORBLOCKED;
21                 }
22                 if (autocvar_g_overkill_filter_armormedium)
23                 {
24                         ITEM_ArmorMedium.spawnflags |= ITEM_FLAG_MUTATORBLOCKED;
25                 }
26                 if (autocvar_g_overkill_filter_armorbig)
27                 {
28                         ITEM_ArmorBig.spawnflags |= ITEM_FLAG_MUTATORBLOCKED;
29                 }
30                 if (autocvar_g_overkill_filter_armormega)
31                 {
32                         ITEM_ArmorMega.spawnflags |= ITEM_FLAG_MUTATORBLOCKED;
33                 }
34                 g_overkill_items = IL_NEW();
35                 IL_PUSH(g_overkill_items, ITEM_HealthMega);
36                 IL_PUSH(g_overkill_items, ITEM_ArmorSmall);
37                 IL_PUSH(g_overkill_items, ITEM_ArmorMedium);
38                 IL_PUSH(g_overkill_items, ITEM_ArmorBig);
39                 IL_PUSH(g_overkill_items, ITEM_ArmorMega);
40         }
41
42         MUTATOR_ONREMOVE
43         {
44                 ITEM_HealthMega.spawnflags &= ~ITEM_FLAG_MUTATORBLOCKED;
45                 ITEM_ArmorMedium.spawnflags &= ~ITEM_FLAG_MUTATORBLOCKED;
46                 ITEM_ArmorBig.spawnflags &= ~ITEM_FLAG_MUTATORBLOCKED;
47                 ITEM_ArmorMega.spawnflags &= ~ITEM_FLAG_MUTATORBLOCKED;
48         }
49 }