3 MUTATOR_HOOKFUNCTION(gravity_StartFrame)
5 if(gameover || !cvar("g_random_gravity"))
7 if(autocvar_sv_gravity != old_gravity)
9 cvar_set("sv_gravity", ftos(old_gravity));
10 old_gravity = autocvar_sv_gravity; // update now so it can be changed during match end
16 if(time < gravity_delay) return FALSE;
17 if(time < game_starttime) return FALSE;
18 if(round_handler_IsActive() && !round_handler_IsRoundStarted()) return FALSE;
20 if(random() >= autocvar_g_random_gravity_negative_chance)
21 cvar_set("sv_gravity", ftos(bound(autocvar_g_random_gravity_min, random() - random() * -autocvar_g_random_gravity_negative, autocvar_g_random_gravity_max)));
23 cvar_set("sv_gravity", ftos(bound(autocvar_g_random_gravity_min, random() * autocvar_g_random_gravity_positive, autocvar_g_random_gravity_max)));
25 gravity_delay = time + autocvar_g_random_gravity_delay;
27 dprint("Gravity is now: ", ftos(autocvar_sv_gravity), "\n");
32 MUTATOR_HOOKFUNCTION(gravity_BuildMutatorsString)
34 ret_string = strcat(ret_string, ":RandomGravity");
38 MUTATOR_HOOKFUNCTION(gravity_BuildMutatorsPrettyString)
40 ret_string = strcat(ret_string, ", Random gravity");
44 MUTATOR_DEFINITION(mutator_random_gravity)
46 MUTATOR_HOOK(SV_StartFrame, gravity_StartFrame, CBC_ORDER_ANY);
47 MUTATOR_HOOK(BuildMutatorsString, gravity_BuildMutatorsString, CBC_ORDER_ANY);
48 MUTATOR_HOOK(BuildMutatorsPrettyString, gravity_BuildMutatorsPrettyString, CBC_ORDER_ANY);
52 old_gravity = autocvar_sv_gravity;
57 cvar_set("sv_gravity", ftos(old_gravity));