/client/proc/show_gm_status()
set category = "Debug"
set name = "Show GM Status"
set desc = "Shows you what the GM is thinking. If only that existed in real life..."
game_master.interact(usr)
/datum/game_master/proc/interact(var/client/user)
if(!user)
return
var/HTML = "
Game Master AI"
HTML += "\[Toggle Time Restrictions\] | \
\[Toggle GM\] | \
\[Force Event Decision\]
"
HTML += "Status: [pre_action_checks() ? "Ready" : "Suppressed"]
"
HTML += "Staleness: [staleness] \[Adjust\]
"
HTML += "Danger: [danger] \[Adjust\]
"
HTML += "Actions available;
"
for(var/datum/gm_action/action in available_actions)
if(action.enabled == FALSE)
continue
HTML += "[action.name] ([english_list(action.departments)]) (weight: [action.get_weight()]) \[Force\]
"
HTML += "
"
HTML += "All living mobs activity: [metric.assess_all_living_mobs()]%
"
HTML += "All ghost activity: [metric.assess_all_dead_mobs()]%
"
HTML += "
"
HTML += "Departmental activity;
"
for(var/department in metric.departments)
HTML += " [department] : [metric.assess_department(department)]%
"
HTML += "
"
HTML += "Activity of players;
"
for(var/mob/player in player_list)
HTML += " [player] ([player.key]) : [metric.assess_player_activity(player)]%
"
HTML +=""
user << browse(HTML, "window=log;size=400x450;border=1;can_resize=1;can_close=1;can_minimize=1")
/datum/game_master/Topic(href, href_list)
if(..())
return
if(!is_admin(usr))
message_admins("[usr] has attempted to modify the Game Master values without being an admin.")
return
if(href_list["toggle_time_restrictions"])
ignore_time_restrictions = !ignore_time_restrictions
message_admins("GM event time restrictions was [ignore_time_restrictions ? "dis" : "en"]abled by [usr.key].")
if(href_list["force_choose_event"])
start_action()
message_admins("[usr.key] forced the Game Master to choose an event immediately.")
if(href_list["suspend"])
suspended = !suspended
message_admins("GM was [suspended ? "dis" : "en"]abled by [usr.key].")
if(href_list["adjust_staleness"])
var/amount = input(usr, "How much staleness should be added or subtracted?", "Game Master") as null|num
if(amount)
adjust_staleness(amount)
message_admins("GM staleness was adjusted by [amount] by [usr.key].")
if(href_list["adjust_danger"])
var/amount = input(usr, "How much danger should be added or subtracted?", "Game Master") as null|num
if(amount)
adjust_danger(amount)
message_admins("GM danger was adjusted by [amount] by [usr.key].")
interact(usr) // To refresh the UI.
/datum/gm_action/Topic(href, href_list)
if(..())
return
if(!is_admin(usr))
message_admins("[usr] has attempted to force an event without being an admin.")
return
if(href_list["force"])
gm.run_action(src)
message_admins("GM event [name] was forced by [usr.key].")