diff --git a/code/ATMOSPHERICS/components/valve.dm b/code/ATMOSPHERICS/components/valve.dm index 33d4380acda..533d860f573 100644 --- a/code/ATMOSPHERICS/components/valve.dm +++ b/code/ATMOSPHERICS/components/valve.dm @@ -242,6 +242,20 @@ return ..() + log_and_message_admins("has [open ? "OPENED" : "closed"] [name]. (JMP)", user) + +/obj/machinery/atmospherics/valve/digital/AltClick(var/mob/dead/observer/admin) + if (istype(admin)) + if (admin.client && admin.client.holder && ((R_MOD|R_ADMIN) & admin.client.holder.rights)) + if (open) + close() + else + if (alert(admin, "The valve is currently closed. Do you want to open it?", "Open the valve?", "Yes", "No") == "No") + return + open() + + log_and_message_admins("has [open ? "opened" : "closed"] [name]. (JMP)", admin) + /obj/machinery/atmospherics/valve/digital/open open = 1 icon_state = "map_valve1" diff --git a/code/game/machinery/atmoalter/canister.dm b/code/game/machinery/atmoalter/canister.dm index 458e787b79d..42eac84de37 100644 --- a/code/game/machinery/atmoalter/canister.dm +++ b/code/game/machinery/atmoalter/canister.dm @@ -246,6 +246,25 @@ update_flag healthcheck() return +/obj/machinery/portable_atmospherics/canister/AltClick(var/mob/dead/observer/admin) + if (istype(admin)) + if (admin.client && admin.client.holder && ((R_MOD|R_ADMIN) & admin.client.holder.rights)) + if (valve_open) + if (holding) + release_log += "Valve was closed by [key_name(admin)] (aghost), stopping the transfer into the [holding]
" + else + release_log += "Valve was closed by [key_name(admin)] (aghost), stopping the transfer into the air
" + else + if (alert(admin, "The release valve is currently closed. Do you want to open it?", "Open the valve?", "Yes", "No") == "No") + return + + if (holding) + release_log += "Valve was opened by [key_name(admin)] (aghost), starting the transfer into the [holding]
" + else + release_log += "Valve was opened by [key_name(admin)] (aghost), starting the transfer into the air
" + log_open(admin) + valve_open = !valve_open + /obj/machinery/portable_atmospherics/canister/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) if(!istype(W, /obj/item/weapon/wrench) && !istype(W, /obj/item/weapon/tank) && !istype(W, /obj/item/device/analyzer) && !istype(W, /obj/item/device/pda)) visible_message("\red [user] hits the [src] with a [W]!") diff --git a/code/game/machinery/atmoalter/portable_atmospherics.dm b/code/game/machinery/atmoalter/portable_atmospherics.dm index cf4606f68d1..5b65a858076 100644 --- a/code/game/machinery/atmoalter/portable_atmospherics.dm +++ b/code/game/machinery/atmoalter/portable_atmospherics.dm @@ -199,7 +199,7 @@ return ..() -/obj/machinery/portable_atmospherics/proc/log_open() +/obj/machinery/portable_atmospherics/proc/log_open(var/mob/user) if(air_contents.gas.len == 0) return @@ -209,5 +209,9 @@ gases += ", [gas]" else gases = gas - log_admin("[usr] ([usr.ckey]) opened '[src.name]' containing [gases].") - message_admins("[usr] ([usr.ckey]) opened '[src.name]' containing [gases]. (JMP)") + + if (!user && usr) + user = usr + + log_admin("[user] ([user.ckey]) opened '[src.name]' containing [gases].") + message_admins("[user] ([user.ckey]) opened '[src.name]' containing [gases]. (JMP)") diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 31ad0e44e22..06531cbcf5a 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -1400,6 +1400,9 @@ proc/admin_notice(var/message, var/rights) msg = "has paralyzed [key_name(H)]." H.visible_message("OOC Information: [H] has been winded by a member of staff! Please freeze all roleplay involving their character until the matter is resolved! Adminmhelp if you have further questions.", "You have been winded by a member of staff! Please stand by until they contact you!") else + if (alert("The player is currently winded. Do you want to unwind him?", "Unwind player?", "Yes", "No") == "No") + return + H.paralysis = 0 msg = "has unparalyzed [key_name(H)]." H.visible_message("OOC Information: [H] has been unwinded by a member of staff!", "You have been unwinded by a member of staff!") diff --git a/html/changelogs/skull132-Admin.yml b/html/changelogs/skull132-Admin.yml new file mode 100644 index 00000000000..4e4faf21448 --- /dev/null +++ b/html/changelogs/skull132-Admin.yml @@ -0,0 +1,8 @@ +author: Skull132 + +delete-after: True + +changes: + - rscadd: "Ghosts with +ADMIN or +MOD can now alt-left-click on canisters and digital valves in order to toggle them open and shut." + - rscadd: "Opening of digital valves provides adminlogs once more." + - tweak: "Unwinding now requires that a prompt be confirmed. This should stop wind-unwind-wind shenanigans from happening."