mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-16 20:52:33 +00:00
[MIRROR] Moves dynamic ruleset execute buttons + fixes forced rulesets ignoring configs. (#1403)
* Moves dynamic ruleset execute buttons + fixes forced rulesets ignoring configs. (#54477) Moves buttons for forcing dynamic rulesets from game panel to game mode panel, and as a side effect fixes forced midround/latejoin rulesets ignoring configurations. Also fixes forced roundstart rules ignoring configs. * Moves dynamic ruleset execute buttons + fixes forced rulesets ignoring configs. Co-authored-by: TheChosenEvilOne <34602646+TheChosenEvilOne@users.noreply.github.com>
This commit is contained in:
@@ -115,6 +115,11 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
|
|||||||
dat += "No stacking (only one round-ender): <a href='?src=\ref[src];[HrefToken()];no_stacking=1'><b>[GLOB.dynamic_no_stacking ? "On" : "Off"]</b></a><br/>"
|
dat += "No stacking (only one round-ender): <a href='?src=\ref[src];[HrefToken()];no_stacking=1'><b>[GLOB.dynamic_no_stacking ? "On" : "Off"]</b></a><br/>"
|
||||||
dat += "Stacking limit: [GLOB.dynamic_stacking_limit] <a href='?src=\ref[src];[HrefToken()];stacking_limit=1'>\[Adjust\]</A>"
|
dat += "Stacking limit: [GLOB.dynamic_stacking_limit] <a href='?src=\ref[src];[HrefToken()];stacking_limit=1'>\[Adjust\]</A>"
|
||||||
dat += "<br/>"
|
dat += "<br/>"
|
||||||
|
dat += "<A href='?src=\ref[src];[HrefToken()];force_latejoin_rule=1'>\[Force Next Latejoin Ruleset\]</A><br>"
|
||||||
|
if (forced_latejoin_rule)
|
||||||
|
dat += {"<A href='?src=\ref[src];[HrefToken()];clear_forced_latejoin=1'>-> [forced_latejoin_rule.name] <-</A><br>"}
|
||||||
|
dat += "<A href='?src=\ref[src];[HrefToken()];force_midround_rule=1'>\[Execute Midround Ruleset\]</A><br>"
|
||||||
|
dat += "<br />"
|
||||||
dat += "Executed rulesets: "
|
dat += "Executed rulesets: "
|
||||||
if (executed_rules.len > 0)
|
if (executed_rules.len > 0)
|
||||||
dat += "<br/>"
|
dat += "<br/>"
|
||||||
@@ -153,15 +158,33 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
|
|||||||
else if (href_list["injectlate"])
|
else if (href_list["injectlate"])
|
||||||
latejoin_injection_cooldown = 0
|
latejoin_injection_cooldown = 0
|
||||||
forced_injection = TRUE
|
forced_injection = TRUE
|
||||||
message_admins("[key_name(usr)] forced a latejoin injection.", 1)
|
message_admins("[key_name(usr)] forced a latejoin injection.")
|
||||||
else if (href_list["injectmid"])
|
else if (href_list["injectmid"])
|
||||||
midround_injection_cooldown = 0
|
midround_injection_cooldown = 0
|
||||||
forced_injection = TRUE
|
forced_injection = TRUE
|
||||||
message_admins("[key_name(usr)] forced a midround injection.", 1)
|
message_admins("[key_name(usr)] forced a midround injection.")
|
||||||
else if (href_list["threatlog"])
|
else if (href_list["threatlog"])
|
||||||
show_threatlog(usr)
|
show_threatlog(usr)
|
||||||
else if (href_list["stacking_limit"])
|
else if (href_list["stacking_limit"])
|
||||||
GLOB.dynamic_stacking_limit = input(usr,"Change the threat limit at which round-endings rulesets will start to stack.", "Change stacking limit", null) as num
|
GLOB.dynamic_stacking_limit = input(usr,"Change the threat limit at which round-endings rulesets will start to stack.", "Change stacking limit", null) as num
|
||||||
|
else if(href_list["force_latejoin_rule"])
|
||||||
|
var/added_rule = input(usr,"What ruleset do you want to force upon the next latejoiner? This will bypass threat level and population restrictions.", "Rigging Latejoin", null) as null|anything in sortList(latejoin_rules)
|
||||||
|
if (!added_rule)
|
||||||
|
return
|
||||||
|
forced_latejoin_rule = added_rule
|
||||||
|
log_admin("[key_name(usr)] set [added_rule] to proc on the next latejoin.")
|
||||||
|
message_admins("[key_name(usr)] set [added_rule] to proc on the next latejoin.")
|
||||||
|
else if(href_list["clear_forced_latejoin"])
|
||||||
|
forced_latejoin_rule = null
|
||||||
|
log_admin("[key_name(usr)] cleared the forced latejoin ruleset.")
|
||||||
|
message_admins("[key_name(usr)] cleared the forced latejoin ruleset.")
|
||||||
|
else if(href_list["force_midround_rule"])
|
||||||
|
var/added_rule = input(usr,"What ruleset do you want to force right now? This will bypass threat level and population restrictions.", "Execute Ruleset", null) as null|anything in sortList(midround_rules)
|
||||||
|
if (!added_rule)
|
||||||
|
return
|
||||||
|
log_admin("[key_name(usr)] executed the [added_rule] ruleset.")
|
||||||
|
message_admins("[key_name(usr)] executed the [added_rule] ruleset.")
|
||||||
|
picking_specific_rule(added_rule, TRUE)
|
||||||
|
|
||||||
admin_panel() // Refreshes the window
|
admin_panel() // Refreshes the window
|
||||||
|
|
||||||
@@ -341,6 +364,7 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
|
|||||||
message_admins("[GLOB.dynamic_forced_roundstart_ruleset.len] rulesets being forced. Will now attempt to draft players for them.")
|
message_admins("[GLOB.dynamic_forced_roundstart_ruleset.len] rulesets being forced. Will now attempt to draft players for them.")
|
||||||
log_game("DYNAMIC: [GLOB.dynamic_forced_roundstart_ruleset.len] rulesets being forced. Will now attempt to draft players for them.")
|
log_game("DYNAMIC: [GLOB.dynamic_forced_roundstart_ruleset.len] rulesets being forced. Will now attempt to draft players for them.")
|
||||||
for (var/datum/dynamic_ruleset/roundstart/rule in GLOB.dynamic_forced_roundstart_ruleset)
|
for (var/datum/dynamic_ruleset/roundstart/rule in GLOB.dynamic_forced_roundstart_ruleset)
|
||||||
|
configure_ruleset(rule)
|
||||||
message_admins("Drafting players for forced ruleset [rule.name].")
|
message_admins("Drafting players for forced ruleset [rule.name].")
|
||||||
log_game("DYNAMIC: Drafting players for forced ruleset [rule.name].")
|
log_game("DYNAMIC: Drafting players for forced ruleset [rule.name].")
|
||||||
rule.mode = src
|
rule.mode = src
|
||||||
|
|||||||
@@ -430,13 +430,6 @@
|
|||||||
dat += {"<A href='?src=[REF(src)];[HrefToken()];f_dynamic_roundstart_remove=\ref[rule]'>-> [rule.name] <-</A><br>"}
|
dat += {"<A href='?src=[REF(src)];[HrefToken()];f_dynamic_roundstart_remove=\ref[rule]'>-> [rule.name] <-</A><br>"}
|
||||||
dat += "<A href='?src=[REF(src)];[HrefToken()];f_dynamic_roundstart_clear=1'>(Clear Rulesets)</A><br>"
|
dat += "<A href='?src=[REF(src)];[HrefToken()];f_dynamic_roundstart_clear=1'>(Clear Rulesets)</A><br>"
|
||||||
dat += "<A href='?src=[REF(src)];[HrefToken()];f_dynamic_options=1'>(Dynamic mode options)</A><br>"
|
dat += "<A href='?src=[REF(src)];[HrefToken()];f_dynamic_options=1'>(Dynamic mode options)</A><br>"
|
||||||
else if (SSticker.IsRoundInProgress())
|
|
||||||
dat += "<A href='?src=[REF(src)];[HrefToken()];f_dynamic_latejoin=1'>(Force Next Latejoin Ruleset)</A><br>"
|
|
||||||
if (SSticker && SSticker.mode && istype(SSticker.mode,/datum/game_mode/dynamic))
|
|
||||||
var/datum/game_mode/dynamic/mode = SSticker.mode
|
|
||||||
if (mode.forced_latejoin_rule)
|
|
||||||
dat += {"<A href='?src=[REF(src)];[HrefToken()];f_dynamic_latejoin_clear=1'>-> [mode.forced_latejoin_rule.name] <-</A><br>"}
|
|
||||||
dat += "<A href='?src=[REF(src)];[HrefToken()];f_dynamic_midround=1'>(Execute Midround Ruleset!)</A><br>"
|
|
||||||
dat += "<hr/>"
|
dat += "<hr/>"
|
||||||
if(SSticker.IsRoundInProgress())
|
if(SSticker.IsRoundInProgress())
|
||||||
dat += "<a href='?src=[REF(src)];[HrefToken()];gamemode_panel=1'>(Game Mode Panel)</a><BR>"
|
dat += "<a href='?src=[REF(src)];[HrefToken()];gamemode_panel=1'>(Game Mode Panel)</a><BR>"
|
||||||
|
|||||||
@@ -655,53 +655,6 @@
|
|||||||
log_admin("[key_name(usr)] removed [rule] from the forced roundstart rulesets.")
|
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)
|
message_admins("[key_name(usr)] removed [rule] from the forced roundstart rulesets.", 1)
|
||||||
|
|
||||||
else if(href_list["f_dynamic_latejoin"])
|
|
||||||
if(!check_rights(R_ADMIN))
|
|
||||||
return
|
|
||||||
if(!SSticker || !SSticker.mode)
|
|
||||||
return alert(usr, "The game must start first.", null, null, null, null)
|
|
||||||
if(GLOB.master_mode != "dynamic")
|
|
||||||
return alert(usr, "The game mode has to be dynamic mode!", null, null, null, null)
|
|
||||||
var/latejoin_rules = list()
|
|
||||||
for (var/rule in subtypesof(/datum/dynamic_ruleset/latejoin))
|
|
||||||
var/datum/dynamic_ruleset/latejoin/newrule = new rule()
|
|
||||||
latejoin_rules[newrule.name] = newrule
|
|
||||||
var/added_rule = input(usr,"What ruleset do you want to force upon the next latejoiner? This will bypass threat level and population restrictions.", "Rigging Latejoin", null) as null|anything in sortList(latejoin_rules)
|
|
||||||
if (added_rule)
|
|
||||||
var/datum/game_mode/dynamic/mode = SSticker.mode
|
|
||||||
mode.forced_latejoin_rule = latejoin_rules[added_rule]
|
|
||||||
log_admin("[key_name(usr)] set [added_rule] to proc on the next latejoin.")
|
|
||||||
message_admins("[key_name(usr)] set [added_rule] to proc on the next latejoin.", 1)
|
|
||||||
Game()
|
|
||||||
|
|
||||||
else if(href_list["f_dynamic_latejoin_clear"])
|
|
||||||
if(!check_rights(R_ADMIN))
|
|
||||||
return
|
|
||||||
if (SSticker && SSticker.mode && istype(SSticker.mode,/datum/game_mode/dynamic))
|
|
||||||
var/datum/game_mode/dynamic/mode = SSticker.mode
|
|
||||||
mode.forced_latejoin_rule = null
|
|
||||||
Game()
|
|
||||||
log_admin("[key_name(usr)] cleared the forced latejoin ruleset.")
|
|
||||||
message_admins("[key_name(usr)] cleared the forced latejoin ruleset.", 1)
|
|
||||||
|
|
||||||
else if(href_list["f_dynamic_midround"])
|
|
||||||
if(!check_rights(R_ADMIN))
|
|
||||||
return
|
|
||||||
if(!SSticker || !SSticker.mode)
|
|
||||||
return alert(usr, "The game must start first.", null, null, null, null)
|
|
||||||
if(GLOB.master_mode != "dynamic")
|
|
||||||
return alert(usr, "The game mode has to be dynamic mode!", null, null, null, null)
|
|
||||||
var/midround_rules = list()
|
|
||||||
for (var/rule in subtypesof(/datum/dynamic_ruleset/midround))
|
|
||||||
var/datum/dynamic_ruleset/midround/newrule = new rule()
|
|
||||||
midround_rules[newrule.name] = rule
|
|
||||||
var/added_rule = input(usr,"What ruleset do you want to force right now? This will bypass threat level and population restrictions.", "Execute Ruleset", null) as null|anything in sortList(midround_rules)
|
|
||||||
if (added_rule)
|
|
||||||
var/datum/game_mode/dynamic/mode = SSticker.mode
|
|
||||||
log_admin("[key_name(usr)] executed the [added_rule] ruleset.")
|
|
||||||
message_admins("[key_name(usr)] executed the [added_rule] ruleset.", 1)
|
|
||||||
mode.picking_specific_rule(midround_rules[added_rule],1)
|
|
||||||
|
|
||||||
else if (href_list["f_dynamic_options"])
|
else if (href_list["f_dynamic_options"])
|
||||||
if(!check_rights(R_ADMIN))
|
if(!check_rights(R_ADMIN))
|
||||||
return
|
return
|
||||||
|
|||||||
Reference in New Issue
Block a user