]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Freezetag: use an alternative lower revive speed if g_freezetag_revive_time_to_score...
authorterencehill <piuntn@gmail.com>
Wed, 21 Apr 2021 14:19:37 +0000 (16:19 +0200)
committerterencehill <piuntn@gmail.com>
Wed, 21 Apr 2021 14:19:37 +0000 (16:19 +0200)
gamemodes-server.cfg
qcsrc/common/gamemodes/gamemode/freezetag/sv_freezetag.qc
qcsrc/common/gamemodes/gamemode/freezetag/sv_freezetag.qh

index 691299e44656fd97b3648ff22cb1dce0101df116..bb17922f82afbfac06d1f4c252d9ba8625f3e4c7 100644 (file)
@@ -367,7 +367,8 @@ set g_freezetag_warmup 10 "Time players get to run around before the round start
 set 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)"
 set 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)"
 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_speed_t2s 0.25 "Speed for reviving a frozen teammate if g_freezetag_revive_time_to_score is active"
+set g_freezetag_revive_clearspeed 1.6 "Speed at which reviving progress gets lost when out of range (if g_freezetag_revive_time_to_score is active reviving progress is not cleared)"
 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_revive_nade 1 "Enable reviving from own nade explosion"
 set g_freezetag_revive_nade_health 40 "Amount of health player has if they revived from their own nade explosion"
index 8f6b800a354aa916555be9cb69db9eed0df00147..2b87c34533c320ac26e984a54007fbb62d84c630 100644 (file)
@@ -623,7 +623,10 @@ MUTATOR_HOOKFUNCTION(ft, PlayerPreThink, CBC_ORDER_FIRST)
        }
        else if (STAT(FROZEN, player) == FROZEN_NORMAL) // OK, there is at least one teammate reviving us
        {
-               STAT(REVIVE_PROGRESS, player) = bound(base_progress, STAT(REVIVE_PROGRESS, player) + frametime * max(1/60, autocvar_g_freezetag_revive_speed * (1 - base_progress)), 1);
+               float spd = autocvar_g_freezetag_revive_speed_t2s;
+               if (autocvar_g_freezetag_revive_time_to_score <= 0)
+                       spd = autocvar_g_freezetag_revive_speed * (1 - base_progress);
+               STAT(REVIVE_PROGRESS, player) = bound(base_progress, STAT(REVIVE_PROGRESS, player) + frametime * max(1/60, spd), 1);
 
                if(STAT(REVIVE_PROGRESS, player) >= 1)
                {
index ef8eb64d5f9eff8f8fc4799bd5bdf4d924d9fa1d..6fdd693cc044a5c5b7a04d92be38758837f92660 100644 (file)
@@ -42,6 +42,7 @@ float autocvar_g_freezetag_revive_auto_reducible_forcefactor = 0.01;
 float autocvar_g_freezetag_revive_auto_reducible_maxforce;
 float autocvar_g_freezetag_revive_extra_size;
 float autocvar_g_freezetag_revive_speed;
+float autocvar_g_freezetag_revive_speed_t2s = 0.25;
 float autocvar_g_freezetag_revive_time_to_score = 1.5;
 bool autocvar_g_freezetag_revive_nade;
 float autocvar_g_freezetag_revive_nade_health;