diff --git a/code/modules/admin/check_antagonists.dm b/code/modules/admin/check_antagonists.dm index b07cb49ddbe..d5d8bebc5f0 100644 --- a/code/modules/admin/check_antagonists.dm +++ b/code/modules/admin/check_antagonists.dm @@ -138,7 +138,10 @@ else dat += "ETA: [(timeleft / 60) % 60]:[add_leading(num2text(timeleft % 60), 2, "0")]
" dat += "End Round Now
" - dat += "[SSticker.delay_end ? "End Round Normally" : "Delay Round End"]
" + if(SSticker.delay_end) + dat += "End Round Normally
" + else + dat += "Delay Round End
" dat += "Enable/Disable CTF
" dat += "Reboot World
" dat += "Check Teams" diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 6a3c85fc0cd..a6f20b79f28 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -159,22 +159,40 @@ else if(href_list["delay_round_end"]) if(!check_rights(R_SERVER)) return - if(!SSticker.delay_end) - SSticker.admin_delay_notice = input(usr, "Enter a reason for delaying the round end", "Round Delay Reason") as null|text - if(isnull(SSticker.admin_delay_notice)) - return - else - if(tgui_alert(usr, "Really cancel current round end delay? The reason for the current delay is: \"[SSticker.admin_delay_notice]\"", "Undelay round end", list("Yes", "No")) != "Yes") - return - SSticker.admin_delay_notice = null - SSticker.delay_end = !SSticker.delay_end - var/reason = SSticker.delay_end ? "for reason: [SSticker.admin_delay_notice]" : "."//laziness - var/msg = "[SSticker.delay_end ? "delayed" : "undelayed"] the round end [reason]" - log_admin("[key_name(usr)] [msg]") - message_admins("[key_name_admin(usr)] [msg]") - if(SSticker.ready_for_reboot && !SSticker.delay_end) //we undelayed after standard reboot would occur - SSticker.standard_reboot() + if(SSticker.delay_end) + tgui_alert(usr, "The round end is already delayed. The reason for the current delay is: \"[SSticker.admin_delay_notice]\"", "Alert", list("Ok")) + return + + var/delay_reason = input(usr, "Enter a reason for delaying the round end", "Round Delay Reason") as null|text + + if(isnull(delay_reason)) + return + + if(SSticker.delay_end) + tgui_alert(usr, "The round end is already delayed. The reason for the current delay is: \"[SSticker.admin_delay_notice]\"", "Alert", list("Ok")) + return + + SSticker.delay_end = TRUE + SSticker.admin_delay_notice = delay_reason + + log_admin("[key_name(usr)] delayed the round end for reason: [SSticker.admin_delay_notice]") + message_admins("[key_name_admin(usr)] delayed the round end for reason: [SSticker.admin_delay_notice]") + else if(href_list["undelay_round_end"]) + if(!check_rights(R_SERVER)) + return + + if(tgui_alert(usr, "Really cancel current round end delay? The reason for the current delay is: \"[SSticker.admin_delay_notice]\"", "Undelay round end", list("Yes", "No")) == "No") + return + + SSticker.admin_delay_notice = null + SSticker.delay_end = FALSE + + log_admin("[key_name(usr)] undelayed the round end.") + if(SSticker.ready_for_reboot) + message_admins("[key_name_admin(usr)] undelayed the round end. You must now manually Reboot World to start the next shift.") + else + message_admins("[key_name_admin(usr)] undelayed the round end.") else if(href_list["end_round"]) if(!check_rights(R_ADMIN)) return