]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
add possibility to modify respawn delay with a factor in overtime
authorFreddy <schro.sb@gmail.com>
Wed, 13 Jul 2016 15:38:25 +0000 (17:38 +0200)
committerFreddy <schro.sb@gmail.com>
Wed, 13 Jul 2016 15:46:19 +0000 (17:46 +0200)
(increases with every overtime)

defaultXonotic.cfg
gamemodes.cfg
qcsrc/server/autocvars.qh
qcsrc/server/cl_player.qc

index 15aa706fd8e5e494b8a28a15c299c9243ac1728d..9027b340c09b77c9a89c7d1c3fc8914e083132f9 100644 (file)
@@ -476,6 +476,7 @@ set g_respawn_delay_large 2 "large game number of seconds you have to wait befor
 set g_respawn_delay_large_count 8 "Player count per team for g_respawn_delay_large. <=0 values mean the minimum amount of players to have gameplay (typically 2 in FFA, 1 in teamplay)."
 set g_respawn_delay_max 5 "number of seconds you can wait before you're forced to respawn (only effective with g_forced_respawn 1)"
 set g_respawn_delay_forced 0 "enforce regular respawn delay (prevent gamemode specific respawn delays)"
+set g_respawn_delay_overtimefactor 1 "factor to modify the respawn delay in overtime. effect increases with every played overtime"
 set g_respawn_waves 0 "respawn in waves (every n seconds), intended to decrease overwhelming base attacks"
 
 // overtime
index 4cf77d52e39bd0373c320cf4231372f5864f633f..a542ddf67b04159cac47109579d3d8aa41be1256 100644 (file)
@@ -18,7 +18,7 @@ alias asay_drop "say_team (%l) dropped %w ; impulse 17"
 // =================
 //  gamestart hooks
 // =================
-seta cl_matchcount 0 // incremented by cl_hook_gameend and used by playerstats to know when to 
+seta cl_matchcount 0 // incremented by cl_hook_gameend and used by playerstats to know when to
 alias _cl_hook_gamestart "set _cl_hook_gametype $1; _cl_hook_gamestart_stage2"
 alias _cl_hook_gamestart_stage2 "cl_hook_gamestart_all; cl_hook_gamestart_${_cl_hook_gametype}"
 alias cl_hook_gamestart_all
@@ -127,6 +127,7 @@ set g_ctf_respawn_delay_small_count 1
 set g_ctf_respawn_delay_large 5
 set g_ctf_respawn_delay_large_count 5
 set g_ctf_respawn_delay_max 0
+set g_ctf_respawn_delay_overtimefactor 1.25
 set g_ctf_respawn_waves 0
 set g_ctf_weapon_stay 0
 set g_dm_respawn_delay_small 0
@@ -134,6 +135,7 @@ set g_dm_respawn_delay_small_count 0
 set g_dm_respawn_delay_large 0
 set g_dm_respawn_delay_large_count 0
 set g_dm_respawn_delay_max 0
+set g_dm_respawn_delay_overtimefactor 0
 set g_dm_respawn_waves 0
 set g_dm_weapon_stay 0
 set g_dom_respawn_delay_small 0
@@ -141,6 +143,7 @@ set g_dom_respawn_delay_small_count 0
 set g_dom_respawn_delay_large 0
 set g_dom_respawn_delay_large_count 0
 set g_dom_respawn_delay_max 0
+set g_dom_respawn_delay_overtimefactor 0
 set g_dom_respawn_waves 0
 set g_dom_weapon_stay 0
 set g_lms_respawn_delay_small 0
@@ -148,6 +151,7 @@ set g_lms_respawn_delay_small_count 0
 set g_lms_respawn_delay_large 0
 set g_lms_respawn_delay_large_count 0
 set g_lms_respawn_delay_max 0
+set g_lms_respawn_delay_overtimefactor 0
 set g_lms_respawn_waves 0
 set g_lms_weapon_stay 0
 set g_tdm_respawn_delay_small 0
@@ -155,6 +159,7 @@ set g_tdm_respawn_delay_small_count 0
 set g_tdm_respawn_delay_large 0
 set g_tdm_respawn_delay_large_count 0
 set g_tdm_respawn_delay_max 0
+set g_tdm_respawn_delay_overtimefactor 0
 set g_tdm_respawn_waves 0
 set g_tdm_weapon_stay 0
 set g_ka_respawn_delay_small 0
@@ -162,6 +167,7 @@ set g_ka_respawn_delay_small_count 0
 set g_ka_respawn_delay_large 0
 set g_ka_respawn_delay_large_count 0
 set g_ka_respawn_delay_max 0
+set g_ka_respawn_delay_overtimefactor 0
 set g_ka_respawn_waves 0
 set g_ka_weapon_stay 0
 set g_kh_respawn_delay_small 0
@@ -169,6 +175,7 @@ set g_kh_respawn_delay_small_count 0
 set g_kh_respawn_delay_large 0
 set g_kh_respawn_delay_large_count 0
 set g_kh_respawn_delay_max 0
+set g_kh_respawn_delay_overtimefactor 0
 set g_kh_respawn_waves 0
 set g_kh_weapon_stay 0
 set g_ca_respawn_delay_small 0
@@ -176,6 +183,7 @@ set g_ca_respawn_delay_small_count 0
 set g_ca_respawn_delay_large 0
 set g_ca_respawn_delay_large_count 0
 set g_ca_respawn_delay_max 0
+set g_ca_respawn_delay_overtimefactor 0
 set g_ca_respawn_waves 0
 set g_ca_weapon_stay 0
 set g_nb_respawn_delay_small 0
@@ -183,6 +191,7 @@ set g_nb_respawn_delay_small_count 0
 set g_nb_respawn_delay_large 0
 set g_nb_respawn_delay_large_count 0
 set g_nb_respawn_delay_max 0
+set g_nb_respawn_delay_overtimefactor 0
 set g_nb_respawn_waves 0
 set g_nb_weapon_stay 0
 set g_as_respawn_delay_small 0
@@ -190,6 +199,7 @@ set g_as_respawn_delay_small_count 0
 set g_as_respawn_delay_large 0
 set g_as_respawn_delay_large_count 0
 set g_as_respawn_delay_max 0
+set g_as_respawn_delay_overtimefactor 1.25
 set g_as_respawn_waves 0
 set g_as_weapon_stay 0
 set g_ons_respawn_delay_small 0
@@ -197,6 +207,7 @@ set g_ons_respawn_delay_small_count 0
 set g_ons_respawn_delay_large 0
 set g_ons_respawn_delay_large_count 0
 set g_ons_respawn_delay_max 0
+set g_ons_respawn_delay_overtimefactor 0
 set g_ons_respawn_waves 0
 set g_ons_weapon_stay 0
 set g_rc_respawn_delay_small 0
@@ -204,6 +215,7 @@ set g_rc_respawn_delay_small_count 0
 set g_rc_respawn_delay_large 0
 set g_rc_respawn_delay_large_count 0
 set g_rc_respawn_delay_max 0
+set g_rc_respawn_delay_overtimefactor 0
 set g_rc_respawn_waves 0
 set g_rc_weapon_stay 0
 set g_cts_respawn_delay_small -1  // CTS shall have instant respawn.
@@ -211,6 +223,7 @@ set g_cts_respawn_delay_small_count 0
 set g_cts_respawn_delay_large -1  // CTS shall have instant respawn.
 set g_cts_respawn_delay_large_count 0
 set g_cts_respawn_delay_max 0
+set g_cts_respawn_delay_overtimefactor 0
 set g_cts_respawn_waves 0
 set g_cts_weapon_stay 2
 set g_ft_respawn_delay_small 0
@@ -218,6 +231,7 @@ set g_ft_respawn_delay_small_count 0
 set g_ft_respawn_delay_large 0
 set g_ft_respawn_delay_large_count 0
 set g_ft_respawn_delay_max 0
+set g_ft_respawn_delay_overtimefactor 0
 set g_ft_respawn_waves 0
 set g_ft_weapon_stay 0
 set g_inv_respawn_delay_small 0
@@ -225,6 +239,7 @@ set g_inv_respawn_delay_small_count 0
 set g_inv_respawn_delay_large 0
 set g_inv_respawn_delay_large_count 0
 set g_inv_respawn_delay_max 0
+set g_inv_respawn_delay_overtimefactor 0
 set g_inv_respawn_waves 0
 set g_inv_weapon_stay 0
 
index 314858780bf7f6917035c71a10c89f66e7bd7ecb..7bc76180503dc47074e7b8cade028f199089c6b2 100644 (file)
@@ -253,6 +253,7 @@ int autocvar_g_respawn_delay_small_count;
 float autocvar_g_respawn_delay_large;
 int autocvar_g_respawn_delay_large_count;
 float autocvar_g_respawn_delay_max;
+float autocvar_g_respawn_delay_overtimefactor;
 bool autocvar_g_respawn_delay_forced;
 bool autocvar_g_respawn_ghosts;
 float autocvar_g_respawn_ghosts_maxtime;
index fa5ac0f3e7f8996da2e6c5a20ab84b965b27de67..91ba9cc28148c24269af354b938b2bad70cdd31d 100644 (file)
@@ -224,6 +224,15 @@ void calculate_player_respawn_time(entity this)
        float sdelay_large_count = GAMETYPE_DEFAULTED_SETTING(respawn_delay_large_count);
        float waves = GAMETYPE_DEFAULTED_SETTING(respawn_waves);
 
+       // increase spawn delay in overtime
+       if (checkrules_overtimesadded)
+       {
+               float delay_overtimefactor = pow(GAMETYPE_DEFAULTED_SETTING(respawn_delay_overtimefactor), checkrules_overtimesadded);
+               sdelay_small *= delay_overtimefactor;
+               sdelay_large *= delay_overtimefactor;
+               sdelay_max *= delay_overtimefactor;
+       }
+
        float pcount = 1;  // Include myself whether or not team is already set right and I'm a "player".
        if (teamplay)
        {