diff --git a/code/controllers/subsystem/vote.dm b/code/controllers/subsystem/vote.dm index 2412fc6e4f..0ef201bcb2 100644 --- a/code/controllers/subsystem/vote.dm +++ b/code/controllers/subsystem/vote.dm @@ -212,11 +212,17 @@ SUBSYSTEM_DEF(vote) if("dynamic") if(SSticker.current_state > GAME_STATE_PREGAME)//Don't change the mode if the round already started. return message_admins("A vote has tried to change the gamemode, but the game has already started. Aborting.") - GLOB.master_mode = "dynamic" - var/datum/dynamic_storyteller/S = config.pick_storyteller(.) - GLOB.dynamic_storyteller_type = S - GLOB.dynamic_curve_centre = initial(S.curve_centre) - GLOB.dynamic_curve_width = initial(S.curve_width) + if(. == "Secret") + GLOB.master_mode = "secret" + SSticker.save_mode(.) + message_admins("The gamemode has been voted for, and has been changed to: [GLOB.master_mode]") + log_admin("Gamemode has been voted for and switched to: [GLOB.master_mode].") + else + GLOB.master_mode = "dynamic" + var/datum/dynamic_storyteller/S = config.pick_storyteller(.) + GLOB.dynamic_storyteller_type = S + GLOB.dynamic_curve_centre = initial(S.curve_centre) + GLOB.dynamic_curve_width = initial(S.curve_width) if("map") var/datum/map_config/VM = config.maplist[.] message_admins("The map has been voted for and will change to: [VM.map_name]") @@ -323,6 +329,8 @@ SUBSYSTEM_DEF(vote) var/datum/dynamic_storyteller/S = T choices.Add(initial(S.name)) choice_descs.Add(initial(S.desc)) + choices.Add("Secret") + choice_descs.Add("Standard secret. Switches mode if it wins.") if("custom") question = stripped_input(usr,"What is the vote for?") if(!question) diff --git a/code/game/gamemodes/dynamic/dynamic_storytellers.dm b/code/game/gamemodes/dynamic/dynamic_storytellers.dm index e02626c942..3d9411cc3b 100644 --- a/code/game/gamemodes/dynamic/dynamic_storytellers.dm +++ b/code/game/gamemodes/dynamic/dynamic_storytellers.dm @@ -99,48 +99,49 @@ Property weights are: SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough threat to spend") return drafted_rules + +/datum/dynamic_storyteller/cowabunga + name = "Chaotic" + curve_centre = 10 + desc = "Chaos: high. Variation: high. Likely antags: clock cult, revs, wizard." + property_weights = list("extended" = -1, "chaos" = 10) + /datum/dynamic_storyteller/team name = "Teamwork" - desc = "Rules that are likely to get the crew to work together against a common enemy." + desc = "Chaos: high. Variation: low. Likely antags: nukies, clockwork cult, wizard, blob, xenomorph." curve_centre = 2 curve_width = 1.5 property_weights = list("valid" = 3, "trust" = 5) +/datum/dynamic_storyteller/classic + name = "Classic" + desc = "Chaos: medium. Variation: highest. Default dynamic." + +/datum/dynamic_storyteller/memes + name = "Story" + desc = "Chaos: medium. Variation: high. Likely antags: abductors, nukies, wizard, traitor." + curve_width = 4 + property_weights = list("story_potential" = 10, "extended" = 1) + +/datum/dynamic_storyteller/suspicion + name = "Intrigue" + desc = "Chaos: low. Variation: high. Likely antags: traitor, bloodsucker. Rare: revs, blood cult." + curve_centre = -2 + curve_width = 4 + property_weights = list("trust" = -5) + /datum/dynamic_storyteller/liteextended name = "Calm" - desc = "Rules that are likely to lead to rounds that reach their finish at the shuttle autocall." + desc = "Chaos: low. Variation: medium. Likely antags: bloodsuckers, traitors, sentient disease, revenant." curve_centre = -5 curve_width = 0.5 property_weights = list("extended" = 5, "chaos" = -1, "valid" = -1, "story_potential" = 1, "conversion" = -10) /datum/dynamic_storyteller/extended name = "Extended" - desc = "No antags. Few threatening events. The calmest shift imaginable." + desc = "Chaos: none. Variation: none. Likely antags: none." curve_centre = -20 curve_width = 0.5 /datum/dynamic_storyteller/extended/on_start() GLOB.dynamic_forced_extended = TRUE - - -/datum/dynamic_storyteller/memes - name = "Story" - desc = "Rules that might lead to fun stories to tell." - curve_width = 4 - property_weights = list("story_potential" = 10, "extended" = 1) - -/datum/dynamic_storyteller/cowabunga - name = "Cowabunga" - curve_centre = 10 - desc = "The most chaotic rules are weighted heavily here. Rounds are nasty, brutish and short." - property_weights = list("extended" = -1, "chaos" = 10) - -/datum/dynamic_storyteller/suspicion - name = "Intrigue" - desc = "Rules that lead the crew to distrust one another." - curve_width = 4 - property_weights = list("trust" = -5) - -/datum/dynamic_storyteller/classic - name = "Classic" - desc = "Uses default dynamic weights and nothing else. The most variety."