From 5bed02e36e92cb5d6d671d63e57250b2ddddbaae Mon Sep 17 00:00:00 2001 From: keronshb Date: Wed, 15 Sep 2021 16:12:19 -0400 Subject: [PATCH] More fixes, I don't know --- code/game/gamemodes/dynamic/dynamic.dm | 8 ++++++++ code/game/gamemodes/dynamic/dynamic_rulesets.dm | 2 +- code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm | 2 +- code/game/gamemodes/dynamic/ruleset_picking.dm | 7 ++++--- 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/code/game/gamemodes/dynamic/dynamic.dm b/code/game/gamemodes/dynamic/dynamic.dm index 8dc115a94a..9a50eae3cc 100644 --- a/code/game/gamemodes/dynamic/dynamic.dm +++ b/code/game/gamemodes/dynamic/dynamic.dm @@ -674,6 +674,14 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1) return TRUE return FALSE +/datum/game_mode/dynamic/proc/check_age(client/C, age) + enemy_minimum_age = age + if(get_remaining_days(C) == 0) + enemy_minimum_age = initial(enemy_minimum_age) + return TRUE // Available in 0 days = available right now = player is old enough to play. + enemy_minimum_age = initial(enemy_minimum_age) + return FALSE + /datum/game_mode/dynamic/make_antag_chance(mob/living/carbon/human/newPlayer) if (GLOB.dynamic_forced_extended) return diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets.dm b/code/game/gamemodes/dynamic/dynamic_rulesets.dm index 08aedc2e7b..ef3773b7b6 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets.dm @@ -199,7 +199,7 @@ candidates.Remove(candidate_player) continue - if(candidate_client.check_age(minimum_required_age) > 0) + else if(!mode.check_age(client, minimum_required_age)) candidates.Remove(candidate_player) continue diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm index b23061db9d..9f0f041cda 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm @@ -8,7 +8,7 @@ for(var/mob/P in candidates) if(!P.client || !P.mind || !P.mind.assigned_role) // Are they connected? candidates.Remove(P) - else if (!mode.check_age(P.client, minimum_required_age)) + else if(!mode.check_age(P.client, minimum_required_age)) candidates.Remove(P) else if(P.mind.assigned_role in restricted_roles) // Does their job allow for it? candidates.Remove(P) diff --git a/code/game/gamemodes/dynamic/ruleset_picking.dm b/code/game/gamemodes/dynamic/ruleset_picking.dm index b92bce5522..678c4fdedc 100644 --- a/code/game/gamemodes/dynamic/ruleset_picking.dm +++ b/code/game/gamemodes/dynamic/ruleset_picking.dm @@ -63,13 +63,14 @@ if (!rule.repeatable) latejoin_rules = remove_from_list(latejoin_rules, rule.type) addtimer(CALLBACK(src, .proc/execute_midround_latejoin_rule, rule), rule.delay) + return TRUE /// Mainly here to facilitate delayed rulesets. All midround/latejoin rulesets are executed with a timered callback to this proc. /datum/game_mode/dynamic/proc/execute_midround_latejoin_rule(sent_rule) var/datum/dynamic_ruleset/rule = sent_rule spend_midround_budget(rule.cost) threat_log += "[worldtime2text()]: [rule.ruletype] [rule.name] spent [rule.cost]" - rule.pre_execute(current_players[CURRENT_LIVING_PLAYERS].len) + rule.pre_execute(GLOB.alive_player_list.len) if (rule.execute()) log_game("DYNAMIC: Injected a [rule.ruletype == "latejoin" ? "latejoin" : "midround"] ruleset [rule.name].") if(rule.flags & HIGH_IMPACT_RULESET) @@ -93,7 +94,7 @@ /// Fired when an admin cancels the current midround injection. /datum/game_mode/dynamic/proc/admin_cancel_midround(mob/user, timer_id) if (midround_injection_timer_id != timer_id || !deltimer(midround_injection_timer_id)) - to_chat(user, "Too late!") + to_chat(user, span_notice("Too late!")) return log_admin("[key_name(user)] cancelled the next midround injection.") @@ -104,7 +105,7 @@ /// Fired when an admin requests a different midround injection. /datum/game_mode/dynamic/proc/admin_different_midround(mob/user, timer_id) if (midround_injection_timer_id != timer_id || !deltimer(midround_injection_timer_id)) - to_chat(user, "Too late!") + to_chat(user, span_notice("Too late!")) return midround_injection_timer_id = null