]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/server/mutators/mutator/gamemode_domination.qh
Change the internal database value name to _ranked
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / mutators / mutator / gamemode_domination.qh
1 #pragma once
2
3 #include "../gamemode.qh"
4
5 #define autocvar_g_domination_point_limit cvar("g_domination_point_limit")
6 bool autocvar_g_domination_roundbased;
7 int autocvar_g_domination_roundbased_point_limit;
8 int autocvar_g_domination_point_leadlimit;
9
10 void dom_Initialize();
11
12 REGISTER_MUTATOR(dom, false)
13 {
14     MUTATOR_STATIC();
15         MUTATOR_ONADD
16         {
17                 int fraglimit_override = autocvar_g_domination_point_limit;
18                 if (autocvar_g_domination_roundbased && autocvar_g_domination_roundbased_point_limit)
19                         fraglimit_override = autocvar_g_domination_roundbased_point_limit;
20
21                 GameRules_teams(true);
22         GameRules_limit_score(fraglimit_override);
23         GameRules_limit_lead(autocvar_g_domination_point_leadlimit);
24
25                 dom_Initialize();
26         }
27         return 0;
28 }
29
30 // score rule declarations
31 const float ST_DOM_TICKS = 1;
32 const float ST_DOM_CAPS = 1;
33
34 // pps: points per second
35 .float dom_total_pps = _STAT(DOM_TOTAL_PPS);
36 .float dom_pps_red = _STAT(DOM_PPS_RED);
37 .float dom_pps_blue = _STAT(DOM_PPS_BLUE);
38 .float dom_pps_yellow = _STAT(DOM_PPS_YELLOW);
39 .float dom_pps_pink = _STAT(DOM_PPS_PINK);
40 float total_pps;
41 float pps_red;
42 float pps_blue;
43 float pps_yellow;
44 float pps_pink;
45
46 // capture declarations
47 .float enemy_playerid;
48 .entity sprite;
49 .float captime;
50
51 // misc globals
52 float domination_roundbased;
53 float domination_teams;
54
55 void AnimateDomPoint(entity this);
56
57 IntrusiveList g_dompoints;
58 STATIC_INIT(g_dompoints) { g_dompoints = IL_NEW(); }