]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/server/mutators/mutator_midair.qc
Merge branch 'master' into terencehill/hud_cleanups
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / mutators / mutator_midair.qc
1
2 #include "mutator.qh"
3
4 .float midair_shieldtime;
5
6 MUTATOR_HOOKFUNCTION(midair_PlayerDamage)
7 {SELFPARAM();
8         if(IS_PLAYER(frag_attacker))
9         if(IS_PLAYER(frag_target))
10         if(time < self.midair_shieldtime)
11                 frag_damage = false;
12
13         return false;
14 }
15
16 MUTATOR_HOOKFUNCTION(midair_PlayerPowerups)
17 {SELFPARAM();
18         if(time >= game_starttime)
19         if(self.flags & FL_ONGROUND)
20         {
21                 self.effects |= (EF_ADDITIVE | EF_FULLBRIGHT);
22                 self.midair_shieldtime = max(self.midair_shieldtime, time + autocvar_g_midair_shieldtime);
23         }
24
25         return false;
26 }
27
28 MUTATOR_HOOKFUNCTION(midair_PlayerSpawn)
29 {SELFPARAM();
30         if(IS_BOT_CLIENT(self))
31                 self.bot_moveskill = 0; // disable bunnyhopping
32
33         return false;
34 }
35
36 MUTATOR_HOOKFUNCTION(midair_BuildMutatorsString)
37 {
38         ret_string = strcat(ret_string, ":midair");
39         return false;
40 }
41
42 MUTATOR_HOOKFUNCTION(midair_BuildMutatorsPrettyString)
43 {
44         ret_string = strcat(ret_string, ", Midair");
45         return false;
46 }
47
48 MUTATOR_DEFINITION(mutator_midair)
49 {
50         MUTATOR_HOOK(PlayerDamage_Calculate, midair_PlayerDamage, CBC_ORDER_ANY);
51         MUTATOR_HOOK(PlayerPowerups, midair_PlayerPowerups, CBC_ORDER_ANY);
52         MUTATOR_HOOK(PlayerSpawn, midair_PlayerSpawn, CBC_ORDER_ANY);
53         MUTATOR_HOOK(BuildMutatorsString, midair_BuildMutatorsString, CBC_ORDER_ANY);
54         MUTATOR_HOOK(BuildMutatorsPrettyString, midair_BuildMutatorsPrettyString, CBC_ORDER_ANY);
55
56         return false;
57 }