]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/common/gamemodes/gamemode/domination/sv_domination.qh
Merge branch 'master' into DefaultUser/func_button_relay
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / gamemodes / gamemode / domination / sv_domination.qh
1 #pragma once
2
3 #include <common/mutators/base.qh>
4 #define autocvar_g_domination_point_limit cvar("g_domination_point_limit")
5 bool autocvar_g_domination_roundbased;
6 int autocvar_g_domination_roundbased_point_limit;
7 int autocvar_g_domination_point_leadlimit;
8
9 void dom_Initialize();
10
11 REGISTER_MUTATOR(dom, false)
12 {
13     MUTATOR_STATIC();
14         MUTATOR_ONADD
15         {
16                 int fraglimit_override = autocvar_g_domination_point_limit;
17                 if (autocvar_g_domination_roundbased && autocvar_g_domination_roundbased_point_limit)
18                         fraglimit_override = autocvar_g_domination_roundbased_point_limit;
19
20                 GameRules_teams(true);
21         GameRules_limit_score(fraglimit_override);
22         GameRules_limit_lead(autocvar_g_domination_point_leadlimit);
23
24                 dom_Initialize();
25         }
26         return 0;
27 }
28
29 // score rule declarations
30 const float ST_DOM_TICKS = 1;
31 const float ST_DOM_CAPS = 1;
32
33 // pps: points per second
34 float total_pps;
35 float pps_red;
36 float pps_blue;
37 float pps_yellow;
38 float pps_pink;
39
40 // capture declarations
41 .float enemy_playerid;
42 .entity sprite;
43 .float captime;
44
45 // misc globals
46 float domination_roundbased;
47 float domination_teams;
48
49 void AnimateDomPoint(entity this);
50
51 IntrusiveList g_dompoints;
52 STATIC_INIT(g_dompoints) { g_dompoints = IL_NEW(); }