From 3b1304f43293095a4f95e3285bcaec314680ef37 Mon Sep 17 00:00:00 2001 From: Putnam3145 Date: Wed, 2 Feb 2022 17:38:19 -0800 Subject: [PATCH] Weekly dynamic days --- code/controllers/configuration/entries/dynamic.dm | 4 ++++ code/modules/holiday/dynamic.dm | 10 ++++++++++ tgstation.dme | 1 + 3 files changed, 15 insertions(+) create mode 100644 code/modules/holiday/dynamic.dm diff --git a/code/controllers/configuration/entries/dynamic.dm b/code/controllers/configuration/entries/dynamic.dm index 935164352e..98203b7d8a 100644 --- a/code/controllers/configuration/entries/dynamic.dm +++ b/code/controllers/configuration/entries/dynamic.dm @@ -94,6 +94,10 @@ config_entry_value = 10 min_val = 0 +/datum/config_entry/keyed_list/dynamic_mode_days + key_mode = KEY_MODE_TEXT + value_mode = VALUE_MODE_FLAG + /datum/config_entry/keyed_list/storyteller_weight key_mode = KEY_MODE_TEXT value_mode = VALUE_MODE_NUM diff --git a/code/modules/holiday/dynamic.dm b/code/modules/holiday/dynamic.dm new file mode 100644 index 0000000000..fb50ea72ca --- /dev/null +++ b/code/modules/holiday/dynamic.dm @@ -0,0 +1,10 @@ +/datum/holiday/dynamic + name = "Dynamic Day" + +/datum/holiday/dynamic/shouldCelebrate(dd, mm, yy, ww, ddd) + var/list/days = CONFIG_GET(keyed_list/dynamic_mode_days) + return ddd in days + +/datum/holiday/dynamic/celebrate() + GLOB.dynamic_forced_threat_level = rand(90, 100) + CONFIG_SET(string/force_gamemode, "dynamic") // prevents the round vote, which prevents extended diff --git a/tgstation.dme b/tgstation.dme index 1bfe4f7561..b419903683 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -2252,6 +2252,7 @@ #include "code\modules\food_and_drinks\recipes\tablecraft\recipes_spaghetti.dm" #include "code\modules\games\cas.dm" #include "code\modules\games\unum.dm" +#include "code\modules\holiday\dynamic.dm" #include "code\modules\holiday\easter.dm" #include "code\modules\holiday\holidays.dm" #include "code\modules\holiday\halloween\bartholomew.dm"