From 5411fd352db0bef74b3e35fb5aad56b6a071679e Mon Sep 17 00:00:00 2001 From: SatinIsle <98125273+SatinIsle@users.noreply.github.com> Date: Fri, 12 Sep 2025 01:22:46 +0100 Subject: [PATCH] Power Outage Buffs (#18457) * Power Outage Buffs Added emergency door releases to autoresleever rooms. Changed autoresleevers to still work without power. Added short range radios (off by default) to emergency supply boxes. Changed APCs to allow the cover to be opened by anyone beneath 15% charge. * Update stellar_delight3.dmm Gives APCs on the SD comms rooms more charge. Seems tether already has these. * Update stellar_delight3.dmm --- .../game/objects/items/devices/radio/radio.dm | 3 +++ .../objects/items/weapons/storage/boxes.dm | 6 ++++-- code/modules/power/apc.dm | 5 ++++- code/modules/resleeving/autoresleever.dm | 4 ++-- maps/groundbase/gb-z1.dmm | 5 +++++ maps/stellar_delight/stellar_delight1.dmm | 6 ++++++ maps/stellar_delight/stellar_delight2.dmm | 13 +++++++++++- maps/stellar_delight/stellar_delight3.dmm | 6 ++++-- maps/tether/tether-01-surface1.dmm | 20 +++++++++++++++++++ 9 files changed, 60 insertions(+), 8 deletions(-) diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index c611ea53ea2..a0e6d7f80cd 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -610,6 +610,9 @@ GLOBAL_DATUM(autospeaker, /mob/living/silicon/ai/announcer) channels[ch_name] = 0 ..() +/obj/item/radio/start_off + listening = FALSE + /////////////////////////////// //////////Borg Radios////////// /////////////////////////////// diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index 02df4b47520..7c01a48a53d 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -78,7 +78,8 @@ starts_with = list( /obj/item/tool/prybar/red, /obj/item/clothing/glasses/goggles, - /obj/item/clothing/mask/breath + /obj/item/clothing/mask/breath, + /obj/item/radio/start_off ) /obj/item/storage/box/survival/synth @@ -87,7 +88,8 @@ icon_state = "survival_synth" starts_with = list( /obj/item/tool/prybar/red, - /obj/item/clothing/glasses/goggles + /obj/item/clothing/glasses/goggles, + /obj/item/radio/start_off ) /obj/item/storage/box/survival/comp diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index e5eb6627541..a32527ab350 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -492,7 +492,10 @@ GLOBAL_LIST_EMPTY(apcs) opened = 0 update_icon() else if(W.has_tool_quality(TOOL_CROWBAR) && !(stat & BROKEN) ) - if(coverlocked && !(stat & MAINT)) + var/remaining_power = 0 + if(cell) + remaining_power = cell.percent() + if(coverlocked && !(stat & MAINT) && remaining_power > 15) // Cab be popped open by anyone at low power to change battery to_chat(user, span_warning("The cover is locked and cannot be opened.")) return else diff --git a/code/modules/resleeving/autoresleever.dm b/code/modules/resleeving/autoresleever.dm index b19b0984038..ff2016a57fe 100644 --- a/code/modules/resleeving/autoresleever.dm +++ b/code/modules/resleeving/autoresleever.dm @@ -15,7 +15,7 @@ /obj/machinery/transhuman/autoresleever/update_icon() . = ..() - if(stat) + if(stat & (BROKEN | MAINT | EMPED)) icon_state = "autoresleever-o" else icon_state = "autoresleever" @@ -58,7 +58,7 @@ return /obj/machinery/transhuman/autoresleever/proc/autoresleeve(var/mob/observer/dead/ghost) - if(stat) + if(stat & (BROKEN | MAINT | EMPED)) // Let it still work when power is just off, it has it's own backup reserve or something. to_chat(ghost, span_warning("This machine is not functioning...")) return if(!isobserver(ghost)) diff --git a/maps/groundbase/gb-z1.dmm b/maps/groundbase/gb-z1.dmm index 8dfd0113138..fb3aeb4b711 100644 --- a/maps/groundbase/gb-z1.dmm +++ b/maps/groundbase/gb-z1.dmm @@ -8740,6 +8740,11 @@ /area/groundbase/level1/centsquare) "to" = ( /obj/machinery/washing_machine, +/obj/machinery/button/remote/airlock/release{ + pixel_y = 29; + pixel_x = -11; + id = "AutoResleeving" + }, /turf/simulated/floor/tiled/dark, /area/groundbase/medical/autoresleeving) "tp" = ( diff --git a/maps/stellar_delight/stellar_delight1.dmm b/maps/stellar_delight/stellar_delight1.dmm index aad217fe7bc..5bbbab70ca6 100644 --- a/maps/stellar_delight/stellar_delight1.dmm +++ b/maps/stellar_delight/stellar_delight1.dmm @@ -7172,6 +7172,12 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/universal, +/obj/machinery/button/remote/airlock/release{ + pixel_y = 32; + pixel_x = -27; + id = "resleeveexit"; + dir = 4 + }, /turf/simulated/floor/tiled/dark, /area/stellardelight/deck1/resleeving) "oi" = ( diff --git a/maps/stellar_delight/stellar_delight2.dmm b/maps/stellar_delight/stellar_delight2.dmm index 2e90aa1b20e..7243a7a48f4 100644 --- a/maps/stellar_delight/stellar_delight2.dmm +++ b/maps/stellar_delight/stellar_delight2.dmm @@ -2158,6 +2158,11 @@ }, /obj/item/clothing/shoes/black, /obj/item/communicator, +/obj/item/radio{ + pixel_x = 4; + pixel_y = -4; + listening = 0 + }, /turf/simulated/floor/tiled/dark, /area/crew_quarters/locker) "ew" = ( @@ -6079,6 +6084,11 @@ /obj/item/clothing/shoes/black, /obj/machinery/light, /obj/item/communicator, +/obj/item/radio{ + pixel_x = 4; + pixel_y = -4; + listening = 0 + }, /turf/simulated/floor/tiled/dark, /area/crew_quarters/locker) "mH" = ( @@ -9206,7 +9216,8 @@ }, /obj/item/radio{ pixel_x = 4; - pixel_y = -4 + pixel_y = -4; + listening = 0 }, /obj/item/radio{ pixel_x = 7; diff --git a/maps/stellar_delight/stellar_delight3.dmm b/maps/stellar_delight/stellar_delight3.dmm index 4acf2031baf..6d1bfbc2089 100644 --- a/maps/stellar_delight/stellar_delight3.dmm +++ b/maps/stellar_delight/stellar_delight3.dmm @@ -1321,7 +1321,8 @@ /area/stellardelight/deck3/aft) "eo" = ( /obj/machinery/power/apc/angled{ - dir = 4 + dir = 4; + cell_type = /obj/item/cell/super }, /obj/structure/cable/blue{ icon_state = "0-2" @@ -5188,7 +5189,8 @@ /area/ai) "su" = ( /obj/machinery/power/apc/angled{ - dir = 8 + dir = 8; + cell_type = /obj/item/cell/super }, /obj/structure/cable/blue{ icon_state = "0-4" diff --git a/maps/tether/tether-01-surface1.dmm b/maps/tether/tether-01-surface1.dmm index a3b9d22df87..bac27a770a7 100644 --- a/maps/tether/tether-01-surface1.dmm +++ b/maps/tether/tether-01-surface1.dmm @@ -10583,6 +10583,11 @@ }, /obj/item/clothing/suit/storage/hooded/wintercoat, /obj/item/clothing/shoes/black, +/obj/item/radio{ + pixel_x = 4; + pixel_y = -4; + on = 0 + }, /turf/simulated/floor/holofloor/tiled/dark, /area/crew_quarters/locker) "asu" = ( @@ -10603,6 +10608,11 @@ dir = 1 }, /obj/item/clothing/shoes/black, +/obj/item/radio{ + pixel_x = 4; + pixel_y = -4; + on = 0 + }, /turf/simulated/floor/holofloor/tiled/dark, /area/crew_quarters/locker) "asv" = ( @@ -11733,6 +11743,11 @@ /obj/item/clothing/suit/storage/hooded/wintercoat, /obj/machinery/light, /obj/item/clothing/shoes/black, +/obj/item/radio{ + pixel_x = 4; + pixel_y = -4; + on = 0 + }, /turf/simulated/floor/holofloor/tiled/dark, /area/crew_quarters/locker) "auz" = ( @@ -34274,6 +34289,11 @@ dir = 8 }, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/machinery/button/remote/airlock/release{ + pixel_y = -26; + pixel_x = -33; + id = "autor" + }, /turf/simulated/floor/tiled/white, /area/tether/surfacebase/medical/autoresleeving) "lQu" = (