]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Survival: Added stealth option.
authorLyberta <lyberta@lyberta.net>
Wed, 3 May 2017 21:04:28 +0000 (00:04 +0300)
committerLyberta <lyberta@lyberta.net>
Wed, 3 May 2017 21:04:28 +0000 (00:04 +0300)
qcsrc/server/mutators/mutator/gamemode_survival.qc
survival.cfg

index 86ac5700ce7aad9c157d55227ebdc1a315e51412..1056c886f59b4c06b58e8178e3218ce82e6d472c 100644 (file)
@@ -61,6 +61,8 @@ int autocvar_g_surv_point_leadlimit; ///< Maximum lead of a single team.
 
 /// \brief How much players are allowed in teams (excluding cannon fodder).
 int autocvar_g_surv_team_size;
+/// \brief If set, defenders will not be shown on the radar.
+int autocvar_g_surv_stealth;
 
 /// \brief Whether to force overkill player models for attackers.
 int autocvar_g_surv_attacker_force_overkill_models;
@@ -1352,6 +1354,10 @@ void Surv_RoundStart()
                        break;
                }
        }
+       if (autocvar_g_surv_stealth)
+       {
+               return;
+       }
        FOREACH_CLIENT(IS_PLAYER(it),
        {
                switch (it.team)
@@ -2116,15 +2122,6 @@ MUTATOR_HOOKFUNCTION(surv, PlayerDamaged)
                return;
        }
        Surv_UpdateDefenderHealthStat();
-       if (target.health < 1)
-       {
-               WaypointSprite_Kill(target.surv_attack_sprite);
-       }
-       else
-       {
-               WaypointSprite_UpdateHealth(target.surv_attack_sprite, target.health +
-                       target.armorvalue);
-       }
        entity attacker = M_ARGV(0, entity);
        if ((attacker.team == surv_attackerteam) && (attacker.surv_role ==
                SURVIVAL_ROLE_PLAYER))
@@ -2134,6 +2131,19 @@ MUTATOR_HOOKFUNCTION(surv, PlayerDamaged)
                float score = (health + armor) * autocvar_g_surv_attacker_damage_score;
                PlayerScore_Add(attacker, SP_SCORE, score);
        }
+       if (autocvar_g_surv_stealth)
+       {
+               return;
+       }
+       if (target.health < 1)
+       {
+               WaypointSprite_Kill(target.surv_attack_sprite);
+       }
+       else
+       {
+               WaypointSprite_UpdateHealth(target.surv_attack_sprite, target.health +
+                       target.armorvalue);
+       }
 }
 
 /// \brief Hook which is called when the player dies.
index 038cdc8263b87fa5f238273d51fd055750e82deb..2a9d95bbef966c776d1029125e3623f46ad4f51a 100644 (file)
@@ -19,6 +19,7 @@ set g_surv_round_timelimit 300 "Round time limit in seconds"
 seta g_surv_point_limit -1 "Survival point limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
 seta g_surv_point_leadlimit -1 "Survival point lead limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
 set g_surv_team_size 4 "How much players are allowed in teams (excluding cannon fodder)"
+set g_surv_stealth 0 "If set, defenders will not be shown on the radar"
 
 set g_surv_attacker_force_overkill_models 0 "Whether to force overkill player models for attackers"
 set g_surv_defender_force_overkill_models 1 "Whether to force overkill player models for defenders"