diff --git a/_maps/map_files/generic/Lavaland.dmm b/_maps/map_files/generic/Lavaland.dmm index 41985eeb8f6..ea3d8ae5172 100644 --- a/_maps/map_files/generic/Lavaland.dmm +++ b/_maps/map_files/generic/Lavaland.dmm @@ -743,15 +743,7 @@ id_tag = "s_docking_airlock"; name = "Labor Shuttle Airlock" }, -/obj/docking_port/mobile{ - dir = 8; - dwidth = 2; - height = 5; - id = "laborcamp"; - name = "labor camp shuttle"; - rebuildable = 1; - width = 9 - }, +/obj/docking_port/mobile/labour, /obj/structure/fans/tiny, /obj/docking_port/stationary{ area_type = /area/lavaland/surface/outdoors; @@ -2881,15 +2873,7 @@ id_tag = "s_docking_airlock"; req_access_txt = "48" }, -/obj/docking_port/mobile{ - dir = 8; - dwidth = 3; - height = 5; - id = "mining"; - name = "mining shuttle"; - rebuildable = 1; - width = 7 - }, +/obj/docking_port/mobile/mining, /obj/structure/fans/tiny, /obj/docking_port/stationary{ area_type = /area/lavaland/surface/outdoors; diff --git a/code/controllers/subsystem/shuttles.dm b/code/controllers/subsystem/shuttles.dm index daf3a8b74c2..af7a637a40f 100644 --- a/code/controllers/subsystem/shuttles.dm +++ b/code/controllers/subsystem/shuttles.dm @@ -205,6 +205,12 @@ SUBSYSTEM_DEF(shuttle) /datum/controller/subsystem/shuttle/proc/moveShuttle(shuttleId, dockId, timed, mob/user) var/obj/docking_port/mobile/M = getShuttle(shuttleId) var/obj/docking_port/stationary/D = getDock(dockId) + //check if the shuttle is on lockdown + if(M.lockeddown) + return 3 + if(M.uses_lockdown) + M.lockeddown = TRUE + addtimer(VARSET_CALLBACK(M, lockeddown, FALSE), 15 SECONDS) if(!M) return 1 M.last_caller = user // Save the caller of the shuttle for later logging diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index 9dace2ae779..27fbe84058f 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -228,6 +228,10 @@ var/obj/docking_port/stationary/destination var/obj/docking_port/stationary/previous + /// Does this shuttle use the lockdown system? + var/uses_lockdown = FALSE + /// If this variable is true, shuttle is on lockdown, and other requests can not be processed + var/lockeddown = FALSE /obj/docking_port/mobile/Initialize(mapload) . = ..() @@ -731,6 +735,26 @@ dst = destination . += " towards [dst ? dst.name : "unknown location"] ([timeLeft(600)]mins)" +/obj/docking_port/mobile/labour + dir = 8 + dwidth = 2 + height = 5 + id = "laborcamp" + name = "labor camp shuttle" + rebuildable = TRUE + width = 9 + uses_lockdown = TRUE + +/obj/docking_port/mobile/mining + dir = 8 + dwidth = 3 + height = 5 + id = "mining" + name = "mining shuttle" + rebuildable = TRUE + width = 7 + uses_lockdown = TRUE + /obj/machinery/computer/shuttle name = "Shuttle Console" icon_screen = "shuttle" @@ -832,8 +856,10 @@ return TRUE if(1) to_chat(usr, "Invalid shuttle requested.") - else + if(2) to_chat(usr, "Unable to comply.") + if(3) + atom_say("Shuttle has already received a pending movement request. Please wait until the movement request is processed.") /obj/machinery/computer/shuttle/emag_act(mob/user)