3 float autocvar_g_midair_shieldtime;
5 REGISTER_MUTATOR(midair, cvar("g_midair"));
7 .float midair_shieldtime;
9 MUTATOR_HOOKFUNCTION(midair, PlayerDamage_Calculate)
11 entity frag_attacker = M_ARGV(1, entity);
12 entity frag_target = M_ARGV(2, entity);
14 if(IS_PLAYER(frag_attacker))
15 if(IS_PLAYER(frag_target))
16 if(time < frag_target.midair_shieldtime)
20 MUTATOR_HOOKFUNCTION(midair, PlayerPowerups)
22 entity player = M_ARGV(0, entity);
24 if(time >= game_starttime)
25 if(IS_ONGROUND(player))
27 player.effects |= (EF_ADDITIVE | EF_FULLBRIGHT);
28 player.midair_shieldtime = max(player.midair_shieldtime, time + autocvar_g_midair_shieldtime);
32 MUTATOR_HOOKFUNCTION(midair, PlayerSpawn)
34 entity player = M_ARGV(0, entity);
36 if(IS_BOT_CLIENT(player))
37 player.bot_moveskill = 0; // disable bunnyhopping
40 MUTATOR_HOOKFUNCTION(midair, BuildMutatorsString)
42 M_ARGV(0, string) = strcat(M_ARGV(0, string), ":midair");
45 MUTATOR_HOOKFUNCTION(midair, BuildMutatorsPrettyString)
47 M_ARGV(0, string) = strcat(M_ARGV(0, string), ", Midair");