Some Dynamic Logging QoL and Fix'd Forced Rulesets (#28206)

* fix forced rulesets

* better
This commit is contained in:
DeityLink
2020-11-21 17:50:21 +01:00
committed by GitHub
parent d6130140fd
commit 60bd0b21c6
4 changed files with 114 additions and 52 deletions

View File

@@ -679,7 +679,7 @@ var/global/floorIsLava = 0
dat += "<A href='?src=\ref[src];f_dynamic_roundstart=1'>(Force Roundstart Rulesets)</A><br>"
dat += "<A href='?src=\ref[src];f_dynamic_options=1'>(Dynamic mode options)</A><br>"
if (forced_roundstart_ruleset.len > 0)
for(var/datum/dynamic_ruleset/roundstart/rule in forced_roundstart_ruleset)
for(var/datum/forced_ruleset/rule in forced_roundstart_ruleset)
dat += {"<A href='?src=\ref[src];f_dynamic_roundstart_remove=\ref[rule]'>-> [rule.name] <-</A><br>"}
dat += "<A href='?src=\ref[src];f_dynamic_roundstart_clear=1'>(Clear Rulesets)</A><br>"
dat += "<A href='?src=\ref[src];f_dynamic_options=1>Dynamic mode options</a><br/>"

View File

@@ -1644,14 +1644,18 @@
return alert(usr, "The game has already started.", null, null, null, null)
if(master_mode != "Dynamic Mode")
return alert(usr, "The game mode has to be Dynamic Mode!", null, null, null, null)
if (forced_roundstart_ruleset.len > 30)
return alert(usr, "Haven't you already forced enough rulesets?", null, null, null, null)
var/list/datum/dynamic_ruleset/roundstart/roundstart_rules = list()
for (var/rule in subtypesof(/datum/dynamic_ruleset/roundstart))
var/datum/dynamic_ruleset/roundstart/newrule = new rule()
roundstart_rules[newrule.name] = newrule
var/datum/dynamic_ruleset/roundstart/newrule = rule
roundstart_rules += initial(newrule.name)
var/added_rule = input(usr,"What ruleset do you want to force? This will bypass threat level and population restrictions.", "Rigging Roundstart", null) as null|anything in roundstart_rules
if (added_rule)
roundstart_rules[added_rule].calledBy = "[key_name(usr)]"
forced_roundstart_ruleset += roundstart_rules[added_rule]
var/datum/forced_ruleset/forcedrule = new
forcedrule.name = added_rule
forcedrule.calledBy = "[key_name(usr)]"
forced_roundstart_ruleset += forcedrule
log_admin("[key_name(usr)] set [added_rule] to be a forced roundstart ruleset.")
message_admins("[key_name(usr)] set [added_rule] to be a forced roundstart ruleset.", 1)
Game()
@@ -1660,6 +1664,8 @@
if(!check_rights(R_ADMIN))
return
for (var/datum/forced_ruleset/rule in forced_roundstart_ruleset)
qdel(rule)
forced_roundstart_ruleset = list()
Game()
log_admin("[key_name(usr)] cleared the rigged roundstart rulesets. The mode will pick them as normal.")
@@ -1670,8 +1676,9 @@
if(!check_rights(R_ADMIN))
return
var/datum/dynamic_ruleset/roundstart/rule = locate(href_list["f_dynamic_roundstart_remove"])
var/datum/forced_ruleset/rule = locate(href_list["f_dynamic_roundstart_remove"])
forced_roundstart_ruleset -= rule
qdel(rule)
Game()
log_admin("[key_name(usr)] removed [rule] from the forced roundstart rulesets.")
message_admins("[key_name(usr)] removed [rule] from the forced roundstart rulesets.", 1)