]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/common/mutators/mutator/midair/midair.qc
cc426a36d7f513c6dd91c22bb1f98243cc2078f0
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / mutators / mutator / midair / midair.qc
1 #ifdef IMPLEMENTATION
2
3 float autocvar_g_midair_shieldtime;
4
5 REGISTER_MUTATOR(midair, cvar("g_midair"));
6
7 .float midair_shieldtime;
8
9 MUTATOR_HOOKFUNCTION(midair, PlayerDamage_Calculate)
10 {
11         entity frag_attacker = M_ARGV(1, entity);
12         entity frag_target = M_ARGV(2, entity);
13         
14         if(IS_PLAYER(frag_attacker))
15         if(IS_PLAYER(frag_target))
16         if(time < frag_target.midair_shieldtime)
17                 frag_damage = false;
18
19         return false;
20 }
21
22 MUTATOR_HOOKFUNCTION(midair, PlayerPowerups)
23 {
24         entity player = M_ARGV(0, entity);
25
26         if(time >= game_starttime)
27         if(IS_ONGROUND(player))
28         {
29                 player.effects |= (EF_ADDITIVE | EF_FULLBRIGHT);
30                 player.midair_shieldtime = max(player.midair_shieldtime, time + autocvar_g_midair_shieldtime);
31         }
32
33         return false;
34 }
35
36 MUTATOR_HOOKFUNCTION(midair, PlayerSpawn)
37 {
38         entity player = M_ARGV(0, entity);
39
40         if(IS_BOT_CLIENT(player))
41                 player.bot_moveskill = 0; // disable bunnyhopping
42
43         return false;
44 }
45
46 MUTATOR_HOOKFUNCTION(midair, BuildMutatorsString)
47 {
48         ret_string = strcat(ret_string, ":midair");
49         return false;
50 }
51
52 MUTATOR_HOOKFUNCTION(midair, BuildMutatorsPrettyString)
53 {
54         ret_string = strcat(ret_string, ", Midair");
55         return false;
56 }
57 #endif