From b19a66ba513402eaad84c9fc64fcb1dd595c12d0 Mon Sep 17 00:00:00 2001 From: Incoming Date: Fri, 1 May 2015 13:34:34 -0400 Subject: [PATCH 1/2] Fixes another instance of FIGHTVALE because the replacementmode didn't realize that the lists of antags are kept in the ticker.mode gamemode and not itself. Clears up some language issues that was making the check antag panel a little harder to read than it needed to be. --- code/game/gamemodes/changeling/changeling.dm | 4 ++-- code/game/gamemodes/changeling/traitor_chan.dm | 4 ++-- code/game/gamemodes/traitor/traitor.dm | 4 ++-- code/modules/admin/player_panel.dm | 4 +++- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm index c8d581d08e9..3ea33223508 100644 --- a/code/game/gamemodes/changeling/changeling.dm +++ b/code/game/gamemodes/changeling/changeling.dm @@ -82,9 +82,9 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon" /datum/game_mode/changeling/make_antag_chance(var/mob/living/carbon/human/character) //Assigns changeling to latejoiners var/changelingcap = min( round(joined_player_list.len/(config.changeling_scaling_coeff*2))+2, round(joined_player_list.len/config.changeling_scaling_coeff) ) - if(changelings.len >= changelingcap) //Caps number of latejoin antagonists + if(ticker.mode.changelings.len >= changelingcap) //Caps number of latejoin antagonists return - if(changelings.len <= (changelingcap - 2) || prob(100 - (config.changeling_scaling_coeff*2))) + if(ticker.mode.changelings.len <= (changelingcap - 2) || prob(100 - (config.changeling_scaling_coeff*2))) if(character.client.prefs.be_special & BE_CHANGELING) if(!jobban_isbanned(character.client, "changeling") && !jobban_isbanned(character.client, "Syndicate")) if(age_check(character.client)) diff --git a/code/game/gamemodes/changeling/traitor_chan.dm b/code/game/gamemodes/changeling/traitor_chan.dm index 25960b275f3..1a228ff3c4d 100644 --- a/code/game/gamemodes/changeling/traitor_chan.dm +++ b/code/game/gamemodes/changeling/traitor_chan.dm @@ -66,10 +66,10 @@ /datum/game_mode/traitor/changeling/make_antag_chance(var/mob/living/carbon/human/character) //Assigns changeling to latejoiners var/changelingcap = min( round(joined_player_list.len/(config.changeling_scaling_coeff*4))+2, round(joined_player_list.len/(config.changeling_scaling_coeff*2)) ) - if(changelings.len >= changelingcap) //Caps number of latejoin antagonists + if(ticker.mode.changelings.len >= changelingcap) //Caps number of latejoin antagonists ..() return - if(changelings.len <= (changelingcap - 2) || prob(100 / (config.changeling_scaling_coeff * 4))) + if(ticker.mode.changelings.len <= (changelingcap - 2) || prob(100 / (config.changeling_scaling_coeff * 4))) if(character.client.prefs.be_special & BE_CHANGELING) if(!jobban_isbanned(character.client, "changeling") && !jobban_isbanned(character.client, "Syndicate")) if(age_check(character.client)) diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index 37e40099e0b..eab9be0c79d 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -75,9 +75,9 @@ /datum/game_mode/traitor/make_antag_chance(var/mob/living/carbon/human/character) //Assigns traitor to latejoiners var/traitorcap = min(round(joined_player_list.len / (config.traitor_scaling_coeff * 2)) + 2 + num_modifier, round(joined_player_list.len/config.traitor_scaling_coeff) + num_modifier ) - if(traitors.len >= traitorcap) //Upper cap for number of latejoin antagonists + if(ticker.mode.traitors.len >= traitorcap) //Upper cap for number of latejoin antagonists return - if(traitors.len <= (traitorcap - 2) || prob(100 / (config.traitor_scaling_coeff * 2))) + if(ticker.mode.traitors.len <= (traitorcap - 2) || prob(100 / (config.traitor_scaling_coeff * 2))) if(character.client.prefs.be_special & BE_TRAITOR) if(!jobban_isbanned(character.client, "traitor") && !jobban_isbanned(character.client, "Syndicate")) if(age_check(character.client)) diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm index 1154a8591e1..01bf8b06c6f 100644 --- a/code/modules/admin/player_panel.dm +++ b/code/modules/admin/player_panel.dm @@ -307,9 +307,11 @@ /datum/admins/proc/check_antagonists() if (ticker && ticker.current_state >= GAME_STATE_PLAYING) var/dat = "Round Status

Round Status

" - dat += "Current Game Mode: [ticker.mode.name]
" if(ticker.mode.replacementmode) + dat += "Former Game Mode: [ticker.mode.name]
" dat += "Replacement Game Mode: [ticker.mode.replacementmode.name]
" + else + dat += "Current Game Mode: [ticker.mode.name]
" dat += "Round Duration: [round(world.time / 36000)]:[add_zero("[world.time / 600 % 60]", 2)]:[world.time / 100 % 6][world.time / 100 % 10]
" dat += "Emergency shuttle
" if(SSshuttle.emergency.mode < SHUTTLE_CALL) From 9b3f98571c3f82888f28a67518924e9098965e6d Mon Sep 17 00:00:00 2001 From: Incoming Date: Sat, 2 May 2015 00:00:41 -0400 Subject: [PATCH 2/2] mulligan will no longer mulligan a round into the same mode. Because of how scaling works this would at best only create one or two additional antags. At worst it wouldn't create any antagonists, and mulligan would get frustrated and reroll after its failure. --- code/controllers/configuration.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index ec38e7265bb..137c1625a10 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -562,7 +562,7 @@ datum/configuration/proc/get_runnable_midround_modes(crew) var/list/datum/game_mode/runnable_modes = new - for(var/T in (typesof(/datum/game_mode) - /datum/game_mode)) + for(var/T in (typesof(/datum/game_mode) - /datum/game_mode - ticker.mode.type)) var/datum/game_mode/M = new T() if(!(M.config_tag in modes)) qdel(M)