diff --git a/code/__DEFINES/dropships.dm b/code/__DEFINES/dropships.dm index f7df570a28..d53e7c68d8 100644 --- a/code/__DEFINES/dropships.dm +++ b/code/__DEFINES/dropships.dm @@ -10,3 +10,8 @@ #define DROPSHIP_MIN_AUTO_DELAY 10 SECONDS #define DROPSHIP_AUTO_RETRY_COOLDOWN 20 SECONDS #define DROPSHIP_MEDEVAC_COOLDOWN 20 SECONDS + +//Hatches states +#define SHUTTLE_DOOR_BROKEN -1 +#define SHUTTLE_DOOR_UNLOCKED 0 +#define SHUTTLE_DOOR_LOCKED 1 diff --git a/code/game/machinery/door_control.dm b/code/game/machinery/door_control.dm index 8b73588f1d..5d6c66309d 100644 --- a/code/game/machinery/door_control.dm +++ b/code/game/machinery/door_control.dm @@ -64,7 +64,7 @@ if(is_mainship_level(z)) // on the almayer return - shuttle.control_doors("lock", "all", force=FALSE) + shuttle.control_doors("force-lock", "all", force=FALSE) /obj/structure/machinery/door_control/proc/handle_door() for(var/obj/structure/machinery/door/airlock/D in range(range)) diff --git a/code/game/machinery/doors/airlock_control.dm b/code/game/machinery/doors/airlock_control.dm index 57e27cc60d..b20a052d26 100644 --- a/code/game/machinery/doors/airlock_control.dm +++ b/code/game/machinery/doors/airlock_control.dm @@ -123,15 +123,15 @@ radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE, filter = RADIO_AIRLOCK) -/obj/structure/machinery/door/airlock/open(surpress_send) +/obj/structure/machinery/door/airlock/open(forced) . = ..() - if(!surpress_send) send_status() + if(!forced) + send_status() - -/obj/structure/machinery/door/airlock/close(surpress_send) +/obj/structure/machinery/door/airlock/close(forced) . = ..() - if(!surpress_send) send_status() - + if(!forced) + send_status() /obj/structure/machinery/door/airlock/proc/set_frequency(new_frequency) SSradio.remove_object(src, frequency) diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 99353a6688..2e79604e87 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -214,7 +214,7 @@ flick("door_deny", src) return -/obj/structure/machinery/door/proc/open(forced=0) +/obj/structure/machinery/door/proc/open(forced) if(!density) return TRUE if(operating || !loc) diff --git a/code/game/machinery/doors/multi_tile.dm b/code/game/machinery/doors/multi_tile.dm index cddcfae08c..c60c08dc03 100644 --- a/code/game/machinery/doors/multi_tile.dm +++ b/code/game/machinery/doors/multi_tile.dm @@ -241,10 +241,42 @@ no_panel = 1 not_weldable = 1 var/queen_pryable = TRUE + var/obj/docking_port/mobile/marine_dropship/linked_dropship /obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/ex_act(severity) return +/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/attackby(obj/item/item, mob/user) + if(HAS_TRAIT(item, TRAIT_TOOL_MULTITOOL)) + var/direction + switch(id) + if("starboard_door") + direction = "starboard" + if("port_door") + direction = "port" + if("aft_door") + direction = "aft" + if(!linked_dropship || !linked_dropship.door_control.door_controllers[direction]) + return ..() + var/datum/door_controller/single/control = linked_dropship.door_control.door_controllers[direction] + if (control.status != SHUTTLE_DOOR_BROKEN) + return ..() + if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) + to_chat(user, SPAN_WARNING("You don't seem to understand how to restore a remote connection to [src].")) + return + if(user.action_busy) + return + + to_chat(user, SPAN_WARNING("You begin to restore the remote connection to [src].")) + if(!do_after(user, 5 SECONDS, INTERRUPT_ALL, BUSY_ICON_BUILD)) + to_chat(user, SPAN_WARNING("You fail to restore a remote connection to [src].")) + return + unlock(TRUE) + close(FALSE) + control.status = SHUTTLE_DOOR_UNLOCKED + to_chat(user, SPAN_WARNING("You successfully restored the remote connection to [src].")) + return + ..() /obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/unlock() if(is_reserved_level(z)) @@ -258,13 +290,32 @@ if(!queen_pryable) return ..() - if(!locked) - return ..() - - to_chat(xeno, SPAN_NOTICE("You try and force the doors open")) + if(xeno.action_busy) + return + + var/direction + switch(id) + if("starboard_door") + direction = "starboard" + if("port_door") + direction = "port" + if("aft_door") + direction = "aft" + var/datum/door_controller/single/control + if(linked_dropship && linked_dropship.door_control.door_controllers[direction]) + control = linked_dropship.door_control.door_controllers[direction] + + if(control && control.status == SHUTTLE_DOOR_BROKEN) + to_chat(xeno, SPAN_NOTICE("The door is already disabled.")) + return + + to_chat(xeno, SPAN_WARNING("You try and force the doors open!")) if(do_after(xeno, 3 SECONDS, INTERRUPT_ALL, BUSY_ICON_HOSTILE)) + if(control) + control.status = SHUTTLE_DOOR_BROKEN unlock(TRUE) open(1) + open(TRUE) lock(TRUE) /obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/ds1 @@ -275,6 +326,23 @@ name = "\improper Normandy cargo door" icon = 'icons/obj/structures/doors/dropship2_cargo.dmi' +/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside + width = 2 + +/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds1 + name = "\improper Alamo crew hatch" + icon = 'icons/obj/structures/doors/dropship1_side2.dmi' + +/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds1/midway + name = "\improper Midway crew hatch" + +/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds2 + name = "\improper Normandy crew hatch" + icon = 'icons/obj/structures/doors/dropship2_side2.dmi' + +/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds2/cyclone + name = "\improper Cyclone crew hatch" + /obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/upp name = "\improper Akademia Nauk cargo door" icon = 'icons/obj/structures/doors/dropshipupp_cargo.dmi' @@ -329,7 +397,7 @@ continue INVOKE_ASYNC(atom_movable, TYPE_PROC_REF(/atom/movable, throw_atom), projected, 1, SPEED_FAST, null, FALSE) -/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/lifeboat/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock, idnum, override) +/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/lifeboat/connect_to_shuttle(mapload, obj/docking_port/mobile/port, obj/docking_port/stationary/dock) . = ..() if(istype(port, /obj/docking_port/mobile/crashable/lifeboat)) var/obj/docking_port/mobile/crashable/lifeboat/lifeboat = port diff --git a/code/modules/shuttle/computers/escape_pod_computer.dm b/code/modules/shuttle/computers/escape_pod_computer.dm index ec523747e1..ef2bfad381 100644 --- a/code/modules/shuttle/computers/escape_pod_computer.dm +++ b/code/modules/shuttle/computers/escape_pod_computer.dm @@ -55,7 +55,7 @@ .["docking_status"] = STATE_LAUNCHED var/obj/structure/machinery/door/door = shuttle.door_handler.doors[1] .["door_state"] = door.density - .["door_lock"] = shuttle.door_handler.is_locked + .["door_lock"] = shuttle.door_handler.status == SHUTTLE_DOOR_LOCKED .["can_delay"] = TRUE//launch_status[2] .["launch_without_evac"] = launch_without_evac diff --git a/code/modules/shuttle/helpers.dm b/code/modules/shuttle/helpers.dm index 6ab5d88da1..cb4082c761 100644 --- a/code/modules/shuttle/helpers.dm +++ b/code/modules/shuttle/helpers.dm @@ -19,7 +19,7 @@ if(!door_controllers[direction]) var/datum/door_controller/single/new_controller = new() new_controller.label = label - new_controller.is_locked = FALSE + new_controller.status = SHUTTLE_DOOR_UNLOCKED door_controllers[direction] = new_controller var/datum/door_controller/single/controller = door_controllers[direction] @@ -29,12 +29,12 @@ if(direction == "all") for(var/i in door_controllers) var/datum/door_controller/single/control = door_controllers[i] - if(!control.is_locked) + if(control.status != SHUTTLE_DOOR_LOCKED) return FALSE return TRUE if(door_controllers[direction]) var/datum/door_controller/single/single_controller = door_controllers[direction] - return single_controller.is_locked + return single_controller.status == SHUTTLE_DOOR_LOCKED else WARNING("Direction [direction] does not exist.") return FALSE @@ -60,9 +60,9 @@ for(var/direction in door_controllers) var/datum/door_controller/single/controller = door_controllers[direction] - var/list/door_data = list("id" = direction, "value" = controller.is_locked) + var/list/door_data = list("id" = direction, "value" = controller.status) . += list(door_data) - if(!controller.is_locked) + if(controller.status == SHUTTLE_DOOR_UNLOCKED) all_locked = FALSE var/list/door_data = list("id" = "all", "value" = all_locked) @@ -74,7 +74,7 @@ /datum/door_controller/single var/label = "dropship" var/list/doors = list() - var/is_locked = FALSE + var/status = SHUTTLE_DOOR_UNLOCKED /datum/door_controller/single/Destroy(force, ...) . = ..() @@ -93,23 +93,29 @@ if("close") INVOKE_ASYNC(door, TYPE_PROC_REF(/obj/structure/machinery/door/airlock, close)) if("force-lock") + if (status == SHUTTLE_DOOR_BROKEN) + continue INVOKE_ASYNC(src, PROC_REF(lockdown_door), door) - is_locked = TRUE + status = SHUTTLE_DOOR_LOCKED if("lock") INVOKE_ASYNC(door, TYPE_PROC_REF(/obj/structure/machinery/door/airlock, lock)) - is_locked = TRUE + if (status != SHUTTLE_DOOR_BROKEN) + status = SHUTTLE_DOOR_LOCKED if("unlock") INVOKE_ASYNC(door, TYPE_PROC_REF(/obj/structure/machinery/door/airlock, unlock)) - is_locked = FALSE + if (status != SHUTTLE_DOOR_BROKEN) + status = SHUTTLE_DOOR_UNLOCKED if("force-lock-launch") if(asynchronous) INVOKE_ASYNC(src, PROC_REF(lockdown_door_launch), door) else lockdown_door_launch(door) - is_locked = TRUE + if (status != SHUTTLE_DOOR_BROKEN) + status = SHUTTLE_DOOR_LOCKED if("force-unlock") INVOKE_ASYNC(src, PROC_REF(force_lock_open_door), door) - is_locked = FALSE + if (status != SHUTTLE_DOOR_BROKEN) + status = SHUTTLE_DOOR_UNLOCKED else CRASH("Unknown door command [action]") diff --git a/code/modules/shuttle/shuttles/dropship.dm b/code/modules/shuttle/shuttles/dropship.dm index 40b50d257f..bd9beefb61 100644 --- a/code/modules/shuttle/shuttles/dropship.dm +++ b/code/modules/shuttle/shuttles/dropship.dm @@ -42,6 +42,9 @@ door_control.add_door(air, "port") if("aft_door") door_control.add_door(air, "aft") + var/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/hatch = air + if(istype(hatch)) + hatch.linked_dropship = src /obj/docking_port/mobile/marine_dropship/Destroy(force) . = ..() diff --git a/icons/obj/structures/doors/dropship1_side2.dmi b/icons/obj/structures/doors/dropship1_side2.dmi new file mode 100644 index 0000000000..f2d96e59af Binary files /dev/null and b/icons/obj/structures/doors/dropship1_side2.dmi differ diff --git a/icons/obj/structures/doors/dropship2_side2.dmi b/icons/obj/structures/doors/dropship2_side2.dmi new file mode 100644 index 0000000000..bff39827c3 Binary files /dev/null and b/icons/obj/structures/doors/dropship2_side2.dmi differ diff --git a/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm b/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm index 701a660ddb..a196e2f20c 100644 --- a/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm +++ b/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm @@ -27970,6 +27970,16 @@ icon_state = "plate" }, /area/lv522/atmos/cargo_intake) +"lgw" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 4; + id = "UD6 East"; + indestructible = 1 + }, +/turf/open/shuttle/dropship{ + icon_state = "rasputin3" + }, +/area/lv522/landing_zone_forecon/UD6_Tornado) "lgR" = ( /obj/structure/largecrate/random/secure, /turf/open/floor/plating, @@ -41284,6 +41294,20 @@ icon_state = "platingdmg3" }, /area/lv522/indoors/a_block/dorms) +"qjy" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 4; + id = "UD6 East"; + indestructible = 1 + }, +/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds2{ + dir = 1; + name = "\improper Tornado crew hatch" + }, +/turf/open/shuttle/dropship{ + icon_state = "rasputin3" + }, +/area/lv522/landing_zone_forecon/UD6_Tornado) "qjC" = ( /obj/item/stack/rods, /turf/open/floor/prison, @@ -42172,8 +42196,9 @@ /turf/open/floor/wood, /area/lv522/indoors/a_block/fitness/glass) "qzp" = ( -/obj/structure/machinery/door/airlock/dropship_hatch/two{ - dir = 8 +/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds2{ + dir = 1; + name = "\improper Typhoon crew hatch" }, /turf/open/shuttle/dropship{ icon_state = "rasputin3" @@ -62477,8 +62502,9 @@ }, /area/lv522/outdoors/colony_streets/north_street) "xRM" = ( -/obj/structure/machinery/door/airlock/dropship_hatch/two{ - dir = 8 +/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds2{ + dir = 1; + name = "\improper Tornado crew hatch" }, /obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 4; @@ -66220,7 +66246,7 @@ pRK qmM qGQ qTh -qzp +rjP qzp nfq fDg @@ -67582,7 +67608,7 @@ pUc qst qLz qVl -qzp +rjP qzp rFp sdE @@ -103011,7 +103037,7 @@ sCp toY uwQ wzg -xRM +lgw xRM bpZ wRL @@ -104373,8 +104399,8 @@ tcu tSo vjv wCr -xRM -xRM +lgw +qjy fXn uSB ecP diff --git a/maps/shuttles/dropship_alamo.dmm b/maps/shuttles/dropship_alamo.dmm index ea14641a75..df47309c7a 100644 --- a/maps/shuttles/dropship_alamo.dmm +++ b/maps/shuttles/dropship_alamo.dmm @@ -216,14 +216,6 @@ icon_state = "23" }, /area/shuttle/drop1/sulaco) -"rS" = ( -/obj/structure/machinery/door/airlock/dropship_hatch{ - id = "port_door" - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/shuttle/drop1/sulaco) "rV" = ( /obj/structure/shuttle/part/dropship1/transparent/left_outer_bottom_wing, /turf/template_noop, @@ -242,6 +234,15 @@ icon_state = "rasputin15" }, /area/shuttle/drop1/sulaco) +"uR" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds1{ + dir = 1; + id = "starboard_door" + }, +/turf/open/shuttle/dropship{ + icon_state = "rasputin15" + }, +/area/shuttle/drop1/sulaco) "wk" = ( /obj/effect/attach_point/weapon/dropship1/right_wing, /obj/structure/shuttle/part/dropship1/transparent/lower_right_wing, @@ -481,9 +482,9 @@ }, /area/shuttle/drop1/sulaco) "Pf" = ( -/obj/structure/machinery/door/airlock/dropship_hatch{ - dir = 8; - id = "starboard_door" +/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds1{ + dir = 1; + id = "port_door" }, /turf/open/shuttle/dropship{ icon_state = "rasputin15" @@ -675,8 +676,8 @@ hG Et iI JP -rS -rS +il +Pf mW qn sA @@ -859,8 +860,8 @@ zS iv zV MP -Pf -Pf +il +uR nC nE rl diff --git a/maps/shuttles/dropship_cyclone.dmm b/maps/shuttles/dropship_cyclone.dmm index 0ff54bc78a..97fb82caeb 100644 --- a/maps/shuttles/dropship_cyclone.dmm +++ b/maps/shuttles/dropship_cyclone.dmm @@ -138,14 +138,6 @@ icon_state = "rasputin15" }, /area/shuttle/cyclone) -"jR" = ( -/obj/structure/machinery/door/airlock/dropship_hatch/two{ - id = "port_door" - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/shuttle/cyclone) "lc" = ( /obj/structure/machinery/light{ dir = 4; @@ -407,6 +399,15 @@ icon_state = "rasputin3" }, /area/shuttle/cyclone) +"Ey" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds2/cyclone{ + dir = 1; + id = "starboard_door" + }, +/turf/open/shuttle/dropship{ + icon_state = "rasputin15" + }, +/area/shuttle/cyclone) "EP" = ( /turf/closed/shuttle/cyclone{ icon_state = "75" @@ -537,8 +538,9 @@ }, /area/shuttle/cyclone) "QA" = ( -/obj/structure/machinery/door/airlock/dropship_hatch/two{ - id = "starboard_door" +/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds2/cyclone{ + dir = 1; + id = "port_door" }, /turf/open/shuttle/dropship{ icon_state = "rasputin15" @@ -657,8 +659,8 @@ EP uH mI pb -jR -jR +Ty +QA xY hS wA @@ -777,8 +779,8 @@ AP sa Hg Uo -QA -QA +Ty +Ey At fo zH diff --git a/maps/shuttles/dropship_midway.dmm b/maps/shuttles/dropship_midway.dmm index d890d8cb1f..64b2dab98d 100644 --- a/maps/shuttles/dropship_midway.dmm +++ b/maps/shuttles/dropship_midway.dmm @@ -475,7 +475,8 @@ /area/shuttle/midway) "HY" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/ds1{ - id = "aft_door" + id = "aft_door"; + name = "\improper Midway cargo door" }, /turf/open/shuttle/dropship{ icon_state = "rasputin15" @@ -497,6 +498,15 @@ icon_state = "72" }, /area/shuttle/midway) +"Kp" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds1/midway{ + dir = 1; + id = "starboard_door" + }, +/turf/open/shuttle/dropship{ + icon_state = "rasputin15" + }, +/area/shuttle/midway) "Ks" = ( /obj/structure/shuttle/part/dropship1/transparent/lower_left_wing{ name = "\improper Midway" @@ -534,14 +544,6 @@ }, /turf/template_noop, /area/shuttle/midway) -"Mf" = ( -/obj/structure/machinery/door/airlock/dropship_hatch{ - id = "port_door" - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/shuttle/midway) "Mz" = ( /obj/structure/stairs/perspective, /obj/structure/platform{ @@ -608,9 +610,9 @@ }, /area/shuttle/midway) "SS" = ( -/obj/structure/machinery/door/airlock/dropship_hatch{ - dir = 8; - id = "starboard_door" +/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds1/midway{ + dir = 1; + id = "port_door" }, /turf/open/shuttle/dropship{ icon_state = "rasputin15" @@ -722,8 +724,8 @@ Hj Jq Vu xp -Mf -Mf +ME +SS QI gw ls @@ -842,8 +844,8 @@ wB VU ym Ji -SS -SS +ME +Kp rF ul BS diff --git a/maps/shuttles/dropship_normandy.dmm b/maps/shuttles/dropship_normandy.dmm index 55d07883e3..df64ef84ca 100644 --- a/maps/shuttles/dropship_normandy.dmm +++ b/maps/shuttles/dropship_normandy.dmm @@ -350,9 +350,9 @@ /turf/template_noop, /area/shuttle/drop2/sulaco) "En" = ( -/obj/structure/machinery/door/airlock/dropship_hatch/two{ - dir = 8; - id = "starboard_door" +/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds2{ + dir = 1; + id = "port_door" }, /turf/open/shuttle/dropship{ icon_state = "rasputin15" @@ -408,6 +408,15 @@ icon_state = "53" }, /area/shuttle/drop2/sulaco) +"JN" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds2{ + dir = 1; + id = "starboard_door" + }, +/turf/open/shuttle/dropship{ + icon_state = "rasputin15" + }, +/area/shuttle/drop2/sulaco) "Kl" = ( /turf/closed/shuttle/dropship2{ icon_state = "10" @@ -582,14 +591,6 @@ /obj/structure/shuttle/part/dropship2/nose_front_left, /turf/template_noop, /area/shuttle/drop2/sulaco) -"SC" = ( -/obj/structure/machinery/door/airlock/dropship_hatch/two{ - id = "port_door" - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/shuttle/drop2/sulaco) "SO" = ( /turf/closed/shuttle/dropship2{ icon_state = "36" @@ -708,8 +709,8 @@ eu OI GE lJ -SC -SC +PJ +En jc pU nS @@ -892,8 +893,8 @@ wX fI fx Tp -En -En +PJ +JN gG RG QK diff --git a/tgui/packages/tgui/interfaces/DropshipFlightControl.tsx b/tgui/packages/tgui/interfaces/DropshipFlightControl.tsx index bbb7fea96d..4d189614d6 100644 --- a/tgui/packages/tgui/interfaces/DropshipFlightControl.tsx +++ b/tgui/packages/tgui/interfaces/DropshipFlightControl.tsx @@ -3,6 +3,14 @@ import { Window } from '../layouts'; import { Box, Button, Flex, Icon, ProgressBar, Section, Stack } from '../components'; import { LaunchButton, CancelLaunchButton, DisabledScreen, InFlightCountdown, LaunchCountdown, NavigationProps, ShuttleRecharge, DockingPort } from './NavigationShuttle'; +const DoorStatusEnum = { + SHUTTLE_DOOR_BROKEN: -1, + SHUTTLE_DOOR_UNLOCKED: 0, + SHUTTLE_DOOR_LOCKED: 1, +} as const; + +type DoorStatusEnums = typeof DoorStatusEnum[keyof typeof DoorStatusEnum]; + interface DoorStatus { id: string; value: 0 | 1; @@ -45,7 +53,7 @@ const DropshipDoorControl = (_, context) => { disabled={disable_door_controls} onClick={() => act('door-control', { - interaction: 'lock', + interaction: 'force-lock', location: 'all', }) } @@ -81,7 +89,7 @@ const DropshipDoorControl = (_, context) => {