diff --git a/baystation12.dme b/baystation12.dme
index ecda588124e..4d76070f216 100644
--- a/baystation12.dme
+++ b/baystation12.dme
@@ -1704,8 +1704,8 @@
#include "code\modules\modular_computers\NTNet\NTNRC\conversation.dm"
#include "code\modules\multiz\_stubs.dm"
#include "code\modules\multiz\basic.dm"
+#include "code\modules\multiz\mobile_ladders.dm"
#include "code\modules\multiz\movement.dm"
-#include "code\modules\multiz\mz_items.dm"
#include "code\modules\multiz\openspace.dm"
#include "code\modules\multiz\pipes.dm"
#include "code\modules\multiz\structures.dm"
diff --git a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm
index c140f4ed84d..ad321c9e63f 100644
--- a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm
@@ -197,6 +197,9 @@
new /obj/item/weapon/extinguisher(src)
new /obj/item/clothing/head/hardhat/red(src)
+ if (prob(25))
+ new /obj/item/weapon/ladder_mobile(src)
+
/*
* First Aid
*/
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index c7cd0b93f05..92cd259ba3a 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -1189,8 +1189,9 @@
spawn(0)
regenerate_icons()
- vessel.add_reagent("blood",560-vessel.total_volume)
- fixblood()
+ if (vessel)
+ vessel.add_reagent("blood",560-vessel.total_volume)
+ fixblood()
// Rebuild the HUD. If they aren't logged in then login() should reinstantiate it for them.
if(client && client.screen)
diff --git a/code/modules/multiz/mobile_ladders.dm b/code/modules/multiz/mobile_ladders.dm
new file mode 100644
index 00000000000..12a24d15072
--- /dev/null
+++ b/code/modules/multiz/mobile_ladders.dm
@@ -0,0 +1,101 @@
+/obj/item/weapon/ladder_mobile
+ name = "mobile ladder"
+ desc = "A lightweight deployable ladder, which you can use to move up or down. Or alternatively, you can bash some faces in."
+ icon_state = "mobile_ladder"
+ item_state = "mobile_ladder"
+ icon = 'icons/obj/multiz_items.dmi'
+ contained_sprite = TRUE
+ throw_range = 3
+ force = 10
+ w_class = 4.0
+ slot_flags = SLOT_BACK
+
+/obj/item/weapon/ladder_mobile/proc/place_ladder(atom/A, mob/user)
+
+ if (istype(A, /turf/simulated/open)) //Place into open space
+ var/turf/below_loc = GetBelow(A)
+ if (!below_loc || (istype(/turf/space, below_loc)))
+ to_chat(user, "Why would you do that?! There is only infinite space there...")
+ return
+ user.visible_message("[user] begins to lower \the [src] into \the [A].",
+ "You begin to lower \the [src] into \the [A].")
+ if (!handle_action(A, user))
+ return
+ // Create the lower ladder first. ladder/Initialize() will make the upper
+ // ladder create the appropriate links. So the lower ladder must exist first.
+ var/obj/structure/ladder/mobile/downer = new(below_loc)
+ downer.allowed_directions = UP
+
+ new /obj/structure/ladder/mobile(A)
+
+ user.drop_item()
+ qdel(src)
+
+ else if (istype(A, /turf/simulated/floor)) //Place onto Floor
+ var/turf/upper_loc = GetAbove(A)
+ if (!upper_loc || !istype(upper_loc,/turf/simulated/open))
+ user << "There is something above. You can't deploy!"
+ return
+ user.visible_message("[user] begins deploying \the [src] on \the [A].",
+ "You begin to deploy \the [src] on \the [A].")
+ if (!handle_action(A, user))
+ return
+ // Ditto here. Create the lower ladder first.
+ var/obj/structure/ladder/mobile/downer = new(A)
+ downer.allowed_directions = UP
+
+ new /obj/structure/ladder/mobile(upper_loc)
+
+ user.drop_item()
+ qdel(src)
+
+/obj/item/weapon/ladder_mobile/afterattack(atom/A, mob/user,proximity)
+ if (!proximity)
+ return
+
+ place_ladder(A,user)
+
+/obj/item/weapon/ladder_mobile/proc/handle_action(atom/A, mob/user)
+ if (!do_after(user, 30, act_target = user))
+ to_chat(user, "Can't place ladder! You were interrupted!")
+ return FALSE
+ if (!A || QDELETED(src) || QDELETED(user))
+ // Shit was deleted during delay, call is no longer valid.
+ return FALSE
+ return TRUE
+
+/obj/structure/ladder/mobile
+ base_icon = "mobile_ladder"
+
+/obj/structure/ladder/mobile/verb/fold()
+ set name = "Fold Ladder"
+ set category = "Object"
+ set src in oview(1)
+
+ if (usr.incapacitated() || !usr.IsAdvancedToolUser() || !ishuman(usr))
+ to_chat(usr, "You can't do that right now!")
+ return
+
+ var/mob/living/carbon/human/H = usr
+ H.visible_message("[H] starts folding up [src].",
+ "You start folding up [src].")
+
+ if (!do_after(H, 30, act_target = src))
+ to_chat(H, "You are interrupted!")
+ return
+
+ if (QDELETED(src))
+ return
+
+ var/obj/item/weapon/ladder_mobile/R = new(get_turf(H))
+ transfer_fingerprints_to(R)
+
+ H.visible_message("[H] folds [src] up into [R]!",
+ "You fold [src] up into [R]!")
+
+ if(target_down)
+ QDEL_NULL(target_down)
+ qdel(src)
+ else
+ QDEL_NULL(target_up)
+ qdel(src)
diff --git a/code/modules/multiz/mz_items.dm b/code/modules/multiz/mz_items.dm
deleted file mode 100644
index 10892bfca4b..00000000000
--- a/code/modules/multiz/mz_items.dm
+++ /dev/null
@@ -1,60 +0,0 @@
-/obj/item/weapon/ladder_mobile
- name = "mobile ladder"
- desc = "A lightweight deployable ladder, which you can use to move up or down. Or alternatively, you can bash some faces in."
- icon_state = "ladder01"
- icon = 'icons/obj/structures.dmi'
- throw_range = 3
- force = 10
- w_class = 4.0
- slot_flags = SLOT_BACK
-
-/obj/item/weapon/ladder_mobile/proc/place_ladder(atom/A,mob/user)
-
- if(istype(A, /turf/simulated/open)) //Place into open space
- var/turf/below_loc = GetBelow(A)
- if (!below_loc || (istype(/turf/space,below_loc)))
- user << "Why would you do that?! There is only infinite space there..."
- return
- user.visible_message("[user] begins to lower \the [src] into \the [A].")
- if(!handle_action(A,user))
- return
- var/obj/structure/ladder/mobile/body/R = new(A)
- var/obj/structure/ladder/mobile/base/D = new(A)
- D.forceMove(below_loc)
- R.target_down = D
- D.target_up = R
-
- user.drop_item()
- qdel(src)
-
- if(istype(A, /turf/simulated/floor)) //Place onto Floor
- var/turf/upper_loc = GetAbove(A)
- if (!upper_loc || !istype(upper_loc,/turf/simulated/open))
- user << "There is something above. You can't deploy!"
- return
- user.visible_message("[user] begins deploying \the [src] on \the [A].")
- if(!handle_action(A,user))
- return
- var/obj/structure/ladder/mobile/base/R = new(A)
- var/obj/structure/ladder/mobile/body/D = new(A)
- D.forceMove(upper_loc) // moves A up to upper_loc.
- R.target_up = D
- D.target_down = R
-
- user.drop_item()
- qdel(src)
-
-/obj/item/weapon/ladder_mobile/afterattack(atom/A, mob/user,proximity)
- if(!proximity)
- return
- //addtimer(CALLBACK(src, .proc/place_ladder, A, user), 5000)
- place_ladder(A,user)
-
-/obj/item/weapon/ladder_mobile/proc/handle_action(atom/A, mob/user)
- if (!do_after(user, 30, act_target = user))
- to_chat(user, "Can't place ladder! You were interrupted!")
- return FALSE
- if (!A || QDELETED(src) || QDELETED(user))
- // Shit was deleted during delay, call is no longer valid.
- return FALSE
- return TRUE
\ No newline at end of file
diff --git a/code/modules/multiz/structures.dm b/code/modules/multiz/structures.dm
index 6140df5696d..4ccc6cfd81b 100644
--- a/code/modules/multiz/structures.dm
+++ b/code/modules/multiz/structures.dm
@@ -14,6 +14,7 @@
var/allowed_directions = DOWN
var/obj/structure/ladder/target_up
var/obj/structure/ladder/target_down
+ var/base_icon = "ladder"
var/const/climb_time = 2 SECONDS
@@ -25,7 +26,10 @@
if(L.allowed_directions & UP)
target_down = L
L.target_up = src
- return
+
+ L.update_icon()
+ break
+
update_icon()
/obj/structure/ladder/Destroy()
@@ -113,7 +117,7 @@
return airflow || !density
/obj/structure/ladder/update_icon()
- icon_state = "ladder[!!(allowed_directions & UP)][!!(allowed_directions & DOWN)]"
+ icon_state = "[base_icon][!!(allowed_directions & UP)][!!(allowed_directions & DOWN)]"
/obj/structure/ladder/up
allowed_directions = UP
@@ -123,27 +127,6 @@
allowed_directions = UP|DOWN
icon_state = "ladder11"
-/obj/structure/ladder/mobile/base
- allowed_directions = UP
- icon_state = "ladder11"
-/obj/structure/ladder/mobile/body
- allowed_directions = DOWN
- icon_state = "ladder11"
-
-/obj/structure/ladder/mobile/verb/fold()
- set name = "Fold Ladder"
- set category = "Object"
- set src in oview(1)
- var/obj/item/weapon/ladder_mobile/R = new(src.loc)
- src.transfer_fingerprints_to(R)
-
- if(src.target_down == null)
- QDEL_NULL(src.target_up)
- qdel(src)
- else
- QDEL_NULL(src.target_down)
- qdel(src)
-
/obj/structure/stairs
name = "Stairs"
desc = "Stairs leading to another deck. Not too useful if the gravity goes out."
diff --git a/icons/obj/multiz_items.dmi b/icons/obj/multiz_items.dmi
new file mode 100644
index 00000000000..2582629420e
Binary files /dev/null and b/icons/obj/multiz_items.dmi differ
diff --git a/icons/obj/structures.dmi b/icons/obj/structures.dmi
index 628904b1863..4782e1c28d7 100644
Binary files a/icons/obj/structures.dmi and b/icons/obj/structures.dmi differ
diff --git a/maps/Aurora-MapDev/aurora-2.dmm b/maps/Aurora-MapDev/aurora-2.dmm
index 2d2745f1557..35274df4c92 100644
--- a/maps/Aurora-MapDev/aurora-2.dmm
+++ b/maps/Aurora-MapDev/aurora-2.dmm
@@ -49,7 +49,7 @@
"aW" = (/obj/structure/table/steel,/obj/item/weapon/storage/briefcase/inflatable,/obj/random/tech_supply,/obj/random/tech_supply,/turf/simulated/floor/tiled,/area/outpost/engineering/meeting)
"aX" = (/turf/simulated/floor/tiled,/area/outpost/engineering/meeting)
"aY" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/outpost/engineering/meeting)
-"aZ" = (/obj/structure/table/rack,/obj/random/tech_supply,/obj/random/tech_supply,/turf/simulated/floor/tiled,/area/outpost/engineering/meeting)
+"aZ" = (/obj/structure/table/rack,/obj/random/tech_supply,/obj/random/tech_supply,/obj/item/weapon/ladder_mobile,/turf/simulated/floor/tiled,/area/outpost/engineering/meeting)
"ba" = (/obj/structure/cable{d1 = 4;d2 = 8;icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/outpost/engineering/power)
"bb" = (/obj/structure/cable{d1 = 2;d2 = 4;icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/plating,/area/outpost/engineering/power)
"bc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 2;d2 = 4;icon_state = "2-4"},/obj/structure/cable{d1 = 4;d2 = 8;icon_state = "4-8";tag = ""},/turf/simulated/floor/plating,/area/outpost/engineering/power)
@@ -2380,7 +2380,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaleleaaaaaaaaaaaaaaaaaaaaaaaaaaaaqkuKuLuMuNuOuPuQuRqkuTuSpltjuUuVuWtjuXuYuZtqvavbvceQvdeQeQeQeQeQeQeQeQeQNZOheQveleleaaaaaaaaaaaaaaaaaaaaleletCvftzvgvhvivivjvkvlvmnWnWvnvonWaaleleleleNtMrMstGtGvpMvvruFNuleleleleleuIvtvvvuvwvxvzvyuJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaleleleleleleleleleleaaaaaaaaaaaaqkvAvBvCsAvDvEvFvGqkvHvIoYtjvJvKvLtjvMvNvOtqvPvQvReQvdeQvSvTvSvUaaaaaaeQeQeQeQaaleleaaaaaaaaaaaaaaaaaaaaleleuyvVvWvXuttzvZwawbwcwdsXwfwewgnWaaoOwhwhwhwhwhwhMwwhwhwiwkwjvsleleleleleuIwmwnwovwwpwqwruJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaleleleleleleleleleleleleleleaaqkqkqkwswtqkqkqkqkqnqnwuqnqnqneQeQeQeQeQeQeQeQeQeQeQvdeQwvwwwxvUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalelewywywywywyvYwzsVwBnWNYwCwEwDwFnWnWnWwHwGwGwIwHwGwGwJwhwKwNwLwlaaaaleleleuIwMwQwOvwwPwSwRuJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalelelelelelelelelelelelelelelenUwTnXnXnXwUwVnXnXwWwXnZnXwYqneQeQeQeQufueueueueueuewZeQwwwwwwvUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalelesXurPousuttzwzxaxexbxcxdQRxfxhxgxjnWxkwGwGwIwHwGwGxlwhxmvrxqwlwlwlxnxoxpuIxrxtxsvwxuxvxuuJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalelelelelelelelelelelelelelelenUwTnXnXnXwUwVnXnXwWwXnZnXwYqneQeQeQeQufueueueueueuewZeQwwwwwwvUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalelesXurPousuttzwzxaxexbxcxdQQxfxhxgxjnWxkwGwGwIwHwGwGxlwhxmvrxqwlwlwlxnxoxpuIxrxtxsvwxuxvxuuJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaleleleleleleleleleleleleleleomornHonoxovotxwxyxxxyxzxAplqneQeQeQeQvdeQeQeQeQeQeQeQeQxBvUvUvUvUvUvUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaleleletCxCtzvgxEvixDxHtCxFtzxGxKxIxJtzxLnWwHwGwGxNxMwGwGxQwhvqvruFxOJVxUxPxRxSxTxVxZxWxXxVyaxVxYleaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalelelelelelelebQleleleleleleomornHyboXycoRoRoRoRMxyeygyfyhueueueyiwZeQvUykyjylvUynymywyoyxypypypvUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaleleleleuyvVvWvXuttzyqyrtCystzxGytyuxGtzyvnWwHwGwGyzyyyyyyyAyCyByEyDyGyFyIyHyKyJyMyLyOyNySyPyVBSyQleaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaleleleleleleleleaaleleleleleleleleomuTyRyWqnqnqnqnqnqnqnoroNplqneQeQeQeQeQeQvUyYyXzavUzbyZzdzczhypypzivUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalelelelewywywywywyvYzetzuyzftztztzAwQGQGzjnWwHwGwGzlwHwGwGznwhzkzpzmzmzmzuzozmzmzmzxzqzrzsztzyzvwlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
diff --git a/maps/Aurora-MapDev/aurora-3.dmm b/maps/Aurora-MapDev/aurora-3.dmm
index 871d8dd9100..01e616a881e 100644
--- a/maps/Aurora-MapDev/aurora-3.dmm
+++ b/maps/Aurora-MapDev/aurora-3.dmm
@@ -1719,7 +1719,7 @@
"aHc" = (/obj/structure/cable/green{d1 = 4;d2 = 8;icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/tiled,/area/security/brig)
"aHd" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/structure/closet/hydrant{pixel_x = 0;pixel_y = -32},/turf/simulated/floor/tiled,/area/engineering/engine_airlock)
"aHe" = (/obj/machinery/light,/turf/simulated/floor/tiled,/area/engineering/engine_monitoring)
-"aHf" = (/obj/structure/table/standard,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/flashlight/heavy,/turf/simulated/floor/tiled,/area/engineering/storage)
+"aHf" = (/obj/structure/table/standard,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/flashlight/heavy,/obj/item/weapon/ladder_mobile,/turf/simulated/floor/tiled,/area/engineering/storage)
"aHg" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled,/area/engineering/storage)
"aHh" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/engineering/storage)
"aHi" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled,/area/engineering/storage)
@@ -1740,7 +1740,7 @@
"aHx" = (/obj/structure/table/reinforced,/obj/item/clothing/head/welding,/obj/item/weapon/storage/belt/utility,/turf/simulated/floor/tiled/dark,/area/ai_monitored/storage/eva)
"aHy" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/corner/blue/diagonal,/turf/simulated/floor/tiled/dark,/area/ai_monitored/storage/eva)
"aHz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor,/obj/structure/cable/green{d2 = 8;icon_state = "0-8"},/turf/simulated/floor/plating,/area/bridge)
-"aHA" = (/obj/structure/table/reinforced,/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/turf/simulated/floor/tiled/dark,/area/ai_monitored/storage/eva)
+"aHA" = (/obj/structure/table/reinforced,/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/weapon/ladder_mobile,/turf/simulated/floor/tiled/dark,/area/ai_monitored/storage/eva)
"aHB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/ai_monitored/storage/eva)
"aHC" = (/obj/machinery/camera/network/command{c_tag = "Bridge - Command Deck Entrance";dir = 1},/obj/effect/floor_decal/corner/paleblue/full{icon_state = "corner_white_full";dir = 8},/obj/structure/cable/green{d1 = 4;d2 = 8;icon_state = "4-8"},/turf/simulated/floor/tiled,/area/bridge)
"aHD" = (/turf/simulated/wall/r_wall,/area/crew_quarters/heads/hos)
@@ -2122,7 +2122,7 @@
"aOP" = (/obj/structure/disposalpipe/segment{dir = 8;icon_state = "pipe-c"},/turf/simulated/floor/tiled,/area/engineering/foyer)
"aOQ" = (/obj/item/device/radio/intercom{dir = 0;name = "Station Intercom (General)";pixel_x = 27},/turf/simulated/floor/tiled,/area/engineering/foyer)
"aOR" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/corner/blue{icon_state = "corner_white";dir = 6},/turf/simulated/floor/tiled/dark,/area/ai_monitored/storage/eva)
-"aOS" = (/obj/item/device/radio/intercom{frequency = 1459;name = "Station Intercom (General)";pixel_x = -30},/obj/structure/table/reinforced,/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1;pixel_y = -1},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled/dark,/area/ai_monitored/storage/eva)
+"aOS" = (/obj/item/device/radio/intercom{frequency = 1459;name = "Station Intercom (General)";pixel_x = -30},/obj/structure/table/reinforced,/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1;pixel_y = -1},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/item/weapon/ladder_mobile,/turf/simulated/floor/tiled/dark,/area/ai_monitored/storage/eva)
"aOT" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/starboard)
"aOU" = (/turf/simulated/wall/r_wall,/area/crew_quarters/heads/hop)
"aOV" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{name = "E.V.A.";req_one_access = list(18)},/turf/simulated/floor/tiled/dark,/area/ai_monitored/storage/eva)