From 562bff95b43c9da100c48fe3414eca0885b5b435 Mon Sep 17 00:00:00 2001 From: Incoming Date: Sun, 10 May 2015 20:06:00 -0400 Subject: [PATCH] Slightly widens the check antagonist panel Makes the "(logged out)" flag on antagonists read "(ghost)" because that's what it's actually tracking Together these fix #9268 Also sneaks a bit of mulligan functionality in so admins can see what the time and life checks for the mulligan system are, and modify them midround if desired. Also shows and allows editing of the "on failure" behavior of mulligans, specifically if they default to instant round ending if the mulligan fails or if it just doesn't create antags. --- code/modules/admin/player_panel.dm | 41 +++++++++++++++++------------- code/modules/admin/topic.dm | 31 ++++++++++++++++++++++ 2 files changed, 54 insertions(+), 18 deletions(-) diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm index 01bf8b06c6f..656097730e6 100644 --- a/code/modules/admin/player_panel.dm +++ b/code/modules/admin/player_panel.dm @@ -329,6 +329,11 @@ dat += ", [config.midround_antag[ticker.mode.config_tag] ? "creating replacement antagonists" : "not creating new antagonists"]
" else dat += "
" + if(config.midround_antag[ticker.mode.config_tag]) + dat += "Time limit: [config.midround_antag_time_check] minutes into round
" + dat += "Living crew limit: [config.midround_antag_life_check * 100]% of crew alive
" + dat += "If limits past: [ticker.mode.round_ends_with_antag_death ? "End The Round" : "Continue As Extended"]
" + dat += "
" dat += "End Round Now
" dat += "[ticker.delay_end ? "End Round Normally" : "Delay Round End"]
" @@ -337,7 +342,7 @@ for(var/datum/mind/N in ticker.mode.syndicates) var/mob/M = N.current if(M) - dat += "[M.real_name][M.client ? "" : " (logged out)"][M.stat == 2 ? " (DEAD)" : ""]" + dat += "[M.real_name][M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""]" dat += "PM" else dat += "Nuclear Operative not found!" @@ -363,18 +368,18 @@ if(!M) dat += "Head Revolutionary not found!" else - dat += "[M.real_name] (Leader)[M.client ? "" : " (logged out)"][M.stat == 2 ? " (DEAD)" : ""]" + dat += "[M.real_name] (Leader)[M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""]" dat += "PM" for(var/datum/mind/N in ticker.mode.revolutionaries) var/mob/M = N.current if(M) - dat += "[M.real_name][M.client ? "" : " (logged out)"][M.stat == 2 ? " (DEAD)" : ""]" + dat += "[M.real_name][M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""]" dat += "PM" dat += "" for(var/datum/mind/N in ticker.mode.get_living_heads()) var/mob/M = N.current if(M) - dat += "" + dat += "" dat += "" var/turf/mob_loc = get_turf(M) dat += "" @@ -389,12 +394,12 @@ if(!M) dat += "" else - dat += "" + dat += "" dat += "" for(var/datum/mind/N in ticker.mode.A_gang) var/mob/M = N.current if(M) - dat += "" + dat += "" dat += "" dat += "
Target(s)Location
[M.real_name][M.client ? "" : " (logged out)"][M.stat == 2 ? " (DEAD)" : ""]
[M.real_name][M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""]PM[mob_loc.loc]
Gang Boss not found!
[M.real_name] (Boss)[M.client ? "" : " (logged out)"][M.stat == 2 ? " (DEAD)" : ""]
[M.real_name] (Boss)[M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""]PM
[M.real_name][M.client ? "" : " (logged out)"][M.stat == 2 ? " (DEAD)" : ""]
[M.real_name][M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""]PM
" @@ -405,12 +410,12 @@ if(!M) dat += "Gang Boss not found!" else - dat += "[M.real_name] (Boss)[M.client ? "" : " (logged out)"][M.stat == 2 ? " (DEAD)" : ""]" + dat += "[M.real_name] (Boss)[M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""]" dat += "PM" for(var/datum/mind/N in ticker.mode.B_gang) var/mob/M = N.current if(M) - dat += "[M.real_name][M.client ? "" : " (logged out)"][M.stat == 2 ? " (DEAD)" : ""]" + dat += "[M.real_name][M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""]" dat += "PM" dat += "" @@ -419,7 +424,7 @@ for(var/datum/mind/changeling in ticker.mode.changelings) var/mob/M = changeling.current if(M) - dat += "[M.mind.changeling.changelingID] as [M.real_name][M.client ? "" : " (logged out)"][M.stat == 2 ? " (DEAD)" : ""]" + dat += "[M.mind.changeling.changelingID] as [M.real_name][M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""]" dat += "PM" dat += "Show Objective" else @@ -431,7 +436,7 @@ for(var/datum/mind/wizard in ticker.mode.wizards) var/mob/M = wizard.current if(M) - dat += "[M.real_name][M.client ? "" : " (logged out)"][M.stat == 2 ? " (DEAD)" : ""]" + dat += "[M.real_name][M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""]" dat += "PM" dat += "Show Objective" else @@ -443,7 +448,7 @@ for(var/datum/mind/N in ticker.mode.cult) var/mob/M = N.current if(M) - dat += "[M.real_name][M.client ? "" : " (logged out)"][M.stat == 2 ? " (DEAD)" : ""]" + dat += "[M.real_name][M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""]" dat += "PM" dat += "" @@ -452,7 +457,7 @@ for(var/datum/mind/traitor in ticker.mode.traitors) var/mob/M = traitor.current if(M) - dat += "[M.real_name][M.client ? "" : " (logged out)"][M.stat == 2 ? " (DEAD)" : ""]" + dat += "[M.real_name][M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""]" dat += "PM" dat += "Show Objective" else @@ -464,7 +469,7 @@ for(var/datum/mind/N in ticker.mode.shadows) var/mob/M = N.current if(M) - dat += "[M.real_name][M.client ? "" : " (logged out)"][M.stat == 2 ? " (DEAD)" : ""]" + dat += "[M.real_name][M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""]" dat += "PM" dat += "" @@ -473,7 +478,7 @@ for(var/datum/mind/N in ticker.mode.thralls) var/mob/M = N.current if(M) - dat += "[M.real_name][M.client ? "" : " (logged out)"][M.stat == 2 ? " (DEAD)" : ""]" + dat += "[M.real_name][M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""]" dat += "PM" dat += "" @@ -482,7 +487,7 @@ for(var/datum/mind/abductor in ticker.mode.abductors) var/mob/M = abductor.current if(M) - dat += "[M.real_name][M.client ? "" : " (logged out)"][M.stat == 2 ? " (DEAD)" : ""]" + dat += "[M.real_name][M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""]" dat += "PM" dat += "Show Objective" else @@ -497,7 +502,7 @@ for(var/datum/mind/blob in mode.infected_crew) var/mob/M = blob.current if(M) - dat += "[M.real_name][M.client ? "" : " (logged out)"][M.stat == 2 ? " (DEAD)" : ""]" + dat += "[M.real_name][M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""]" dat += "PM" else dat += "Blob not found!" @@ -510,7 +515,7 @@ for(var/datum/mind/eek in mode.ape_infectees) var/mob/M = eek.current if(M) - dat += "[M.real_name][M.client ? "" : " (logged out)"][M.stat == 2 ? " (DEAD)" : ""]" + dat += "[M.real_name][M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""]" dat += "PM" else dat += "Monkey not found!" @@ -518,6 +523,6 @@ dat += "" - usr << browse(dat, "window=roundstatus;size=400x500") + usr << browse(dat, "window=roundstatus;size=420x500") else alert("The game hasn't started yet!") diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 700ee386d4c..7f941c2b080 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -283,6 +283,37 @@ message_admins("[key_name_admin(usr)] toggled the round to [config.midround_antag[ticker.mode.config_tag] ? "use" : "skip"] the midround antag system.") check_antagonists() + else if(href_list["alter_midround_time_limit"]) + if(!check_rights(R_ADMIN)) return + + var/timer = input("Enter new maximum time",, config.midround_antag_time_check ) as num + if(timer) + config.midround_antag_time_check = timer + + message_admins("[key_name_admin(usr)] edited the maximum midround antagonist time to [timer] minutes.") + check_antagonists() + + else if(href_list["alter_midround_life_limit"]) + if(!check_rights(R_ADMIN)) return + + var/ratio = input("Enter new life ratio",, config.midround_antag_life_check*100) as num + if(ratio) + config.midround_antag_life_check = ratio/100 + + message_admins("[key_name_admin(usr)] edited the midround antagonist living crew ratio to [ratio * 100]% alive.") + check_antagonists() + + else if(href_list["toggle_noncontinuous_behavior"]) + if(!check_rights(R_ADMIN)) return + + if(!ticker.mode.round_ends_with_antag_death) + ticker.mode.round_ends_with_antag_death = 1 + else + ticker.mode.round_ends_with_antag_death = 0 + + message_admins("[key_name_admin(usr)] edited the midround antagonist system to [ticker.mode.round_ends_with_antag_death ? "end the round" : "continue as extended"] upon failure.") + check_antagonists() + else if(href_list["delay_round_end"]) if(!check_rights(R_SERVER)) return