diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm index d2fd840e5b4..dbe21402d94 100644 --- a/code/game/machinery/deployable.dm +++ b/code/game/machinery/deployable.dm @@ -351,6 +351,13 @@ for reference: kit_product = /obj/structure/bed/chair/remote/mech/portable assembly_time = 20 SECONDS +/obj/item/deployable_kit/remote_mech/attack_self(mob/user) + var/area/A = get_area(user) + if(!A.powered(EQUIP)) + to_chat(user, SPAN_WARNING("\The [src] can not be deployed in an unpowered area.")) + return FALSE + ..() + /obj/item/deployable_kit/remote_mech/brig name = "brig mech control centre assembly kit" desc = "A quick assembly kit to put together a brig mech control centre." diff --git a/code/game/objects/structures/vr/_remote_chair.dm b/code/game/objects/structures/vr/_remote_chair.dm index ff9a8ebb2a1..1dffe1da220 100644 --- a/code/game/objects/structures/vr/_remote_chair.dm +++ b/code/game/objects/structures/vr/_remote_chair.dm @@ -11,6 +11,10 @@ if(portable_type) name = "portable [name]" +/obj/structure/bed/chair/remote/Destroy() + STOP_PROCESSING(SSprocessing, src) + return ..() + /obj/structure/bed/chair/remote/examine(mob/user) ..() if(portable_type) @@ -32,12 +36,25 @@ /obj/structure/bed/chair/remote/user_buckle_mob(mob/user) ..() + var/area/A = get_area(src) + if(!A.powered(EQUIP)) + to_chat(user, SPAN_WARNING("\The [src] is not powered.")) + return FALSE if(ishuman(user)) var/mob/living/carbon/human/H = user if(H.old_mob) to_chat(H, SPAN_WARNING("The chair rejects you! You cannot recursively control bodies.")) return add_overlay(image('icons/obj/furniture.dmi', src, "vr_helmet", MOB_LAYER + 1)) + START_PROCESSING(SSprocessing, src) + + +/obj/structure/bed/chair/remote/process() + ..() + if(buckled_mob) + var/area/A = get_area(src) + if(!A.powered(EQUIP)) + user_unbuckle_mob(buckled_mob) // Return to our body in the unfortunate event that we get unbuckled while plugged in /obj/structure/bed/chair/remote/user_unbuckle_mob(mob/user) @@ -46,4 +63,5 @@ if(istype(M) && M.vr_mob) M.vr_mob.body_return() cut_overlays() + STOP_PROCESSING(SSprocessing, src) ..() \ No newline at end of file diff --git a/html/changelogs/alberyk-thefunendshere.yml b/html/changelogs/alberyk-thefunendshere.yml new file mode 100644 index 00000000000..f78d6967fd9 --- /dev/null +++ b/html/changelogs/alberyk-thefunendshere.yml @@ -0,0 +1,6 @@ +author: Alberyk + +delete-after: True + +changes: + - rscadd: "Remote virtual reality centres should no longer work while on unpowered areas."