]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/server/mutators/mutator/gamemode_domination.qh
take3: format 903 files
[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
22                 GameRules_teams(true);
23                 GameRules_limit_score(fraglimit_override);
24                 GameRules_limit_lead(autocvar_g_domination_point_leadlimit);
25
26                 dom_Initialize();
27         }
28         return 0;
29 }
30
31 // score rule declarations
32 const float ST_DOM_TICKS = 1;
33 const float ST_DOM_CAPS = 1;
34
35 // pps: points per second
36 .float dom_total_pps = _STAT(DOM_TOTAL_PPS);
37 .float dom_pps_red = _STAT(DOM_PPS_RED);
38 .float dom_pps_blue = _STAT(DOM_PPS_BLUE);
39 .float dom_pps_yellow = _STAT(DOM_PPS_YELLOW);
40 .float dom_pps_pink = _STAT(DOM_PPS_PINK);
41 float total_pps;
42 float pps_red;
43 float pps_blue;
44 float pps_yellow;
45 float pps_pink;
46
47 // capture declarations
48 .float enemy_playerid;
49 .entity sprite;
50 .float captime;
51
52 // misc globals
53 float domination_roundbased;
54 float domination_teams;
55
56 void AnimateDomPoint(entity this);
57
58 IntrusiveList g_dompoints;
59 STATIC_INIT(g_dompoints)
60 {
61         g_dompoints = IL_NEW();
62 }