From f41c17bf8b390c0aaec7dec4da40a2a0138d7a64 Mon Sep 17 00:00:00 2001 From: Git-Nivrak <59925169+Git-Nivrak@users.noreply.github.com> Date: Mon, 20 May 2024 00:12:48 +0300 Subject: [PATCH] Roundstart xenomorph count changes (#6291) # About the pull request Changes roundstart xeno amounts to try to keep a 1:3 to 1:4 xeno to combat role ratio # Explain why it's good for the game https://imgur.com/5dSXlmX This is just an example but this image is taken pre-drop and there are 23 (25 if you count IOs who do not take part on the front for the most part) compared to 12 xenos (one died to pred), the goal was always to keep a 1:3 or 1:4 ratio and it is currently not working and causing lowpop rounds to be onesided steamrolls. Every time marines win in lowpop you hear after the round from xenos "we had 7 burrowed" so yeah something here is wrong. # Testing Photographs and Procedure
Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: balance: Latejoin marines to larva ratio changed to 1:4 for the first 15 minutes, going back to 1:2.5 afterwards. /:cl: --- code/__DEFINES/mode.dm | 1 + code/game/gamemodes/cm_initialize.dm | 1 + code/modules/mob/new_player/new_player.dm | 9 +++++++-- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/code/__DEFINES/mode.dm b/code/__DEFINES/mode.dm index fea9ebeebb2c..ca35fadd396b 100644 --- a/code/__DEFINES/mode.dm +++ b/code/__DEFINES/mode.dm @@ -77,6 +77,7 @@ #define ROUNDSTATUS_FOG_DOWN 1 #define ROUNDSTATUS_PODDOORS_OPEN 2 +#define LATEJOIN_MARINES_PER_LATEJOIN_LARVA_EARLY 4 #define LATEJOIN_MARINES_PER_LATEJOIN_LARVA 2.5 //================================================= diff --git a/code/game/gamemodes/cm_initialize.dm b/code/game/gamemodes/cm_initialize.dm index c9c180295b1a..96e2db4f3b38 100644 --- a/code/game/gamemodes/cm_initialize.dm +++ b/code/game/gamemodes/cm_initialize.dm @@ -74,6 +74,7 @@ Additional game mode variables. var/monkey_amount = 0 //How many monkeys do we spawn on this map ? var/list/monkey_types = list() //What type of monkeys do we spawn var/latejoin_tally = 0 //How many people latejoined Marines + var/latejoin_larva_drop_early = LATEJOIN_MARINES_PER_LATEJOIN_LARVA_EARLY var/latejoin_larva_drop = LATEJOIN_MARINES_PER_LATEJOIN_LARVA //A larva will spawn in once the tally reaches this level. If set to 0, no latejoin larva drop /// Amount of latejoin_tally already awarded as larvas var/latejoin_larva_used = 0 diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 1883b0ed9292..1bdf075c938e 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -267,8 +267,13 @@ sq.max_engineers = engi_slot_formula(GLOB.clients.len) sq.max_medics = medic_slot_formula(GLOB.clients.len) - if(SSticker.mode.latejoin_larva_drop && SSticker.mode.latejoin_tally - SSticker.mode.latejoin_larva_used >= SSticker.mode.latejoin_larva_drop) - SSticker.mode.latejoin_larva_used += SSticker.mode.latejoin_larva_drop + var/latejoin_larva_drop = SSticker.mode.latejoin_larva_drop + + if (ROUND_TIME < XENO_ROUNDSTART_PROGRESS_TIME_2) + latejoin_larva_drop = SSticker.mode.latejoin_larva_drop_early + + if(latejoin_larva_drop && SSticker.mode.latejoin_tally - SSticker.mode.latejoin_larva_used >= latejoin_larva_drop) + SSticker.mode.latejoin_larva_used += latejoin_larva_drop var/datum/hive_status/hive for(var/hivenumber in GLOB.hive_datum) hive = GLOB.hive_datum[hivenumber]