diff --git a/code/_onclick/ai.dm b/code/_onclick/ai.dm
index 3b88412b94..799cc5d113 100644
--- a/code/_onclick/ai.dm
+++ b/code/_onclick/ai.dm
@@ -35,6 +35,9 @@
if(stat)
return
+ if(control_disabled)
+ return
+
var/list/modifiers = params2list(params)
if(modifiers["shift"] && modifiers["ctrl"])
CtrlShiftClickOn(A)
@@ -45,27 +48,18 @@
if(modifiers["shift"])
ShiftClickOn(A)
return
- if(modifiers["alt"]) // alt and alt-gr (rightalt)
+ if(modifiers["alt"])
AltClickOn(A)
return
if(modifiers["ctrl"])
CtrlClickOn(A)
return
- if(control_disabled || !checkClickCooldown())
- return
-
if(aiCamera.in_camera_mode)
aiCamera.camera_mode_off()
aiCamera.captureimage(A, usr)
return
- /*
- AI restrained() currently does nothing
- if(restrained())
- RestrainedClickOn(A)
- else
- */
A.add_hiddenprint(src)
A.attack_ai(src)
diff --git a/code/_onclick/rig.dm b/code/_onclick/rig.dm
index 3a70c8d36d..e281505dc2 100644
--- a/code/_onclick/rig.dm
+++ b/code/_onclick/rig.dm
@@ -63,7 +63,7 @@
return loc == card
/mob/living/proc/HardsuitClickOn(var/atom/A, var/alert_ai = 0)
- if(!can_use_rig() || !checkClickCooldown())
+ if(!can_use_rig())
return 0
var/obj/item/weapon/rig/rig = get_rig()
if(istype(rig) && !rig.offline && rig.selected_module)
diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm
index b866a71a2a..6a90413228 100644
--- a/code/game/machinery/vending.dm
+++ b/code/game/machinery/vending.dm
@@ -1014,7 +1014,8 @@
/obj/item/weapon/storage/toolbox/lunchbox/mars = 3,
/obj/item/weapon/storage/toolbox/lunchbox/cti = 3,
/obj/item/weapon/storage/toolbox/lunchbox/nymph = 3,
- /obj/item/weapon/storage/toolbox/lunchbox/syndicate = 3)
+ /obj/item/weapon/storage/toolbox/lunchbox/syndicate = 3,
+ /obj/item/trash/bowl = 10) //VOREStation Add
contraband = list(/obj/item/weapon/material/knife/butch = 2)
/obj/machinery/vending/sovietsoda
diff --git a/code/game/machinery/vending_vr.dm b/code/game/machinery/vending_vr.dm
index 2f1b518343..83db8f713e 100644
--- a/code/game/machinery/vending_vr.dm
+++ b/code/game/machinery/vending_vr.dm
@@ -22,35 +22,6 @@
/obj/item/clothing/glasses/omnihud/med = 4, /obj/item/device/glasses_kit = 1, /obj/item/weapon/storage/quickdraw/syringe_case = 4)
..()
-//Custom vendors
-/obj/machinery/vending/dinnerware
- name = "Dinnerware"
- desc = "A kitchen and restaurant equipment vendor."
- product_ads = "Mm, food stuffs!;Food and food accessories.;Get your plates!;You like forks?;I like forks.;Woo, utensils.;You don't really need these..."
- icon_state = "dinnerware"
- products = list(
- /obj/item/weapon/tray = 8,
- /obj/item/weapon/material/kitchen/utensil/fork = 6,
- /obj/item/weapon/material/knife/plastic = 6,
- /obj/item/weapon/material/kitchen/utensil/spoon = 6,
- /obj/item/weapon/material/knife = 3,
- /obj/item/weapon/material/kitchen/rollingpin = 2,
- /obj/item/weapon/reagent_containers/food/drinks/glass2/square = 8,
- /obj/item/weapon/reagent_containers/food/drinks/glass2/shake = 8,
- /obj/item/weapon/glass_extra/stick = 15,
- /obj/item/weapon/glass_extra/straw = 15,
- /obj/item/clothing/suit/chef/classic = 2,
- /obj/item/weapon/storage/toolbox/lunchbox = 3,
- /obj/item/weapon/storage/toolbox/lunchbox/heart = 3,
- /obj/item/weapon/storage/toolbox/lunchbox/cat = 3,
- /obj/item/weapon/storage/toolbox/lunchbox/nt = 3,
- /obj/item/weapon/storage/toolbox/lunchbox/mars = 3,
- /obj/item/weapon/storage/toolbox/lunchbox/cti = 3,
- /obj/item/weapon/storage/toolbox/lunchbox/nymph = 3,
- /obj/item/weapon/storage/toolbox/lunchbox/syndicate = 3,
- /obj/item/trash/bowl = 30)
- contraband = list(/obj/item/weapon/material/knife/butch = 2)
-
//I want this not just as part of the zoo. ;v
/obj/machinery/vending/food
name = "Food-O-Mat"
diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm
index 3e571009d2..f89aa2edc9 100644
--- a/code/game/objects/structures.dm
+++ b/code/game/objects/structures.dm
@@ -8,11 +8,21 @@
var/parts
var/list/climbers = list()
var/block_turf_edges = FALSE // If true, turf edge icons will not be made on the turf this occupies.
+
+ var/list/connections = list("0", "0", "0", "0")
+ var/list/other_connections = list("0", "0", "0", "0")
+ var/list/blend_objects = newlist() // Objects which to blend with
+ var/list/noblend_objects = newlist() //Objects to avoid blending with (such as children of listed blend objects.
+
+/obj/structure/Initialize()
+ . = ..()
+ if(climbable)
+ verbs += /obj/structure/proc/climb_on
/obj/structure/Destroy()
if(parts)
new parts(loc)
- . = ..()
+ return ..()
/obj/structure/attack_hand(mob/user)
if(breakable)
@@ -46,13 +56,7 @@
if(3.0)
return
-/obj/structure/New()
- ..()
- if(climbable)
- verbs += /obj/structure/proc/climb_on
-
/obj/structure/proc/climb_on()
-
set name = "Climb structure"
set desc = "Climbs onto a structure."
set category = "Object"
@@ -61,7 +65,6 @@
do_climb(usr)
/obj/structure/MouseDrop_T(mob/target, mob/user)
-
var/mob/living/H = user
if(istype(H) && can_climb(H) && target == user)
do_climb(target)
@@ -185,3 +188,72 @@
user.do_attack_animation(src)
spawn(1) qdel(src)
return 1
+
+/obj/structure/proc/can_visually_connect()
+ return anchored
+
+/obj/structure/proc/can_visually_connect_to(var/obj/structure/S)
+ return istype(S, src)
+
+/obj/structure/proc/update_connections(propagate = 0)
+ var/list/dirs = list()
+ var/list/other_dirs = list()
+
+ for(var/obj/structure/S in orange(src, 1))
+ if(can_visually_connect_to(S))
+ if(S.can_visually_connect())
+ if(propagate)
+ //S.update_connections() //Not here
+ S.update_icon()
+ dirs += get_dir(src, S)
+
+ if(!can_visually_connect())
+ connections = list("0", "0", "0", "0")
+ other_connections = list("0", "0", "0", "0")
+ return FALSE
+
+ for(var/direction in cardinal)
+ var/turf/T = get_step(src, direction)
+ var/success = 0
+ for(var/b_type in blend_objects)
+ if(istype(T, b_type))
+ success = 1
+ if(propagate)
+ var/turf/simulated/wall/W = T
+ if(istype(W))
+ W.update_connections(1)
+ if(success)
+ break
+ if(success)
+ break
+ if(!success)
+ for(var/obj/O in T)
+ for(var/b_type in blend_objects)
+ if(istype(O, b_type))
+ success = 1
+ for(var/obj/structure/S in T)
+ if(istype(S, src))
+ success = 0
+ for(var/nb_type in noblend_objects)
+ if(istype(O, nb_type))
+ success = 0
+
+ if(success)
+ break
+ if(success)
+ break
+
+ if(success)
+ dirs += get_dir(src, T)
+ other_dirs += get_dir(src, T)
+
+ refresh_neighbors()
+
+ connections = dirs_to_corner_states(dirs)
+ other_connections = dirs_to_corner_states(other_dirs)
+ return TRUE
+
+/obj/structure/proc/refresh_neighbors()
+ for(var/thing in RANGE_TURFS(1, src))
+ var/turf/T = thing
+ T.update_icon()
diff --git a/code/game/objects/structures/catwalk.dm b/code/game/objects/structures/catwalk.dm
index 26e040c7e9..85996cd61b 100644
--- a/code/game/objects/structures/catwalk.dm
+++ b/code/game/objects/structures/catwalk.dm
@@ -1,102 +1,119 @@
-// Based on catwalk.dm from https://github.com/Endless-Horizon/CEV-Eris
/obj/structure/catwalk
name = "catwalk"
desc = "Cats really don't like these things."
- plane = DECAL_PLANE
- layer = ABOVE_UTILITY
icon = 'icons/turf/catwalks.dmi'
icon_state = "catwalk"
+ plane = DECAL_PLANE
+ layer = ABOVE_UTILITY
density = 0
+ anchored = 1.0
+ var/hatch_open = FALSE
+ var/plating_color = null
+ var/obj/item/stack/tile/plated_tile = null
+ var/static/plating_colors = list(
+ /obj/item/stack/tile/floor = "#858a8f",
+ /obj/item/stack/tile/floor/dark = "#4f4f4f",
+ /obj/item/stack/tile/floor/white = "#e8e8e8")
var/health = 100
var/maxhealth = 100
- anchored = 1.0
/obj/structure/catwalk/Initialize()
. = ..()
- for(var/obj/structure/catwalk/O in range(1))
- O.update_icon()
for(var/obj/structure/catwalk/C in get_turf(src))
if(C != src)
- warning("Duplicate [type] in [loc] ([x], [y], [z])")
- return INITIALIZE_HINT_QDEL
+ qdel(C)
+ update_connections(1)
update_icon()
+
/obj/structure/catwalk/Destroy()
- var/turf/location = loc
- . = ..()
- location.alpha = initial(location.alpha)
- for(var/obj/structure/catwalk/L in orange(location, 1))
- L.update_icon()
+ redraw_nearby_catwalks()
+ update_falling()
+ return ..()
+
+/obj/structure/catwalk/proc/update_falling()
+ spawn(1) //We get called in Destroy() and things. We might not be gone yet, so let's just put this off.
+ if(istype(loc, /turf/simulated/open))
+ var/turf/simulated/open/O = loc
+ O.update() //Will cause anything on the open turf to fall if it should
+
+/obj/structure/catwalk/proc/redraw_nearby_catwalks()
+ for(var/direction in alldirs)
+ var/obj/structure/catwalk/L = locate() in get_step(src, direction)
+ if(L)
+ L.update_connections()
+ L.update_icon() //so siding get updated properly
+
/obj/structure/catwalk/update_icon()
- var/connectdir = 0
- for(var/direction in cardinal)
- if(locate(/obj/structure/catwalk, get_step(src, direction)))
- connectdir |= direction
-
- //Check the diagonal connections for corners, where you have, for example, connections both north and east. In this case it checks for a north-east connection to determine whether to add a corner marker or not.
- var/diagonalconnect = 0 //1 = NE; 2 = SE; 4 = NW; 8 = SW
- //NORTHEAST
- if(connectdir & NORTH && connectdir & EAST)
- if(locate(/obj/structure/catwalk, get_step(src, NORTHEAST)))
- diagonalconnect |= 1
- //SOUTHEAST
- if(connectdir & SOUTH && connectdir & EAST)
- if(locate(/obj/structure/catwalk, get_step(src, SOUTHEAST)))
- diagonalconnect |= 2
- //NORTHWEST
- if(connectdir & NORTH && connectdir & WEST)
- if(locate(/obj/structure/catwalk, get_step(src, NORTHWEST)))
- diagonalconnect |= 4
- //SOUTHWEST
- if(connectdir & SOUTH && connectdir & WEST)
- if(locate(/obj/structure/catwalk, get_step(src, SOUTHWEST)))
- diagonalconnect |= 8
-
- icon_state = "catwalk[connectdir]-[diagonalconnect]"
-
+ update_connections()
+ cut_overlays()
+ icon_state = ""
+ var/image/I
+ if(!hatch_open)
+ for(var/i = 1 to 4)
+ I = image(icon, "catwalk[connections[i]]", dir = 1<<(i-1))
+ add_overlay(I)
+ if(plating_color)
+ I = image(icon, "plated")
+ I.color = plating_color
+ add_overlay(I)
/obj/structure/catwalk/ex_act(severity)
switch(severity)
- if(1.0)
+ if(1)
+ new /obj/item/stack/rods(src.loc)
qdel(src)
- if(2.0)
+ if(2)
+ new /obj/item/stack/rods(src.loc)
qdel(src)
- if(3.0)
- qdel(src)
- return
+
+/obj/structure/catwalk/attack_robot(var/mob/user)
+ if(Adjacent(user))
+ attack_hand(user)
+
+/obj/structure/catwalk/proc/deconstruct(mob/user)
+ playsound(src, 'sound/items/Welder.ogg', 100, 1)
+ to_chat(user, "Slicing \the [src] joints ...")
+ new /obj/item/stack/rods(src.loc)
+ new /obj/item/stack/rods(src.loc)
+ //Lattice would delete itself, but let's save ourselves a new obj
+ if(istype(src.loc, /turf/space) || istype(src.loc, /turf/simulated/open))
+ new /obj/structure/lattice/(src.loc)
+ if(plated_tile)
+ new plated_tile(src.loc)
+ qdel(src)
/obj/structure/catwalk/attackby(obj/item/C as obj, mob/user as mob)
- if(istype(C, /obj/item/weapon/weldingtool))
- var/obj/item/weapon/weldingtool/WT = C
- if(WT.isOn())
- if(WT.remove_fuel(0, user))
- to_chat(user, "Slicing lattice joints ...")
- new /obj/item/stack/rods(src.loc)
- new /obj/item/stack/rods(src.loc)
- new /obj/structure/lattice(src.loc)
- qdel(src)
- if(C.is_screwdriver())
- if(health < maxhealth)
- to_chat(user, "You begin repairing \the [src.name] with \the [C.name].")
- if(do_after(user, 20, src))
- health = maxhealth
- else
- take_damage(C.force)
- user.setClickCooldown(user.get_attack_speed(C))
- return ..()
+ if(C.is_crowbar() && plated_tile)
+ hatch_open = !hatch_open
+ if(hatch_open)
+ playsound(src, 'sound/items/Crowbar.ogg', 100, 2)
+ to_chat(user, "You pry open \the [src]'s maintenance hatch.")
+ update_falling()
+ else
+ playsound(src, 'sound/items/Deconstruct.ogg', 100, 2)
+ to_chat(user, "You shut \the [src]'s maintenance hatch.")
+ update_icon()
+ return
+ if(istype(C, /obj/item/stack/tile/floor) && !plated_tile)
+ var/obj/item/stack/tile/floor/ST = C
+ to_chat(user, "Placing tile...")
+ if (!do_after(user, 10))
+ return
+ if(!ST.use(1))
+ return
+ to_chat(user, "You plate \the [src]")
+ name = "plated catwalk"
+ plated_tile = C.type
+ src.add_fingerprint(user)
+ for(var/tiletype in plating_colors)
+ if(istype(ST, tiletype))
+ plating_color = plating_colors[tiletype]
+ update_icon()
-/obj/structure/catwalk/Crossed()
- . = ..()
- if(isliving(usr) && !usr.is_incorporeal())
- playsound(src, pick('sound/effects/footstep/catwalk1.ogg', 'sound/effects/footstep/catwalk2.ogg', 'sound/effects/footstep/catwalk3.ogg', 'sound/effects/footstep/catwalk4.ogg', 'sound/effects/footstep/catwalk5.ogg'), 25, 1)
-
-/obj/structure/catwalk/CheckExit(atom/movable/O, turf/target)
- if(O.checkpass(PASSGRILLE))
- return 1
- if(target && target.z < src.z)
- return 0
- return 1
+/obj/structure/catwalk/refresh_neighbors()
+ return
/obj/structure/catwalk/take_damage(amount)
health -= amount
@@ -104,4 +121,66 @@
visible_message("\The [src] breaks down!")
playsound(loc, 'sound/effects/grillehit.ogg', 50, 1)
new /obj/item/stack/rods(get_turf(src))
- Destroy()
\ No newline at end of file
+ Destroy()
+
+/obj/structure/catwalk/Crossed()
+ . = ..()
+ if(isliving(usr) && !usr.is_incorporeal())
+ playsound(src, pick('sound/effects/footstep/catwalk1.ogg', 'sound/effects/footstep/catwalk2.ogg', 'sound/effects/footstep/catwalk3.ogg', 'sound/effects/footstep/catwalk4.ogg', 'sound/effects/footstep/catwalk5.ogg'), 25, 1)
+
+/obj/effect/catwalk_plated
+ name = "plated catwalk spawner"
+ icon = 'icons/turf/catwalks.dmi'
+ icon_state = "catwalk_plated"
+ density = 1
+ anchored = 1.0
+ var/activated = FALSE
+ plane = DECAL_PLANE
+ layer = ABOVE_UTILITY
+ var/tile = /obj/item/stack/tile/floor
+ var/platecolor = "#858a8f"
+
+/obj/effect/catwalk_plated/Initialize(mapload)
+ . = ..()
+ activate()
+
+/obj/effect/catwalk_plated/CanPass()
+ return 0
+
+/obj/effect/catwalk_plated/attack_hand()
+ attack_generic()
+
+/obj/effect/catwalk_plated/attack_ghost()
+ attack_generic()
+
+/obj/effect/catwalk_plated/attack_generic()
+ activate()
+
+/obj/effect/catwalk_plated/proc/activate()
+ if(activated) return
+
+ if(locate(/obj/structure/catwalk) in loc)
+ warning("Frame Spawner: A catwalk already exists at [loc.x]-[loc.y]-[loc.z]")
+ else
+ var/obj/structure/catwalk/C = new /obj/structure/catwalk(loc)
+ C.plated_tile = tile
+ C.plating_color = platecolor
+ C.name = "plated catwalk"
+ C.update_icon()
+ activated = 1
+ /* We don't have wallframes - yet
+ for(var/turf/T in orange(src, 1))
+ for(var/obj/effect/wallframe_spawn/other in T)
+ if(!other.activated) other.activate()
+ */
+ qdel(src)
+
+/obj/effect/catwalk_plated/dark
+ icon_state = "catwalk_plateddark"
+ tile = /obj/item/stack/tile/floor/dark
+ platecolor = "#4f4f4f"
+
+/obj/effect/catwalk_plated/white
+ icon_state = "catwalk_platedwhite"
+ tile = /obj/item/stack/tile/floor/white
+ platecolor = "#e8e8e8"
diff --git a/code/modules/clothing/spacesuits/rig/suits/alien.dm b/code/modules/clothing/spacesuits/rig/suits/alien.dm
index 56c7fe6367..692a578690 100644
--- a/code/modules/clothing/spacesuits/rig/suits/alien.dm
+++ b/code/modules/clothing/spacesuits/rig/suits/alien.dm
@@ -51,7 +51,13 @@
item_flags = THICKMATERIAL
siemens_coefficient = 0.2
offline_slowdown = 5
- allowed = list(/obj/item/weapon/gun,/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit)
+ allowed = list(
+ /obj/item/weapon/gun,
+ /obj/item/device/flashlight,
+ /obj/item/weapon/tank,
+ /obj/item/device/suit_cooling_unit,
+ /obj/item/weapon/storage
+ )
air_type = /obj/item/weapon/tank/vox
diff --git a/code/modules/clothing/spacesuits/rig/suits/combat.dm b/code/modules/clothing/spacesuits/rig/suits/combat.dm
index f88f057907..57e5f6601a 100644
--- a/code/modules/clothing/spacesuits/rig/suits/combat.dm
+++ b/code/modules/clothing/spacesuits/rig/suits/combat.dm
@@ -12,7 +12,14 @@
offline_vision_restriction = 1
helm_type = /obj/item/clothing/head/helmet/space/rig/combat
- allowed = list(/obj/item/weapon/gun,/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit,/obj/item/weapon/melee/baton)
+ allowed = list(
+ /obj/item/weapon/gun,
+ /obj/item/device/flashlight,
+ /obj/item/weapon/tank,
+ /obj/item/device/suit_cooling_unit,
+ /obj/item/weapon/melee/baton,
+ /obj/item/weapon/storage
+ )
/obj/item/weapon/rig/combat/equipped
@@ -42,10 +49,26 @@
slowdown = 1
offline_slowdown = 3
offline_vision_restriction = 1
- allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/handcuffs, \
- /obj/item/device/t_scanner, /obj/item/weapon/rcd, /obj/item/weapon/weldingtool, /obj/item/weapon/tool, /obj/item/device/multitool, \
- /obj/item/device/radio, /obj/item/device/analyzer,/obj/item/weapon/storage/briefcase/inflatable, /obj/item/weapon/melee/baton, /obj/item/weapon/gun, \
- /obj/item/weapon/storage/firstaid, /obj/item/weapon/reagent_containers/hypospray, /obj/item/roller, /obj/item/device/suit_cooling_unit)
+ allowed = list(
+ /obj/item/device/flashlight,
+ /obj/item/weapon/tank,
+ /obj/item/ammo_magazine,
+ /obj/item/ammo_casing,
+ /obj/item/weapon/handcuffs,
+ /obj/item/device/t_scanner,
+ /obj/item/weapon/rcd,
+ /obj/item/weapon/weldingtool,
+ /obj/item/weapon/tool,
+ /obj/item/device/multitool,
+ /obj/item/device/radio,
+ /obj/item/device/analyzer,
+ /obj/item/weapon/melee/baton,
+ /obj/item/weapon/gun,
+ /obj/item/weapon/storage,
+ /obj/item/weapon/reagent_containers/hypospray,
+ /obj/item/roller,
+ /obj/item/device/suit_cooling_unit
+ )
chest_type = /obj/item/clothing/suit/space/rig/military
helm_type = /obj/item/clothing/head/helmet/space/rig/military
diff --git a/code/modules/clothing/spacesuits/rig/suits/ert.dm b/code/modules/clothing/spacesuits/rig/suits/ert.dm
index 33b4e07351..0edd36c1d2 100644
--- a/code/modules/clothing/spacesuits/rig/suits/ert.dm
+++ b/code/modules/clothing/spacesuits/rig/suits/ert.dm
@@ -14,10 +14,25 @@
siemens_coefficient= 0.5
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 100, rad = 100)
- allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank, /obj/item/device/t_scanner, /obj/item/weapon/rcd, /obj/item/weapon/tool/crowbar, \
- /obj/item/weapon/tool/screwdriver, /obj/item/weapon/weldingtool, /obj/item/weapon/tool/wirecutters, /obj/item/weapon/tool/wrench, /obj/item/device/multitool, \
- /obj/item/device/radio, /obj/item/device/analyzer,/obj/item/weapon/storage/briefcase/inflatable, /obj/item/weapon/melee/baton, /obj/item/weapon/gun, \
- /obj/item/weapon/storage/firstaid, /obj/item/weapon/reagent_containers/hypospray, /obj/item/roller)
+ allowed = list(
+ /obj/item/device/flashlight,
+ /obj/item/weapon/tank,
+ /obj/item/device/t_scanner,
+ /obj/item/weapon/rcd,
+ /obj/item/weapon/tool/crowbar,
+ /obj/item/weapon/tool/screwdriver,
+ /obj/item/weapon/weldingtool,
+ /obj/item/weapon/tool/wirecutters,
+ /obj/item/weapon/tool/wrench,
+ /obj/item/device/multitool,
+ /obj/item/device/radio,
+ /obj/item/device/analyzer,
+ /obj/item/weapon/storage,
+ /obj/item/weapon/melee/baton,
+ /obj/item/weapon/gun,
+ /obj/item/weapon/reagent_containers/hypospray,
+ /obj/item/roller
+ )
initial_modules = list(
/obj/item/rig_module/ai_container,
diff --git a/code/modules/clothing/spacesuits/rig/suits/light.dm b/code/modules/clothing/spacesuits/rig/suits/light.dm
index edf982464d..b2a525f24d 100644
--- a/code/modules/clothing/spacesuits/rig/suits/light.dm
+++ b/code/modules/clothing/spacesuits/rig/suits/light.dm
@@ -4,7 +4,17 @@
desc = "A lighter, less armoured rig suit."
icon_state = "ninja_rig"
suit_type = "light suit"
- allowed = list(/obj/item/weapon/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit,/obj/item/weapon/cell)
+ allowed = list(
+ /obj/item/weapon/gun,
+ /obj/item/ammo_magazine,
+ /obj/item/ammo_casing,
+ /obj/item/weapon/melee/baton,
+ /obj/item/weapon/handcuffs,
+ /obj/item/weapon/tank,
+ /obj/item/device/suit_cooling_unit,
+ /obj/item/weapon/cell,
+ /obj/item/weapon/storage
+ )
armor = list(melee = 50, bullet = 15, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0)
emp_protection = 10
slowdown = 0
diff --git a/code/modules/clothing/spacesuits/rig/suits/merc.dm b/code/modules/clothing/spacesuits/rig/suits/merc.dm
index 4724e2c733..56435ff7f5 100644
--- a/code/modules/clothing/spacesuits/rig/suits/merc.dm
+++ b/code/modules/clothing/spacesuits/rig/suits/merc.dm
@@ -14,7 +14,18 @@
siemens_coefficient = 0.3
glove_type = /obj/item/clothing/gloves/gauntlets/rig/eva
helm_type = /obj/item/clothing/head/helmet/space/rig/merc
- allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit,/obj/item/weapon/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword,/obj/item/weapon/handcuffs)
+ allowed = list(
+ /obj/item/device/flashlight,
+ /obj/item/weapon/tank,
+ /obj/item/device/suit_cooling_unit,
+ /obj/item/weapon/gun,
+ /obj/item/ammo_magazine,
+ /obj/item/ammo_casing,
+ /obj/item/weapon/melee/baton,
+ /obj/item/weapon/melee/energy/sword,
+ /obj/item/weapon/handcuffs,
+ /obj/item/weapon/storage
+ )
initial_modules = list(
/obj/item/rig_module/mounted,
diff --git a/code/modules/clothing/spacesuits/rig/suits/pmc.dm b/code/modules/clothing/spacesuits/rig/suits/pmc.dm
index b10e559977..e312ee826a 100644
--- a/code/modules/clothing/spacesuits/rig/suits/pmc.dm
+++ b/code/modules/clothing/spacesuits/rig/suits/pmc.dm
@@ -12,10 +12,25 @@
req_access = list(access_cent_specops)
armor = list(melee = 60, bullet = 50, laser = 35,energy = 15, bomb = 30, bio = 100, rad = 95)
- allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank, /obj/item/device/t_scanner, /obj/item/weapon/rcd, /obj/item/weapon/tool/crowbar, \
- /obj/item/weapon/tool/screwdriver, /obj/item/weapon/weldingtool, /obj/item/weapon/tool/wirecutters, /obj/item/weapon/tool/wrench, /obj/item/device/multitool, \
- /obj/item/device/radio, /obj/item/device/analyzer,/obj/item/weapon/storage/briefcase/inflatable, /obj/item/weapon/melee/baton, /obj/item/weapon/gun, \
- /obj/item/weapon/storage/firstaid, /obj/item/weapon/reagent_containers/hypospray, /obj/item/roller)
+ allowed = list(
+ /obj/item/device/flashlight,
+ /obj/item/weapon/tank,
+ /obj/item/device/t_scanner,
+ /obj/item/weapon/rcd,
+ /obj/item/weapon/tool/crowbar,
+ /obj/item/weapon/tool/screwdriver,
+ /obj/item/weapon/weldingtool,
+ /obj/item/weapon/tool/wirecutters,
+ /obj/item/weapon/tool/wrench,
+ /obj/item/device/multitool,
+ /obj/item/device/radio,
+ /obj/item/device/analyzer,
+ /obj/item/weapon/melee/baton,
+ /obj/item/weapon/gun,
+ /obj/item/weapon/storage,
+ /obj/item/weapon/reagent_containers/hypospray,
+ /obj/item/roller
+ )
/obj/item/weapon/rig/pmc/commander
name = "PMC-C hardsuit control module"
diff --git a/code/modules/clothing/spacesuits/rig/suits/station.dm b/code/modules/clothing/spacesuits/rig/suits/station.dm
index f9ef544a3a..d506725759 100644
--- a/code/modules/clothing/spacesuits/rig/suits/station.dm
+++ b/code/modules/clothing/spacesuits/rig/suits/station.dm
@@ -35,8 +35,7 @@
/obj/item/device/flashlight,
/obj/item/weapon/tank,
/obj/item/device/suit_cooling_unit,
- /obj/item/weapon/storage/briefcase,
- /obj/item/weapon/storage/secure/briefcase
+ /obj/item/weapon/storage,
)
req_access = list()
@@ -83,7 +82,7 @@
/obj/item/device/flashlight,
/obj/item/weapon/tank,
/obj/item/device/suit_cooling_unit,
- /obj/item/weapon/storage/bag/ore,
+ /obj/item/weapon/storage,
/obj/item/device/t_scanner,
/obj/item/weapon/pickaxe,
/obj/item/weapon/rcd
@@ -121,7 +120,7 @@
/obj/item/device/flashlight,
/obj/item/weapon/tank,
/obj/item/device/suit_cooling_unit,
- /obj/item/weapon/storage/briefcase/inflatable,
+ /obj/item/weapon/storage,
/obj/item/device/t_scanner,
/obj/item/weapon/rcd
)
@@ -168,7 +167,7 @@
/obj/item/device/flashlight,
/obj/item/weapon/tank,
/obj/item/device/suit_cooling_unit,
- /obj/item/weapon/storage/briefcase/inflatable,
+ /obj/item/weapon/storage,
/obj/item/device/t_scanner,
/obj/item/weapon/rcd
)
@@ -212,7 +211,7 @@
/obj/item/weapon/tank,
/obj/item/device/suit_cooling_unit,
/obj/item/stack/flag,
- /obj/item/weapon/storage/excavation,
+ /obj/item/weapon/storage,
/obj/item/weapon/pickaxe,
/obj/item/device/healthanalyzer,
/obj/item/device/measuring_tape,
@@ -222,8 +221,8 @@
/obj/item/device/gps,
/obj/item/device/beacon_locator,
/obj/item/device/radio/beacon,
- /obj/item/weapon/pickaxe/hand,
- /obj/item/weapon/storage/bag/fossils)
+ /obj/item/weapon/pickaxe/hand
+ )
req_access = list()
req_one_access = list()
@@ -256,7 +255,7 @@
/obj/item/device/flashlight,
/obj/item/weapon/tank,
/obj/item/device/suit_cooling_unit,
- /obj/item/weapon/storage/firstaid,
+ /obj/item/weapon/storage,
/obj/item/device/healthanalyzer,
/obj/item/stack/medical,
/obj/item/roller
@@ -296,7 +295,8 @@
/obj/item/device/flashlight,
/obj/item/weapon/tank,
/obj/item/device/suit_cooling_unit,
- /obj/item/weapon/melee/baton
+ /obj/item/weapon/melee/baton,
+ /obj/item/weapon/storage
)
req_access = list()
diff --git a/code/modules/mob/living/carbon/human/emote_vr.dm b/code/modules/mob/living/carbon/human/emote_vr.dm
index b644b59d62..478ce4da51 100644
--- a/code/modules/mob/living/carbon/human/emote_vr.dm
+++ b/code/modules/mob/living/carbon/human/emote_vr.dm
@@ -47,6 +47,10 @@
message = "lets out a merp."
m_type = 2
playsound(loc, 'sound/voice/merp.ogg', 50, 1, -1, preference = /datum/client_preference/emote_noises)
+ if("myarp")
+ message = "lets out a myarp."
+ m_type = 2
+ playsound(loc, 'sound/voice/myarp.ogg', 50, 1, -1, preference = /datum/client_preference/emote_noises)
if("bark")
message = "lets out a bark."
m_type = 2
@@ -77,7 +81,7 @@
message = "does a flip!"
m_type = 1
if("vhelp") //Help for Virgo-specific emotes.
- to_chat(src, "vwag, vflap, mlem, awoo, nya, peep, chirp, weh, merp, bark, hiss, squeak, nsay, nme, flip")
+ to_chat(src, "vwag, vflap, mlem, awoo, nya, peep, chirp, weh, merp, myarp, bark, hiss, squeak, nsay, nme, flip")
return TRUE
if(message)
@@ -90,10 +94,10 @@
/mob/living/carbon/human/proc/handle_flip_vr()
var/original_density = density
var/original_passflags = pass_flags
-
+
//Briefly un-dense to dodge projectiles
density = FALSE
-
+
//Parkour!
var/parkour_chance = 20 //Default
if(species)
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index eee25c0418..95e48587a4 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -944,10 +944,10 @@
set category = "IC"
set src = usr
- if(world.time <= next_click) // Hard check, before anything else, to avoid crashing
+ if(!checkClickCooldown())
return
- next_click = world.time + 1
+ setClickCooldown(1)
var/obj/item/W = get_active_hand()
if (W)
diff --git a/code/modules/mob/living/simple_mob/harvesting.dm b/code/modules/mob/living/simple_mob/harvesting.dm
index 5031a40a7b..95de747fee 100644
--- a/code/modules/mob/living/simple_mob/harvesting.dm
+++ b/code/modules/mob/living/simple_mob/harvesting.dm
@@ -17,7 +17,7 @@
/mob/living/simple_mob/examine(mob/user)
. = ..()
- if(harvest_tool && (get_dist(user, src) <= 3))
+ if(user && harvest_tool && (get_dist(user, src) <= 3))
. += "\The [src] can be [harvest_verb] with a [initial(harvest_tool.name)] every [round(harvest_cooldown, 0.1)] minutes."
var/time_to_harvest = (harvest_recent + harvest_cooldown) - world.time
if(time_to_harvest > 0)
@@ -39,3 +39,4 @@
var/new_path = pickweight(harvest_results)
new new_path(get_turf(user))
+ return
diff --git a/code/modules/mob/mob_grab.dm b/code/modules/mob/mob_grab.dm
index 0946990243..57353e2a9b 100644
--- a/code/modules/mob/mob_grab.dm
+++ b/code/modules/mob/mob_grab.dm
@@ -239,8 +239,6 @@
return
if(state == GRAB_UPGRADING)
return
- if(!assailant.checkClickCooldown())
- return
if(world.time < (last_action + UPGRADE_COOLDOWN))
return
if(!assailant.canmove || assailant.lying)
diff --git a/code/modules/multiz/movement.dm b/code/modules/multiz/movement.dm
index 8ccae7289d..842e71d588 100644
--- a/code/modules/multiz/movement.dm
+++ b/code/modules/multiz/movement.dm
@@ -48,6 +48,7 @@
var/area/area = get_area(src)
if(direction == UP && area.has_gravity() && !can_overcome_gravity())
var/obj/structure/lattice/lattice = locate() in destination.contents
+ var/obj/structure/catwalk/catwalk = locate() in destination.contents
if(lattice)
var/pull_up_time = max(5 SECONDS + (src.movement_delay() * 10), 1)
to_chat(src, "You grab \the [lattice] and start pulling yourself upward...")
@@ -57,6 +58,15 @@
else
to_chat(src, "You gave up on pulling yourself up.")
return 0
+ else if(catwalk?.hatch_open)
+ var/pull_up_time = max(5 SECONDS + (src.movement_delay() * 10), 1)
+ to_chat(src, "You grab the edge of \the [catwalk] and start pulling yourself upward...")
+ destination.audible_message("You hear something climbing up \the [catwalk].")
+ if(do_after(src, pull_up_time))
+ to_chat(src, "You pull yourself up.")
+ else
+ to_chat(src, "You gave up on pulling yourself up.")
+ return 0
else if(ismob(src)) //VOREStation Edit Start. Are they a mob, and are they currently flying??
var/mob/H = src
if(H.flying)
@@ -294,7 +304,7 @@
// Things that prevent objects standing on them from falling into turf below
/obj/structure/catwalk/CanFallThru(atom/movable/mover as mob|obj, turf/target as turf)
- if(target.z < z)
+ if((target.z < z) && !hatch_open)
return FALSE // TODO - Technically should be density = 1 and flags |= ON_BORDER
if(!isturf(mover.loc))
return FALSE // Only let loose floor items fall. No more snatching things off people's hands.
diff --git a/code/modules/tables/tables.dm b/code/modules/tables/tables.dm
index 31b112e9bd..f853e224fc 100644
--- a/code/modules/tables/tables.dm
+++ b/code/modules/tables/tables.dm
@@ -28,8 +28,6 @@ var/list/table_icon_cache = list()
var/carpeted = 0
var/carpeted_type = /obj/item/stack/tile/carpet
- var/list/connections = list("nw0", "ne0", "sw0", "se0")
-
var/item_place = 1 //allows items to be placed on the table, but not on benches.
/obj/structure/table/proc/update_material()
@@ -402,60 +400,6 @@ var/list/table_icon_cache = list()
if(carpeted)
overlays += "carpet_flip[type]"
-// set propagate if you're updating a table that should update tables around it too, for example if it's a new table or something important has changed (like material).
-/obj/structure/table/proc/update_connections(propagate=0)
- if(!material)
- connections = list("0", "0", "0", "0")
-
- if(propagate)
- for(var/obj/structure/table/T in oview(src, 1))
- T.update_connections()
- return
-
- var/list/blocked_dirs = list()
- for(var/obj/structure/window/W in get_turf(src))
- if(W.is_fulltile())
- connections = list("0", "0", "0", "0")
- return
- blocked_dirs |= W.dir
-
- for(var/D in list(NORTH, SOUTH, EAST, WEST) - blocked_dirs)
- var/turf/T = get_step(src, D)
- for(var/obj/structure/window/W in T)
- if(W.is_fulltile() || W.dir == reverse_dir[D])
- blocked_dirs |= D
- break
- else
- if(W.dir != D) // it's off to the side
- blocked_dirs |= W.dir|D // blocks the diagonal
-
- for(var/D in list(NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST) - blocked_dirs)
- var/turf/T = get_step(src, D)
-
- for(var/obj/structure/window/W in T)
- if(W.is_fulltile() || W.dir & reverse_dir[D])
- blocked_dirs |= D
- break
-
- // Blocked cardinals block the adjacent diagonals too. Prevents weirdness with tables.
- for(var/x in list(NORTH, SOUTH))
- for(var/y in list(EAST, WEST))
- if((x in blocked_dirs) || (y in blocked_dirs))
- blocked_dirs |= x|y
-
- var/list/connection_dirs = list()
-
- for(var/obj/structure/table/T in orange(src, 1))
- var/T_dir = get_dir(src, T)
- if(T_dir in blocked_dirs) continue
- if(material && T.material && material.name == T.material.name && flipped == T.flipped)
- connection_dirs |= T_dir
- if(propagate)
- spawn(0)
- T.update_connections()
- T.update_icon()
-
- connections = dirs_to_corner_states(connection_dirs)
#define CORNER_NONE 0
#define CORNER_COUNTERCLOCKWISE 1
diff --git a/code/modules/vchat/js/vchat.js b/code/modules/vchat/js/vchat.js
index 8300d162b2..a82bcb9b50 100644
--- a/code/modules/vchat/js/vchat.js
+++ b/code/modules/vchat/js/vchat.js
@@ -588,6 +588,10 @@ function start_vue() {
}
}
+ newmessage.content = newmessage.content.replace(
+ /(\b(https?):\/\/[\-A-Z0-9+&@#\/%?=~_|!:,.;]*[\-A-Z09+&@#\/%=~_|])/img, //Honestly good luck with this regex ~Gear
+ '$1');
+
//Unread indicator and insertion into current tab shown messages if sensible
if(this.current_categories.length && (this.current_categories.indexOf(newmessage.category) < 0)) { //Not in the current categories
if (isNaN(this.unread_messages[newmessage.category])) {
diff --git a/code/modules/vore/resizing/holder_micro_vr.dm b/code/modules/vore/resizing/holder_micro_vr.dm
index aa22fdd55b..1675e506a9 100644
--- a/code/modules/vore/resizing/holder_micro_vr.dm
+++ b/code/modules/vore/resizing/holder_micro_vr.dm
@@ -26,16 +26,12 @@
/obj/item/weapon/holder/micro/attack_self(mob/living/carbon/user) //reworked so it works w/ nonhumans
for(var/L in contents)
- if(ishuman(L) && user.checkClickCooldown()) // These canClicks() are repeated here to make sure users can't avoid the click delay
+ if(ishuman(L))
var/mob/living/carbon/human/H = L
H.help_shake_act(user)
- user.setClickCooldown(user.get_attack_speed()) //uses the same cooldown as regular attack_hand
- return
- if(isanimal(L) && user.checkClickCooldown())
+ if(isanimal(L))
var/mob/living/simple_mob/S = L
user.visible_message("[user] [S.response_help] \the [S].")
- user.setClickCooldown(user.get_attack_speed())
-
/obj/item/weapon/holder/micro/update_state()
if(isturf(loc) || !held_mob || held_mob.loc != src)
diff --git a/html/changelogs/atlantiscze-hardsuit.yml b/html/changelogs/atlantiscze-hardsuit.yml
new file mode 100644
index 0000000000..92cea41472
--- /dev/null
+++ b/html/changelogs/atlantiscze-hardsuit.yml
@@ -0,0 +1,6 @@
+author: atlantiscze
+
+delete-after: True
+
+changes:
+ - rscadd: "Hardsuits now allow backpacks to be carried in storage slot. This is limited to hardsuits which are worn on the back slot."
\ No newline at end of file
diff --git a/icons/turf/catwalks.dmi b/icons/turf/catwalks.dmi
index 9e3d3d977c..20c5e1f4d9 100644
Binary files a/icons/turf/catwalks.dmi and b/icons/turf/catwalks.dmi differ
diff --git a/maps/tether/submaps/om_ships/curashuttle.dmm b/maps/tether/submaps/om_ships/curashuttle.dmm
index 79e9e2aea3..91c134a7cd 100644
--- a/maps/tether/submaps/om_ships/curashuttle.dmm
+++ b/maps/tether/submaps/om_ships/curashuttle.dmm
@@ -117,7 +117,8 @@
/obj/machinery/power/apc{
dir = 4;
name = "east bump";
- pixel_y = 24
+ pixel_x = 24;
+ pixel_y = 0
},
/obj/structure/table/darkglass,
/obj/item/weapon/paper_bin{
@@ -126,9 +127,9 @@
},
/obj/item/weapon/pen/fountain,
/obj/machinery/photocopier/faxmachine{
+ department = "Curabitur Rescue Service";
name = "Curabitur fax machine";
- pixel_y = 1;
- department = "Curabitur Rescue Service"
+ pixel_y = 6
},
/turf/simulated/floor/carpet/bcarpet,
/area/shuttle/curabitur/curashuttle/cockpit)
@@ -175,6 +176,11 @@
/obj/item/ammo_casing/microbattery/medical/burn3,
/obj/item/ammo_casing/microbattery/medical/burn3,
/obj/item/ammo_casing/microbattery/medical/toxin3,
+/obj/item/weapon/card/id/syndicate{
+ access = list(616);
+ assignment = "Curabitur Contractor";
+ origin_tech = newlist()
+ },
/turf/simulated/floor/carpet/bcarpet,
/area/shuttle/curabitur/curashuttle/cockpit)
"au" = (
@@ -271,7 +277,8 @@
},
/obj/machinery/firealarm{
dir = 8;
- pixel_y = -24
+ pixel_x = -29;
+ pixel_y = 0
},
/obj/machinery/light{
dir = 8;
@@ -302,9 +309,6 @@
pixel_y = 8
},
/obj/machinery/atmospherics/pipe/vent,
-/obj/item/modular_computer/tablet/preset/custom_loadout/elite{
- pixel_y = -7
- },
/obj/structure/window/plastitanium{
icon_state = "window";
dir = 4
@@ -320,6 +324,23 @@
/obj/item/weapon/storage/secure/safe{
pixel_x = 31
},
+/obj/item/weapon/gun/projectile/automatic/mini_uzi,
+/obj/item/weapon/card/id/syndicate{
+ access = list(616);
+ assignment = "Curabitur Contractor";
+ origin_tech = newlist()
+ },
+/obj/item/weapon/card/id/syndicate{
+ access = list(616);
+ assignment = "Curabitur Contractor";
+ origin_tech = newlist()
+ },
+/obj/item/weapon/spacecash/c1000,
+/obj/item/weapon/spacecash/c1000,
+/obj/item/weapon/spacecash/c1000,
+/obj/item/weapon/spacecash/c1000,
+/obj/item/weapon/spacecash/c1000,
+/obj/item/weapon/spacecash/c1000,
/turf/simulated/floor/carpet/bcarpet,
/area/shuttle/curabitur/curashuttle/cockpit)
"aI" = (
@@ -355,7 +376,8 @@
dir = 8;
frequency = 1480;
id_tag = "curadocking";
- pixel_y = 28
+ pixel_x = 28;
+ pixel_y = 0
},
/turf/simulated/floor/tiled,
/area/shuttle/curabitur/curashuttle/med)
@@ -374,13 +396,22 @@
/turf/simulated/floor/tiled/white,
/area/shuttle/curabitur/curashuttle/med)
"aN" = (
-/obj/structure/table/darkglass,
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 8
},
-/obj/item/device/survivalcapsule,
-/obj/item/device/survivalcapsule,
-/obj/item/weapon/gun/projectile/automatic/mini_uzi,
+/obj/structure/closet,
+/obj/item/clothing/under/rank/nurse,
+/obj/item/clothing/under/rank/nurse,
+/obj/item/clothing/under/rank/medical,
+/obj/item/clothing/shoes/blue,
+/obj/item/clothing/shoes/blue,
+/obj/item/clothing/suit/storage/toggle/bomber/pilot,
+/obj/item/clothing/suit/storage/toggle/labcoat,
+/obj/item/clothing/accessory/storage/white_drop_pouches,
+/obj/item/clothing/accessory/storage/white_drop_pouches,
+/obj/item/clothing/accessory/holster/machete,
+/obj/item/clothing/accessory/holster/hip,
+/obj/item/weapon/material/knife/machete,
/turf/simulated/floor/carpet/bcarpet,
/area/shuttle/curabitur/curashuttle/cockpit)
"aO" = (
@@ -489,7 +520,6 @@
},
/obj/structure/table/standard,
/obj/fiftyspawner/steel,
-/obj/fiftyspawner/tritium,
/obj/item/weapon/storage/toolbox/syndicate/powertools,
/obj/item/stack/nanopaste/advanced,
/obj/item/stack/cable_coil,
@@ -499,9 +529,6 @@
/obj/item/weapon/storage/box/metalfoam,
/obj/item/bodybag/cryobag/robobag,
/obj/item/bodybag/cryobag/robobag,
-/obj/machinery/alarm{
- pixel_y = 25
- },
/obj/item/weapon/storage/belt/utility,
/turf/simulated/floor/tiled/techfloor/grid,
/area/shuttle/curabitur/curashuttle/eng)
@@ -678,10 +705,6 @@
/obj/structure/bed/chair/bay/comfy,
/turf/simulated/floor/tiled,
/area/shuttle/curabitur/curashuttle/med)
-"bq" = (
-/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
-/turf/simulated/floor/tiled,
-/area/shuttle/curabitur/curashuttle/med)
"br" = (
/obj/machinery/chemical_dispenser/ert/specialops,
/obj/structure/table/standard,
@@ -740,10 +763,6 @@
},
/turf/simulated/floor/tiled,
/area/shuttle/curabitur/curashuttle/med)
-"bz" = (
-/obj/machinery/atmospherics/pipe/manifold4w/hidden/yellow,
-/turf/simulated/wall/rpshull,
-/area/shuttle/curabitur/curashuttle/eng)
"bA" = (
/obj/structure/sign/redcross,
/turf/simulated/wall/rpshull,
@@ -760,7 +779,8 @@
/obj/machinery/power/apc{
dir = 8;
name = "west bump";
- pixel_y = -28
+ pixel_x = -28;
+ pixel_y = 0
},
/obj/machinery/power/terminal{
icon_state = "term";
@@ -803,6 +823,9 @@
d2 = 8;
icon_state = "2-8"
},
+/obj/machinery/atmospherics/pipe/simple/hidden/yellow{
+ dir = 6
+ },
/turf/simulated/floor/tiled,
/area/shuttle/curabitur/curashuttle/med)
"bE" = (
@@ -823,6 +846,12 @@
dir = 4
},
/obj/machinery/light,
+/obj/structure/sign/directions/engineering{
+ pixel_y = -32
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/yellow{
+ dir = 4
+ },
/turf/simulated/floor/carpet/sblucarpet,
/area/shuttle/curabitur/curashuttle/med)
"bF" = (
@@ -847,6 +876,9 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/hidden/yellow{
+ dir = 4
+ },
/turf/simulated/floor/carpet/sblucarpet,
/area/shuttle/curabitur/curashuttle/med)
"bG" = (
@@ -869,6 +901,9 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/hidden/yellow{
+ dir = 4
+ },
/turf/simulated/floor/carpet/sblucarpet,
/area/shuttle/curabitur/curashuttle/med)
"bH" = (
@@ -893,6 +928,9 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/hidden/yellow{
+ dir = 4
+ },
/turf/simulated/floor/carpet/sblucarpet,
/area/shuttle/curabitur/curashuttle/med)
"bI" = (
@@ -909,6 +947,9 @@
icon_state = "map-scrubbers";
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/hidden/yellow{
+ dir = 4
+ },
/turf/simulated/floor/tiled,
/area/shuttle/curabitur/curashuttle/med)
"bJ" = (
@@ -922,6 +963,15 @@
/obj/structure/handrail{
dir = 1
},
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_y = 0
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/universal{
+ dir = 4
+ },
/turf/simulated/floor/tiled,
/area/shuttle/curabitur/curashuttle/med)
"bK" = (
@@ -929,6 +979,16 @@
pixel_y = -26
},
/obj/machinery/light,
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_y = 0
+ },
+/obj/machinery/atmospherics/binary/pump/fuel{
+ icon_state = "map_off-fuel";
+ dir = 8
+ },
/turf/simulated/floor/tiled,
/area/shuttle/curabitur/curashuttle/med)
"bL" = (
@@ -937,6 +997,16 @@
/obj/structure/handrail{
dir = 1
},
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_y = 0
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/fuel{
+ icon_state = "intact-fuel";
+ dir = 8
+ },
/turf/simulated/floor/tiled,
/area/shuttle/curabitur/curashuttle/med)
"bM" = (
@@ -945,6 +1015,16 @@
frequency = 1480;
id_tag = "curadocking"
},
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_y = 0
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/fuel{
+ icon_state = "intact-fuel";
+ dir = 8
+ },
/turf/simulated/floor/plating,
/area/shuttle/curabitur/curashuttle/med)
"bN" = (
@@ -961,6 +1041,7 @@
icon_state = "1-2"
},
/obj/machinery/door/firedoor/glass,
+/obj/machinery/atmospherics/pipe/simple/hidden/yellow,
/turf/simulated/floor/tiled{
icon_state = "monotile"
},
@@ -982,22 +1063,11 @@
/turf/simulated/wall/rpshull,
/area/shuttle/curabitur/curashuttle/hangar)
"bT" = (
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/machinery/power/apc{
- dir = 1;
- name = "north bump";
- pixel_y = 0;
- pixel_x = 28
- },
-/obj/structure/cable{
- icon_state = "0-2"
- },
/obj/structure/cable{
d1 = 4;
d2 = 8;
- icon_state = "4-8"
+ icon_state = "4-8";
+ pixel_y = 0
},
/obj/structure/handrail,
/turf/simulated/floor/tiled/techfloor/grid,
@@ -1016,23 +1086,11 @@
d2 = 4;
icon_state = "1-4"
},
-/obj/machinery/atmospherics/pipe/simple/visible/blue{
- icon_state = "intact";
+/obj/machinery/atmospherics/pipe/simple/visible/supply{
+ icon_state = "intact-supply";
dir = 9
},
-/turf/simulated/floor/tiled/techfloor/grid,
-/area/shuttle/curabitur/curashuttle/eng)
-"bW" = (
-/obj/machinery/ntnet_relay,
-/obj/structure/window/plastitanium{
- dir = 8;
- icon_state = "window"
- },
-/obj/structure/window/plastitanium{
- icon_state = "window";
- dir = 4
- },
-/obj/structure/curtain/black,
+/obj/machinery/atmospherics/pipe/simple/visible/yellow,
/turf/simulated/floor/tiled/techfloor/grid,
/area/shuttle/curabitur/curashuttle/eng)
"bX" = (
@@ -1045,15 +1103,22 @@
/turf/simulated/floor/tiled/techfloor/grid,
/area/shuttle/curabitur/curashuttle/eng)
"bY" = (
-/obj/machinery/mech_recharger,
-/obj/machinery/alarm{
- pixel_y = 25
+/obj/structure/window/plastitanium{
+ dir = 8;
+ icon_state = "window"
},
+/obj/structure/window/plastitanium{
+ icon_state = "window";
+ dir = 4
+ },
+/obj/structure/curtain/black,
/turf/simulated/floor/tiled/techfloor/grid,
-/area/shuttle/curabitur/curashuttle/hangar)
+/area/shuttle/curabitur/curashuttle/eng)
"bZ" = (
/obj/structure/cable{
- icon_state = "1-2"
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
@@ -1061,6 +1126,11 @@
/area/shuttle/curabitur/curashuttle/hangar)
"ca" = (
/obj/structure/table/standard,
+/obj/item/device/survivalcapsule,
+/obj/item/device/survivalcapsule,
+/obj/item/clothing/gloves/sterile/nitrile,
+/obj/item/clothing/gloves/sterile/nitrile,
+/obj/item/clothing/suit/surgicalapron,
/turf/simulated/floor/tiled/white,
/area/shuttle/curabitur/curashuttle/med)
"cb" = (
@@ -1083,7 +1153,7 @@
},
/obj/machinery/atmospherics/pipe/vent,
/turf/simulated/floor/tiled/techfloor/grid,
-/area/shuttle/curabitur/curashuttle/hangar)
+/area/shuttle/curabitur/curashuttle/eng)
"cc" = (
/obj/structure/table/rack,
/obj/item/mecha_parts/mecha_equipment/crisis_drone,
@@ -1119,58 +1189,41 @@
icon_state = "map-scrubbers";
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/visible/yellow{
+ dir = 5
+ },
/turf/simulated/floor/tiled/techfloor/grid,
/area/shuttle/curabitur/curashuttle/eng)
"cg" = (
/obj/machinery/atmospherics/pipe/simple/visible/yellow{
- dir = 6
- },
-/obj/structure/cable{
- icon_state = "1-2"
+ dir = 4
},
/turf/simulated/floor/tiled/techfloor/grid,
/area/shuttle/curabitur/curashuttle/eng)
"ch" = (
-/obj/machinery/atmospherics/portables_connector{
- dir = 8
- },
-/obj/machinery/portable_atmospherics/canister/phoron,
-/obj/structure/sign/atmos/phoron{
- pixel_y = 32
- },
-/turf/simulated/floor/tiled/monofloor,
-/area/shuttle/curabitur/curashuttle/eng)
-"ci" = (
-/obj/machinery/cell_charger{
- pixel_y = 13;
- pixel_x = -3
- },
-/obj/structure/table/standard,
-/obj/item/weapon/cell/high,
-/obj/item/weapon/cell/high,
-/obj/item/device/flashlight/flare,
-/obj/item/device/flashlight/flare,
-/obj/item/device/flashlight/flare,
-/turf/simulated/floor/tiled/techfloor/grid,
-/area/shuttle/curabitur/curashuttle/hangar)
-"cj" = (
/obj/structure/cable{
- icon_state = "1-4"
+ icon_state = "1-2"
},
+/obj/machinery/atmospherics/pipe/manifold/visible/yellow{
+ dir = 1
+ },
+/turf/simulated/floor/tiled/techfloor/grid,
+/area/shuttle/curabitur/curashuttle/eng)
+"cj" = (
+/obj/machinery/mech_recharger,
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
icon_state = "intact-supply";
dir = 5
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ icon_state = "intact-scrubbers";
dir = 5
},
/turf/simulated/floor/tiled/techfloor/grid,
/area/shuttle/curabitur/curashuttle/hangar)
"ck" = (
/obj/structure/cable{
- d1 = 2;
- d2 = 8;
- icon_state = "2-8"
+ icon_state = "1-2"
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
@@ -1202,9 +1255,6 @@
/turf/simulated/floor/tiled/techfloor/grid,
/area/shuttle/curabitur/curashuttle/hangar)
"cn" = (
-/obj/structure/sign/atmos/air{
- pixel_y = -32
- },
/obj/machinery/atmospherics/portables_connector{
dir = 1
},
@@ -1221,17 +1271,11 @@
/area/shuttle/curabitur/curashuttle/eng)
"cp" = (
/obj/machinery/atmospherics/pipe/simple/visible/universal,
-/obj/machinery/portable_atmospherics/canister/oxygen,
-/turf/simulated/floor/plating,
+/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
+/turf/simulated/floor/tiled/techfloor/grid,
/area/shuttle/curabitur/curashuttle/eng)
"cq" = (
-/obj/machinery/atmospherics/pipe/manifold/visible/yellow{
- icon_state = "map";
- dir = 8
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
+/obj/machinery/portable_atmospherics/canister/phoron,
/turf/simulated/floor/tiled/techfloor/grid,
/area/shuttle/curabitur/curashuttle/eng)
"cr" = (
@@ -1254,10 +1298,13 @@
/obj/machinery/atmospherics/portables_connector{
dir = 4
},
-/obj/structure/sign/atmos/co2{
- pixel_y = -32
- },
/obj/machinery/portable_atmospherics/canister/empty,
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
/turf/simulated/floor/tiled/monofloor,
/area/shuttle/curabitur/curashuttle/eng)
"cv" = (
@@ -1265,6 +1312,12 @@
dir = 8
},
/obj/machinery/light/small,
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
/turf/simulated/floor/tiled/techfloor/grid,
/area/shuttle/curabitur/curashuttle/eng)
"cw" = (
@@ -1275,16 +1328,23 @@
/turf/simulated/floor/tiled/techfloor/grid,
/area/shuttle/curabitur/curashuttle/eng)
"cx" = (
+/obj/machinery/computer/ship/engines{
+ dir = 1;
+ icon_state = "computer"
+ },
+/turf/simulated/floor/tiled/techfloor/grid,
+/area/shuttle/curabitur/curashuttle/eng)
+"cy" = (
/obj/machinery/atmospherics/binary/pump,
/obj/machinery/power/terminal{
dir = 4
},
/obj/structure/cable,
/obj/machinery/light/small,
-/turf/simulated/floor/tiled/techfloor/grid,
-/area/shuttle/curabitur/curashuttle/eng)
-"cy" = (
-/obj/machinery/power/smes/buildable,
+/obj/structure/cable{
+ icon_state = "0-4";
+ d2 = 4
+ },
/turf/simulated/floor/tiled/techfloor/grid,
/area/shuttle/curabitur/curashuttle/eng)
"cz" = (
@@ -1299,7 +1359,8 @@
/obj/machinery/power/apc{
dir = 2;
name = "south bump";
- pixel_x = -28
+ pixel_x = 0;
+ pixel_y = -28
},
/obj/structure/handrail{
dir = 1
@@ -1308,6 +1369,11 @@
/area/shuttle/curabitur/curashuttle/hangar)
"cB" = (
/obj/machinery/light,
+/obj/machinery/alarm{
+ dir = 1;
+ icon_state = "alarm0";
+ pixel_y = -32
+ },
/turf/simulated/floor/tiled/techfloor/grid,
/area/shuttle/curabitur/curashuttle/hangar)
"cC" = (
@@ -1315,50 +1381,55 @@
/turf/simulated/wall/rpshull,
/area/shuttle/curabitur/curashuttle/eng)
"cD" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/yellow{
+/obj/machinery/atmospherics/pipe/simple/visible/yellow{
dir = 6
},
/turf/simulated/wall/rpshull,
/area/shuttle/curabitur/curashuttle/eng)
"cE" = (
-/obj/machinery/atmospherics/pipe/manifold/hidden/yellow{
- icon_state = "map";
+/obj/machinery/atmospherics/pipe/manifold/visible/yellow{
dir = 1
},
/turf/simulated/wall/rpshull,
/area/shuttle/curabitur/curashuttle/eng)
"cF" = (
-/obj/structure/handrail,
/obj/machinery/button/remote/blast_door{
name = "Hangar blast door control";
pixel_y = 24;
pixel_x = -7;
id = "medihangar"
},
-/obj/machinery/portable_atmospherics/canister/phoron,
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/obj/structure/table/standard,
+/obj/item/device/flashlight/flare,
+/obj/item/device/flashlight/flare,
+/obj/item/device/flashlight/flare,
+/obj/machinery/cell_charger{
+ pixel_y = 13;
+ pixel_x = -3
+ },
+/obj/item/weapon/cell/high,
+/obj/item/weapon/cell/high,
+/obj/item/weapon/storage/briefcase/inflatable,
+/obj/item/weapon/storage/briefcase/inflatable,
/turf/simulated/floor/tiled/techfloor/grid,
/area/shuttle/curabitur/curashuttle/hangar)
"cG" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/yellow{
- dir = 4
- },
+/obj/machinery/atmospherics/pipe/manifold/visible/yellow,
/turf/simulated/wall/rpshull,
/area/shuttle/curabitur/curashuttle/eng)
-"cH" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/yellow{
- dir = 4
- },
-/turf/simulated/wall/rpshull,
-/area/shuttle/curabitur/curashuttle/hangar)
"cI" = (
-/obj/machinery/atmospherics/pipe/manifold/hidden/yellow{
- icon_state = "map";
+/obj/machinery/atmospherics/pipe/manifold/visible/yellow{
dir = 1
},
/turf/simulated/wall/rpshull,
/area/shuttle/curabitur/curashuttle/hangar)
"cJ" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/yellow{
+/obj/machinery/atmospherics/pipe/simple/visible/yellow{
dir = 10
},
/turf/simulated/wall/rpshull,
@@ -1409,6 +1480,64 @@
/turf/space,
/turf/simulated/shuttle/plating/airless/carry,
/area/shuttle/curabitur/curashuttle/eng)
+"dF" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/apc{
+ dir = 1;
+ name = "north bump";
+ pixel_x = 0;
+ pixel_y = 28
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/structure/handrail,
+/obj/fiftyspawner/tritium,
+/turf/simulated/floor/tiled/techfloor/grid,
+/area/shuttle/curabitur/curashuttle/eng)
+"ic" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/visible/yellow{
+ dir = 8
+ },
+/turf/simulated/floor/tiled/techfloor/grid,
+/area/shuttle/curabitur/curashuttle/eng)
+"qN" = (
+/obj/machinery/atmospherics/pipe/simple/visible/yellow{
+ dir = 4
+ },
+/turf/simulated/wall/rpshull,
+/area/shuttle/curabitur/curashuttle/eng)
+"tI" = (
+/obj/machinery/atmospherics/portables_connector{
+ dir = 8
+ },
+/obj/machinery/portable_atmospherics/canister/phoron,
+/turf/simulated/floor/tiled/monofloor,
+/area/shuttle/curabitur/curashuttle/eng)
+"MI" = (
+/obj/machinery/power/smes/buildable/point_of_interest,
+/turf/simulated/floor/tiled/techfloor/grid,
+/area/shuttle/curabitur/curashuttle/eng)
+"OD" = (
+/obj/machinery/atmospherics/portables_connector{
+ dir = 8
+ },
+/obj/machinery/portable_atmospherics/canister/phoron,
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/monofloor,
+/area/shuttle/curabitur/curashuttle/eng)
(1,1,1) = {"
aa
@@ -1555,7 +1684,7 @@ bT
cg
cq
cx
-bz
+cE
cM
aa
aa
@@ -1576,9 +1705,9 @@ bp
bu
bF
bO
-bX
-ch
+dF
ch
+ic
cy
cG
cP
@@ -1601,11 +1730,11 @@ bl
bv
bG
bO
-bW
-bO
-bO
-bO
-cG
+bX
+OD
+tI
+MI
+qN
bN
aa
aa
@@ -1627,10 +1756,10 @@ bw
bH
bQ
bY
-ci
-cr
-cL
-cH
+bO
+bO
+bO
+qN
cP
aa
aa
@@ -1654,7 +1783,7 @@ bR
bZ
cj
cr
-cr
+cL
cI
cM
aa
@@ -1722,7 +1851,7 @@ aN
aI
bi
bl
-bq
+bl
aL
bL
bQ
diff --git a/maps/tether/submaps/om_ships/shelter_6.dmm b/maps/tether/submaps/om_ships/shelter_6.dmm
index e8f951444f..5d92740312 100644
--- a/maps/tether/submaps/om_ships/shelter_6.dmm
+++ b/maps/tether/submaps/om_ships/shelter_6.dmm
@@ -437,7 +437,7 @@
/obj/structure/cable/cyan{
icon_state = "0-2"
},
-/obj/structure/catwalk,
+/obj/effect/catwalk_plated/white,
/turf/simulated/floor/bluegrid,
/area/shuttle/tabiranth)
"aq" = (
@@ -532,7 +532,7 @@
layer = 2.45;
plane = -44
},
-/obj/structure/catwalk,
+/obj/effect/catwalk_plated/white,
/turf/simulated/floor/bluegrid,
/area/shuttle/tabiranth)
"aD" = (
@@ -1059,9 +1059,6 @@
d2 = 2;
icon_state = "1-2"
},
-/obj/effect/floor_decal/industrial/warning{
- dir = 1
- },
/obj/structure/cable/cyan{
d1 = 2;
d2 = 8;
@@ -1081,9 +1078,6 @@
d2 = 4;
icon_state = "0-4"
},
-/obj/effect/floor_decal/industrial/warning{
- dir = 6
- },
/turf/simulated/floor/tiled/white,
/area/shuttle/tabiranth)
"aY" = (
@@ -1092,7 +1086,7 @@
layer = 2.45;
plane = -44
},
-/obj/structure/catwalk,
+/obj/effect/catwalk_plated/white,
/turf/simulated/floor/bluegrid,
/area/shuttle/tabiranth)
"aZ" = (
@@ -1101,10 +1095,6 @@
d2 = 8;
icon_state = "4-8"
},
-/obj/effect/floor_decal/industrial/warning{
- icon_state = "warning";
- dir = 8
- },
/turf/simulated/floor/tiled/white,
/area/shuttle/tabiranth)
"ba" = (
@@ -1150,10 +1140,6 @@
/turf/simulated/floor/tiled/white,
/area/shuttle/tabiranth)
"bg" = (
-/obj/effect/floor_decal/industrial/warning{
- icon_state = "warning";
- dir = 4
- },
/turf/simulated/floor/tiled/white,
/area/shuttle/tabiranth)
"bh" = (
@@ -1169,9 +1155,10 @@
},
/obj/machinery/recharge_station{
density = 0;
- layer = 2.2
+ layer = 2.45;
+ plane = -44
},
-/obj/effect/floor_decal/industrial/hatch/yellow,
+/obj/effect/catwalk_plated/white,
/turf/simulated/floor/tiled/techfloor/grid,
/area/shuttle/tabiranth)
"bj" = (
@@ -1443,6 +1430,7 @@
/obj/effect/floor_decal/techfloor{
dir = 9
},
+/obj/item/weapon/inducer/hybrid,
/turf/simulated/floor/tiled/techmaint,
/area/shuttle/tabiranth)
"bk" = (
@@ -1722,9 +1710,6 @@
/obj/item/weapon/extinguisher,
/obj/item/clothing/head/hardhat/red,
/obj/item/weapon/storage/toolbox/emergency,
-/obj/effect/floor_decal/industrial/warning{
- dir = 10
- },
/turf/simulated/floor/tiled/white,
/area/shuttle/tabiranth)
"bI" = (
@@ -1760,9 +1745,10 @@
},
/obj/machinery/recharge_station{
density = 0;
- layer = 2.2
+ layer = 2.45;
+ plane = -44
},
-/obj/effect/floor_decal/industrial/hatch/yellow,
+/obj/effect/catwalk_plated/white,
/turf/simulated/floor/tiled/techfloor/grid,
/area/shuttle/tabiranth)
"bM" = (
diff --git a/maps/tether/tether-02-surface2.dmm b/maps/tether/tether-02-surface2.dmm
index 85e01af805..e1b80cc840 100644
--- a/maps/tether/tether-02-surface2.dmm
+++ b/maps/tether/tether-02-surface2.dmm
@@ -2774,14 +2774,14 @@
/turf/simulated/floor/tiled/techmaint,
/area/tether/surfacebase/surface_two_hall)
"afN" = (
-/obj/structure/catwalk,
/obj/structure/cable{
icon_state = "1-2"
},
/obj/machinery/atmospherics/pipe/simple/visible/supply,
/obj/machinery/atmospherics/pipe/simple/visible/scrubbers,
/obj/structure/disposalpipe/down,
-/turf/simulated/floor/plating,
+/obj/effect/catwalk_plated/dark,
+/turf/simulated/open,
/area/maintenance/lower/bar)
"afO" = (
/obj/structure/railing{
@@ -29344,6 +29344,10 @@
/obj/random/cutout,
/turf/simulated/floor/tiled/techfloor,
/area/maintenance/lower/north)
+"cHq" = (
+/obj/effect/catwalk_plated/dark,
+/turf/simulated/open,
+/area/maintenance/lower/bar)
"fYA" = (
/obj/structure/catwalk,
/obj/structure/cable{
@@ -29358,10 +29362,33 @@
},
/turf/simulated/floor/plating,
/area/maintenance/lower/mining)
+"hNH" = (
+/obj/structure/catwalk,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/visible/supply,
+/obj/machinery/atmospherics/pipe/simple/visible/scrubbers,
+/obj/structure/disposalpipe/segment,
+/turf/simulated/open,
+/area/maintenance/lower/bar)
"kaa" = (
/obj/random/cutout,
/turf/simulated/floor,
/area/maintenance/lower/south)
+"nTp" = (
+/obj/structure/catwalk,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/visible/supply,
+/obj/machinery/atmospherics/pipe/simple/visible/scrubbers,
+/turf/simulated/open,
+/area/maintenance/lower/bar)
+"peO" = (
+/obj/structure/catwalk,
+/turf/simulated/open,
+/area/maintenance/lower/bar)
(1,1,1) = {"
aaa
@@ -44456,9 +44483,9 @@ adL
aec
aew
aeP
-aee
-aee
-aee
+peO
+cHq
+peO
ago
agC
adu
@@ -44598,9 +44625,9 @@ adL
aed
aex
aeQ
-afx
+nTp
afN
-agc
+hNH
agp
agc
agc
@@ -44740,9 +44767,9 @@ adL
aee
aey
aeR
-aee
-aee
-aee
+peO
+cHq
+peO
agq
aee
aee
diff --git a/sound/voice/myarp.ogg b/sound/voice/myarp.ogg
new file mode 100644
index 0000000000..bc57408449
Binary files /dev/null and b/sound/voice/myarp.ogg differ