3 #include <common/mutators/base.qh>
4 #include <server/elimination.qh>
5 #include <server/round_handler.qh>
6 #include <server/command/sv_cmd.qh>
8 int autocvar_g_ca_point_limit;
9 int autocvar_g_ca_point_leadlimit;
10 float autocvar_g_ca_round_timelimit;
11 bool autocvar_g_ca_round_stop;
12 bool autocvar_g_ca_team_spawns;
13 //int autocvar_g_ca_teams;
14 int autocvar_g_ca_teams_override;
15 float autocvar_g_ca_warmup;
16 string autocvar_g_ca_weaponarena = "most";
20 bool allowed_to_spawn;
22 const int ST_CA_ROUNDS = 1;
25 bool CA_CheckWinner();
27 bool ca_isEliminated(entity e);
29 REGISTER_MUTATOR(ca, false)
34 GameRules_teams(true);
35 GameRules_spawning_teams(autocvar_g_ca_team_spawns);
36 GameRules_limit_score(autocvar_g_ca_point_limit);
37 GameRules_limit_lead(autocvar_g_ca_point_leadlimit);
39 ca_teams = autocvar_g_ca_teams_override;
41 ca_teams = cvar("g_ca_teams"); // read the cvar directly as it gets written earlier in the same frame
43 ca_teams = BITS(bound(2, ca_teams, 4));
44 GameRules_scoring(ca_teams, SFL_SORT_PRIO_PRIMARY, 0, {
45 field_team(ST_CA_ROUNDS, "rounds", SFL_SORT_PRIO_PRIMARY);
48 allowed_to_spawn = true;
49 round_handler_Spawn(CA_CheckTeams, CA_CheckWinner, CA_RoundStart);
50 round_handler_Init(5, autocvar_g_ca_warmup, autocvar_g_ca_round_timelimit);
51 EliminatedPlayers_Init(ca_isEliminated);