Adds a server admin version of end round now; a semi obscure admin tool that came about in the mulligan push but never really got advertised. It will print out a round end report and attempt to database round stats before restarting. Suggested use is when the round has SLOWED down to an unplayble crawl for some reason but the game is still technically responcive. Pressing end round doesn't preclude the use of reset if it doesn't seem to be working, but end round should usually be tried first.

Removes the 20 second confirmation between prompts for the normal admin version of end round now.

If admins force end a round escape objectives will be good faith greentexted if the antagonists were still in a position to escape alive.

The survival rate will always be printed at round end now, even if the shuttle makes it to centcom (evac rate will be printed too in that case).
This commit is contained in:
Incoming
2015-07-20 23:06:42 -04:00
parent 0f37ac3c14
commit 59217b2b06
5 changed files with 20 additions and 5 deletions

View File

@@ -370,7 +370,6 @@ var/datum/subsystem/ticker/ticker
world << "<BR>[TAB]Total Population: <B>[joined_player_list.len]</B>"
if(station_evacuated)
world << "<BR>[TAB]Evacuation Rate: <B>[num_escapees] ([round((num_escapees/joined_player_list.len)*100, 0.1)]%)</B>"
else
world << "<BR>[TAB]Survival Rate: <B>[num_survivors] ([round((num_survivors/joined_player_list.len)*100, 0.1)]%)</B>"
world << "<BR>"

View File

@@ -247,10 +247,12 @@
return 0
if(isbrain(owner.current))
return 0
if(SSshuttle.emergency.mode < SHUTTLE_ENDGAME)
return 0
if(!owner.current || owner.current.stat == DEAD)
return 0
if(ticker.force_ending) //This one isn't their fault, so lets just assume good faith
return 1
if(SSshuttle.emergency.mode < SHUTTLE_ENDGAME)
return 0
var/turf/location = get_turf(owner.current)
if(!location)
return 0

View File

@@ -418,6 +418,20 @@ var/global/floorIsLava = 0
feedback_add_details("admin_verb","R") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
world.Reboot("Initiated by [usr.client.holder.fakekey ? "Admin" : usr.key].", "end_error", "admin reboot - by [usr.key] [usr.client.holder.fakekey ? "(stealth)" : ""]", 10)
/datum/admins/proc/end_round()
set category = "Server"
set name = "End Round"
set desc = "Attempts to produce a round end report and then restart the server organically."
if (!usr.client.holder)
return
var/confirm = alert("End the round and restart the game world?", "End Round", "Yes", "Cancel")
if(confirm == "Cancel")
return
if(confirm == "Yes")
ticker.force_ending = 1
feedback_add_details("admin_verb","ER") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/datum/admins/proc/announce()
set category = "Special Verbs"

View File

@@ -98,6 +98,7 @@ var/list/admin_verbs_spawn = list(
var/list/admin_verbs_server = list(
/datum/admins/proc/startnow,
/datum/admins/proc/restart,
/datum/admins/proc/end_round,
/datum/admins/proc/delay,
/datum/admins/proc/toggleaban,
/client/proc/toggle_log_hrefs,

View File

@@ -352,7 +352,6 @@
message_admins("<span class='adminnotice'>[key_name_admin(usr)] is considering ending the round.</span>")
if(alert(usr, "This will end the round, are you SURE you want to do this?", "Confirmation", "Yes", "No") == "Yes")
spawn(200) //I wish you would step back from that ledge my friend
if(alert(usr, "Final Confirmation: End the round NOW?", "Confirmation", "Yes", "No") == "Yes")
message_admins("<span class='adminnotice'>[key_name_admin(usr)] has ended the round.</span>")
ticker.force_ending = 1 //Yeah there we go APC destroyed mission accomplished