diff --git a/code/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm index 23fd8ab112a..2549d62b2ff 100644 --- a/code/game/gamemodes/gameticker.dm +++ b/code/game/gamemodes/gameticker.dm @@ -313,7 +313,10 @@ var/global/datum/controller/gameticker/ticker if(!delay_end) sleep(restart_timeout) - world.Reboot() + if(!delay_end) + world.Reboot() + else + world << "\blue An admin has delayed the round end" else world << "\blue An admin has delayed the round end" diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 7a14927c057..2d956d6928a 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -799,10 +799,16 @@ var/global/floorIsLava = 0 /datum/admins/proc/delay() set category = "Server" - set desc="Delay the game start" + set desc="Delay the game start/end" set name="Delay" if (!ticker || ticker.current_state != GAME_STATE_PREGAME) - return alert("Too late... The game has already started!", null, null, null, null, null) + if (src.rank in list("Badmin", "Game Admin", "Game Master")) + ticker.delay_end = !ticker.delay_end + log_admin("[key_name(usr)] [ticker.delay_end ? "delayed the round end" : "has made the round end normally"].") + message_admins("\blue [key_name(usr)] [ticker.delay_end ? "delayed the round end" : "has made the round end normally"].", 1) + else + usr << "\red You are not a high enough rank." + return //alert("Round end delayed", null, null, null, null, null) going = !( going ) if (!( going )) world << "The game start has been delayed."