From 9b39ede1747991f4fcfc4d98caed1c3fbc4319fd Mon Sep 17 00:00:00 2001 From: Redmoogle Date: Tue, 13 Sep 2022 19:29:14 -0400 Subject: [PATCH 1/2] forbidden --- code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm | 7 +++++++ code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm | 5 +++++ code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm | 6 ++++++ 3 files changed, 18 insertions(+) diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm index 71c91ca698b3..94cd37264434 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm @@ -249,6 +249,13 @@ minimum_players = 25 repeatable = FALSE +/datum/dynamic_ruleset/latejoin/trim_candidates() + . = ..() + for(var/mob/living/carbon/C in candidates) + if(C?.dna?.species && (NOBLOOD in C?.dna?.species.species_traits)) + candidates -= C + continue + /datum/dynamic_ruleset/latejoin/bloodsucker/execute() var/mob/latejoiner = pick(candidates) // This should contain a single player, but in case. assigned += latejoiner.mind diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm index 5ce8cfc667ef..ebe6e567282e 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm @@ -716,6 +716,11 @@ /datum/dynamic_ruleset/midround/bloodsucker/trim_candidates() . = ..() for(var/mob/living/player in living_players) + if(iscarbon(player)) + var/mob/living/carbon/C = player + if(C?.dna?.species && (NOBLOOD in C?.dna?.species.species_traits)) + living_players -= player + continue if(issilicon(player)) // Your assigned role doesn't change when you are turned into a silicon. living_players -= player else if(is_centcom_level(player.z)) diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm index 1e77f5457622..e8d8a168a94b 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm @@ -984,6 +984,12 @@ antag_cap = list("denominator" = 24) minimum_players = 25 +/datum/dynamic_ruleset/roundstart/bloodsucker/trim_candidates() + . = ..() + for(var/mob/living/player in candidates) + if(player?.client?.prefs.pref_species && (NOBLOOD in player.client.prefs.pref_species.species_traits)) + candidates.Remove(player) + /datum/dynamic_ruleset/roundstart/bloodsucker/pre_execute(population) . = ..() var/num_bloodsuckers = get_antag_cap(population) * (scaled_times + 1) From 59865b103836ffe80f5bae213308f9e05f942421 Mon Sep 17 00:00:00 2001 From: Redmoogle Date: Tue, 13 Sep 2022 19:40:28 -0400 Subject: [PATCH 2/2] Update dynamic_rulesets_roundstart.dm --- code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm index e8d8a168a94b..cba1d34270f3 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm @@ -986,7 +986,7 @@ /datum/dynamic_ruleset/roundstart/bloodsucker/trim_candidates() . = ..() - for(var/mob/living/player in candidates) + for(var/mob/player in candidates) if(player?.client?.prefs.pref_species && (NOBLOOD in player.client.prefs.pref_species.species_traits)) candidates.Remove(player)