]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Merge branch 'terencehill/ca_arena_mutators' of git://git.xonotic.org/xonotic/xonotic...
authorterencehill <piuntn@gmail.com>
Tue, 12 Feb 2013 14:28:11 +0000 (15:28 +0100)
committerterencehill <piuntn@gmail.com>
Tue, 12 Feb 2013 14:28:11 +0000 (15:28 +0100)
gamemodes.cfg
qcsrc/server/autocvars.qh
qcsrc/server/command/cmd.qc
qcsrc/server/command/vote.qc
qcsrc/server/mutators/gamemode_arena.qc
qcsrc/server/mutators/gamemode_ca.qc
qcsrc/server/mutators/gamemode_freezetag.qc

index 752787536e9010edc0251a2bd9c2ac26be054fbf..74689be3d96e7410ddd5bb610b75a9f6ab936d10 100644 (file)
@@ -280,14 +280,15 @@ set g_domination_point_glow               0 "domination point glow (warning, slow)"
 //  freezetag
 // ===========
 set g_freezetag 0 "Freeze Tag: Freeze the opposing team(s) to win, unfreeze teammates by standing next to them"
-seta g_freezetag_warmup 5 "Time players get to run around before the round starts"
+set g_freezetag_warmup 5 "Time players get to run around before the round starts"
 seta g_freezetag_point_limit -1        "Freeze Tag point limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
 seta g_freezetag_point_leadlimit -1    "Freeze Tag point lead limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
-seta g_freezetag_revive_speed 0.4 "Speed for reviving a frozen teammate"
-seta g_freezetag_revive_clearspeed 1.6 "Speed at which reviving progress gets lost when out of range"
-seta g_freezetag_revive_extra_size 100 "Distance in qu that you can stand from a frozen teammate to keep reviving him"
+set g_freezetag_revive_speed 0.4 "Speed for reviving a frozen teammate"
+set g_freezetag_revive_clearspeed 1.6 "Speed at which reviving progress gets lost when out of range"
+set g_freezetag_revive_extra_size 100 "Distance in qu that you can stand from a frozen teammate to keep reviving him"
 set g_freezetag_round_timelimit 180
-seta g_freezetag_frozen_force 0.6 "How much to multiply the force on a frozen player with"
+set g_freezetag_frozen_force 0.6 "How much to multiply the force on a frozen player with"
+set g_freezetag_frozen_timeout 60 "frozen players will be automatically unfrozen after this time in seconds"
 seta g_freezetag_teams_override 0
 set g_freezetag_teams 0
 
index 446696e9925a0cfad798089d4b3c780007874465..784af6f1571e069ea81d25433f5c61d9f740c5e2 100644 (file)
@@ -852,6 +852,7 @@ string autocvar_g_forced_team_pink;
 string autocvar_g_forced_team_red;
 string autocvar_g_forced_team_yellow;
 float autocvar_g_freezetag_frozen_force;
+float autocvar_g_freezetag_frozen_timeout;
 float autocvar_g_freezetag_point_leadlimit;
 float autocvar_g_freezetag_point_limit;
 float autocvar_g_freezetag_revive_extra_size;
index dea46bbcbebbeb26f68b7ffe1da311081bb4223d..c357cf689ccd093d762b6cc7d24658550a2eb4f7 100644 (file)
@@ -193,6 +193,8 @@ void ClientCommand_ready(float request) // todo: anti-spam for toggling readynes
                                {
                                        if(!readyrestart_happened || autocvar_sv_ready_restart_repeatable)
                                        {
+                                               if(time < game_starttime + 1) // game is already restarting
+                                                       return;
                                                if (self.ready) // toggle
                                                {
                                                        self.ready = FALSE;
index 45e15c95f62dd3441189ed9e85cf78c2e9bf42c8..ad44e9382455d9303626f269112d38006bd52443 100644 (file)
@@ -424,7 +424,7 @@ void ReadyRestart_force()
 
        readyrestart_happened = 1;
        game_starttime = time;
-       if(!g_ca && !g_arena) { game_starttime += RESTART_COUNTDOWN; }
+       if(!g_arena) { game_starttime += RESTART_COUNTDOWN; }
 
        // clear alivetime
        FOR_EACH_CLIENT(tmp_player)
@@ -444,14 +444,14 @@ void ReadyRestart_force()
        Nagger_ReadyCounted(); // NOTE: this causes a resend of that entity, and will also turn off warmup state on the client
 
        // lock teams with lockonrestart
-       if(autocvar_teamplay_lockonrestart && teamplay) 
+       if(autocvar_teamplay_lockonrestart && teamplay)
        {
                lockteams = 1;
                bprint("^1The teams are now locked.\n");
        }
 
        //initiate the restart-countdown-announcer entity
-       if(autocvar_sv_ready_restart_after_countdown && !g_ca && !g_arena)
+       if(autocvar_sv_ready_restart_after_countdown && !g_arena)
        {
                restart_timer = spawn();
                restart_timer.think = ReadyRestart_think;
index 4b88eefb2a760584883dda91a0cbf91beb261da4..6e4d8e39dcc47ae0ce9e93411a8e4b4056345d12 100644 (file)
@@ -230,7 +230,7 @@ MUTATOR_HOOKFUNCTION(arena_ForbidPlayerScore_Clear)
 MUTATOR_HOOKFUNCTION(arena_GiveFragsForKill)
 {
        if(arena_roundbased)
-               frag_score = 0;
+               frag_score = 0; // score will be given to the champion when the round ends
        return 1;
 }
 
index 5fffa160189d7595495f7102c2d33c3de0b57d78..291166fe7bf06c47cb662666386b7d5e4e85a2b0 100644 (file)
@@ -219,6 +219,12 @@ MUTATOR_HOOKFUNCTION(ca_ForbidThrowCurrentWeapon)
        return 1;
 }
 
+MUTATOR_HOOKFUNCTION(ca_GiveFragsForKill)
+{
+       frag_score = 0; // score will be given to the winner team when the round ends
+       return 1;
+}
+
 void ca_Initialize()
 {
        allowed_to_spawn = TRUE;
@@ -243,6 +249,7 @@ MUTATOR_DEFINITION(gamemode_ca)
        MUTATOR_HOOK(PlayerPreThink, ca_PlayerPreThink, CBC_ORDER_ANY);
        MUTATOR_HOOK(ForbidPlayerScore_Clear, ca_ForbidPlayerScore_Clear, CBC_ORDER_ANY);
        MUTATOR_HOOK(ForbidThrowCurrentWeapon, ca_ForbidThrowCurrentWeapon, CBC_ORDER_ANY);
+       MUTATOR_HOOK(GiveFragsForKill, ca_GiveFragsForKill, CBC_ORDER_FIRST);
 
        MUTATOR_ONADD
        {
index 7b947faed50db2f768f6dd340849432ea36395c3..a7c23dc52ef3181020f423db6a653877584beac8 100644 (file)
@@ -179,8 +179,8 @@ void freezetag_Freeze(entity attacker)
        self.freezetag_frozen = 1;
        self.freezetag_revive_progress = 0;
        self.health = 1;
-       // if(inWarmupStage)
-               // self.freezetag_frozen_timeout = time + 5;
+       if(autocvar_g_freezetag_frozen_timeout > 0)
+               self.freezetag_frozen_timeout = time + autocvar_g_freezetag_frozen_timeout;
 
        freezetag_count_alive_players();