From e89e7acdb3ca56ff0ab85ab29dcbbbb18d7824dd Mon Sep 17 00:00:00 2001 From: "petethegoat@gmail.com" Date: Mon, 7 May 2012 13:02:42 +0000 Subject: [PATCH] Fixed issue 411. (Thanks Yvarov- http://nanotrasen.com/phpBB3/viewtopic.php?f=16&t=8651) Added Invisty's new field generator sprites. Added a button to check antagonists that stops the world from automatically restarting at round end. It's toggleable, but once the round ends with it on, you'll need to reboot the world manually. (It's under check antagonists because that's where the shuttle stuff is, let me know if I should move it.) git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3565 316c924e-a436-60f5-8080-3fe189b3f50e --- code/game/gamemodes/gameticker.dm | 16 +++++++++++----- code/modules/admin/admin.dm | 6 ++++++ code/modules/admin/player_panel.dm | 2 +- .../modules/mob/living/silicon/robot/login.dm | 3 ++- icons/obj/machines/field_generator.dmi | Bin 2058 -> 2104 bytes 5 files changed, 20 insertions(+), 7 deletions(-) diff --git a/code/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm index 9ee06ba491..cbba5727eb 100644 --- a/code/game/gamemodes/gameticker.dm +++ b/code/game/gamemodes/gameticker.dm @@ -29,6 +29,7 @@ var/global/datum/controller/gameticker/ticker var/pregame_timeleft = 0 + var/delay_end = 0 //if set to nonzero, the round will not restart on it's own /datum/controller/gameticker/proc/pregame() login_music = pick('title2.ogg') // choose title music! @@ -277,17 +278,22 @@ var/global/datum/controller/gameticker/ticker spawn(50) if (mode.station_was_nuked) feedback_set_details("end_proper","nuke") - world << "\blue Rebooting due to destruction of station in [restart_timeout/10] seconds" + if(!delay_end) + world << "\blue Rebooting due to destruction of station in [restart_timeout/10] seconds" else feedback_set_details("end_proper","proper completion") - world << "\blue Restarting in [restart_timeout/10] seconds" + if(!delay_end) + world << "\blue Restarting in [restart_timeout/10] seconds" if(blackbox) blackbox.save_all_data_to_sql() - sleep(restart_timeout) - world.Reboot() + if(!delay_end) + sleep(restart_timeout) + world.Reboot() + else + world << "\blue An admin has delayed the round end" return 1 @@ -304,7 +310,7 @@ var/global/datum/controller/gameticker/ticker if (aiPlayer.connected_robots.len) var/robolist = "The AI's loyal minions were: " for(var/mob/living/silicon/robot/robo in aiPlayer.connected_robots) - robolist += "[robo.name][robo.stat?" (Deactivated) (Played by: [robo.key]), ":", (Played by: [robo.key])"]" + robolist += "[robo.name][robo.stat?" (Deactivated) (Played by: [robo.key]), ":" (Played by: [robo.key]), "]" world << "[robolist]" for (var/mob/living/silicon/robot/robo in world) diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index c871d20142..7902fc99f2 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -65,6 +65,12 @@ var/global/BSACooldown = 0 alert("You cannot perform this action. You must be of a higher administrative rank!") return + if(href_list["delay_round_end"]) + 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) + href_list["secretsadmin"] = "check_antagonist" if(href_list["simplemake"]) diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm index bc8d392c20..ef1226001a 100644 --- a/code/modules/admin/player_panel.dm +++ b/code/modules/admin/player_panel.dm @@ -392,7 +392,7 @@ dat += "Send Back
" if(1) dat += "ETA: [(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]
" - + dat += "[ticker.delay_end ? "End Round Normally" : "Delay Round End"]
" if(ticker.mode.syndicates.len) dat += "
" for(var/datum/mind/N in ticker.mode.syndicates) diff --git a/code/modules/mob/living/silicon/robot/login.dm b/code/modules/mob/living/silicon/robot/login.dm index 9e2b24457d..1127d6bebb 100644 --- a/code/modules/mob/living/silicon/robot/login.dm +++ b/code/modules/mob/living/silicon/robot/login.dm @@ -13,9 +13,10 @@ src.real_name += " " src.real_name += "-[ident]" src.name = src.real_name - if(!src.connected_ai) + /*if(!src.connected_ai) for(var/mob/living/silicon/ai/A in world) src.connected_ai = A A.connected_robots += src break + */ return \ No newline at end of file diff --git a/icons/obj/machines/field_generator.dmi b/icons/obj/machines/field_generator.dmi index 0914c83660e26f0ef1dfc391b1d3675423109015..fcb083f8467326cbb1795f20b9fae570affb1de2 100644 GIT binary patch delta 1831 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 SrIB+00000
Syndicates