Configuration Controller (#7857)

This commit is contained in:
Selis
2024-04-05 07:44:20 +02:00
committed by GitHub
parent c542e3bac0
commit e1a987c25c
235 changed files with 3294 additions and 989 deletions

View File

@@ -28,7 +28,7 @@ var/global/list/severity_to_string = list(EVENT_LEVEL_MUNDANE = "Mundane", EVENT
if(!next_event_time)
set_event_delay()
if(delayed || !config.allow_random_events)
if(delayed || !CONFIG_GET(flag/allow_random_events)) // CHOMPEdit
next_event_time += (world.time - last_world_time)
else if(world.time > next_event_time)
start_event()
@@ -85,16 +85,28 @@ var/global/list/severity_to_string = list(EVENT_LEVEL_MUNDANE = "Mundane", EVENT
var/last_time = last_event_time[EM]
if(last_time)
var/time_passed = world.time - last_time
var/weight_modifier = max(0, round((config.expected_round_length - time_passed) / 300))
var/weight_modifier = max(0, round((CONFIG_GET(number/expected_round_length) - time_passed) / 300)) // CHOMPEdit
weight = weight - weight_modifier
return weight
/datum/event_container/proc/set_event_delay()
// CHOMPEdit Start
var/list/event_delays
switch(severity)
if(EVENT_LEVEL_MUNDANE)
event_delays = CONFIG_GET(keyed_list/event_first_run_mundane)
if(EVENT_LEVEL_MODERATE)
event_delays = CONFIG_GET(keyed_list/event_first_run_moderate)
if(EVENT_LEVEL_MAJOR)
event_delays = CONFIG_GET(keyed_list/event_first_run_major)
// If the next event time has not yet been set and we have a custom first time start
if(next_event_time == 0 && config.event_first_run[severity])
var/lower = config.event_first_run[severity]["lower"]
var/upper = config.event_first_run[severity]["upper"]
if(next_event_time == 0 && event_delays)
var/lower = (event_delays["lower"] MINUTES)
var/upper = (event_delays["upper"] MINUTES)
// CHOMPEdit End
var/event_delay = rand(lower, upper)
next_event_time = world.time + event_delay
// Otherwise, follow the standard setup process
@@ -113,7 +125,7 @@ var/global/list/severity_to_string = list(EVENT_LEVEL_MUNDANE = "Mundane", EVENT
playercount_modifier = 0.8
playercount_modifier = playercount_modifier * delay_modifier
var/event_delay = rand(config.event_delay_lower[severity], config.event_delay_upper[severity]) * playercount_modifier
var/event_delay = rand(CONFIG_GET(number_list/event_delay_lower)[severity] MINUTES, CONFIG_GET(number_list/event_delay_upper)[severity] MINUTES) * playercount_modifier // CHOMPEdit
next_event_time = world.time + event_delay
log_debug("Next event of severity [severity_to_string[severity]] in [(next_event_time - world.time)/600] minutes.")

View File

@@ -24,7 +24,7 @@ var/list/event_last_fired = list()
//Always triggers an event when called, dynamically chooses events based on job population
/proc/spawn_dynamic_event()
if(!config.allow_random_events)
if(!CONFIG_GET(flag/allow_random_events)) // CHOMPEdit
return
var/minutes_passed = world.time/600
@@ -236,10 +236,10 @@ var/list/event_last_fired = list()
if(M.mind.assigned_role == "Botanist")
active_with_role["Botanist"]++
if(M.mind.assigned_role == "Head of Security") //CHOMP Add
active_with_role["Head of Security"]++ //CHOMP Add
if(M.mind.assigned_role == "Warden") //CHOMP Add
active_with_role["Warden"]++ //CHOMP Add

View File

@@ -19,7 +19,7 @@
/datum/controller/subsystem/events/proc/GetInteractWindow()
var/html = "<A align='right' href='?src=\ref[src];refresh=1'>Refresh</A>"
html += "<A align='right' href='?src=\ref[src];pause_all=[!config.allow_random_events]'>Pause All - [config.allow_random_events ? "Pause" : "Resume"]</A>"
html += "<A align='right' href='?src=\ref[src];pause_all=[!CONFIG_GET(flag/allow_random_events)]'>Pause All - [CONFIG_GET(flag/allow_random_events) ? "Pause" : "Resume"]</A>" // CHOMPEdit
if(selected_event_container)
var/event_time = max(0, selected_event_container.next_event_time - world.time)
@@ -153,8 +153,8 @@
EC.delayed = !EC.delayed
log_and_message_admins("has [EC.delayed ? "paused" : "resumed"] countdown for [severity_to_string[EC.severity]] events.")
else if(href_list["pause_all"])
config.allow_random_events = text2num(href_list["pause_all"])
log_and_message_admins("has [config.allow_random_events ? "resumed" : "paused"] countdown for all events.")
CONFIG_SET(flag/allow_random_events, text2num(href_list["pause_all"])) // CHOMPEdit
log_and_message_admins("has [CONFIG_GET(flag/allow_random_events) ? "resumed" : "paused"] countdown for all events.") // CHOMPEdit
else if(href_list["interval"])
var/delay = tgui_input_number(usr, "Enter delay modifier. A value less than one means events fire more often, higher than one less often.", "Set Interval Modifier")
if(delay && delay > 0)