]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/server/mutators/mutator/gamemode_lms.qh
Refactor game rules
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / mutators / mutator / gamemode_lms.qh
1 #pragma once
2
3 #include "../gamemode.qh"
4
5 .float lms_spectate_warning;
6 #define autocvar_g_lms_lives_override cvar("g_lms_lives_override")
7 void lms_Initialize();
8
9 REGISTER_MUTATOR(lms, false)
10 {
11         MUTATOR_ONADD
12         {
13                 if (time > 1) // game loads at time 1
14                         error("This is a game type and it cannot be added at runtime.");
15                 lms_Initialize();
16
17         GameRules_limit_score(((!autocvar_g_lms_lives_override) ? -1 : autocvar_g_lms_lives_override));
18         GameRules_limit_lead(0);
19         }
20
21         MUTATOR_ONROLLBACK_OR_REMOVE
22         {
23                 // we actually cannot roll back lms_Initialize here
24                 // BUT: we don't need to! If this gets called, adding always
25                 // succeeds.
26         }
27
28         MUTATOR_ONREMOVE
29         {
30                 LOG_INFO("This is a game type and it cannot be removed at runtime.");
31                 return -1;
32         }
33
34         return 0;
35 }
36
37 // lives related defs
38 float lms_lowest_lives;
39 float LMS_NewPlayerLives();