]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
battle royale: add option to automatically determine squad size
authorJuhu <5894800-Juhu_@users.noreply.gitlab.com>
Sat, 10 Jun 2023 01:34:23 +0000 (03:34 +0200)
committerJuhu <5894800-Juhu_@users.noreply.gitlab.com>
Sat, 10 Jun 2023 01:34:23 +0000 (03:34 +0200)
gamemodes-server.cfg
qcsrc/common/gamemodes/gamemode/br/sv_br.qc

index 06717d27ba2cfcb2baca2d2f232a965c2561acbc..eb4d0a869271364e72e344778b0bc193ea32c065 100644 (file)
@@ -578,7 +578,7 @@ set g_br_not_assault_maps 0 "when this is set, CTF maps will NOT be listed in BR
 set g_br_not_ctf_maps 0 "when this is set, CTF maps will NOT be listed in BR"
 set g_br_not_dm_maps 0 "when this is set, DM maps will NOT be listed in BR"
 set g_br_minplayers 2 "minimum players to start the BR match"
-set g_br_squad_size 3 "maximum squad size"
+set g_br_squad_size 3 "maximum squad size, use 0 or a negative number to determine squad size based on the amount of players up to the specified number or unlimited if 0"
 set g_br_squad_colors 1 "assign each squad a random color scheme and force players to use it"
 set g_br_squad_waypoint_distance 1500 "minimum distance required to show an ally waypoint"
 set g_br_startweapons 0 "when disabled, players land from the dropship without weapons"
index 09abdd58f79bfd7d53ff561a331bf3b5fa66603e..899d05298b29ec73ac69035a82b157bd0cbba361 100644 (file)
@@ -1328,9 +1328,12 @@ void br_Start(){
         ++num_players;
     });
 
-    max_squad_size = max(autocvar_g_br_squad_size, 1);
-    if(num_players <= max_squad_size)
-        max_squad_size = ceil(num_players / 2);
+    if(autocvar_g_br_squad_size >= 1)
+        max_squad_size = min(autocvar_g_br_squad_size, ceil(num_players / 2));
+    else if(autocvar_g_br_squad_size <= -1)
+        max_squad_size = min(-autocvar_g_br_squad_size, floor(num_players / 2));
+    else
+        max_squad_size = floor(num_players / 2);
 
     for(int num_squads = 0; (num_squads * max_squad_size) < num_players; ++num_squads)
     {