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 0896e19bb9..0f88e36bc1 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -2263,6 +2263,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"