From d650dbe87ae6d720b5cef3c0011d1b805fd37ad9 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Fri, 1 May 2020 13:00:13 -0400 Subject: [PATCH 01/25] Port Bay's Catwalks Allows for various new funtimes. --- code/game/objects/structures.dm | 88 +++++++++- code/game/objects/structures/catwalk.dm | 220 ++++++++++++++++-------- code/modules/tables/tables.dm | 56 ------ icons/turf/catwalks.dmi | Bin 6149 -> 6544 bytes 4 files changed, 226 insertions(+), 138 deletions(-) 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..325cfff923 100644 --- a/code/game/objects/structures/catwalk.dm +++ b/code/game/objects/structures/catwalk.dm @@ -1,102 +1,111 @@ -// 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() + return ..() + +/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.") + 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 +113,67 @@ 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) + . = ..() + if(SSticker?.current_state < GAME_STATE_PLAYING) + 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/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/icons/turf/catwalks.dmi b/icons/turf/catwalks.dmi index 9e3d3d977caec0270cadf955a39622a0cfa5f85c..20c5e1f4d98bd97835547f4654c73d21e191791d 100644 GIT binary patch literal 6544 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 literal 6149 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 Mqi2sW4td=AFCB8(;{X5v From 6cc54f6eddc1f0f6d20572819710413cbb161580 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Fri, 1 May 2020 14:12:25 -0400 Subject: [PATCH 02/25] Always initialize plated catwalks for you --- code/game/objects/structures/catwalk.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/game/objects/structures/catwalk.dm b/code/game/objects/structures/catwalk.dm index 325cfff923..98061c458c 100644 --- a/code/game/objects/structures/catwalk.dm +++ b/code/game/objects/structures/catwalk.dm @@ -134,8 +134,7 @@ /obj/effect/catwalk_plated/Initialize(mapload) . = ..() - if(SSticker?.current_state < GAME_STATE_PLAYING) - activate() + activate() /obj/effect/catwalk_plated/CanPass() return 0 From 3df736d5710e0ee9c66a450e3df987979efcab3c Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Fri, 1 May 2020 14:12:50 -0400 Subject: [PATCH 03/25] Allow climbing up and falling through opened plated catwalks --- code/modules/multiz/movement.dm | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) 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. From 1c7689106311b19aa25ccffbc2a1e3277a735733 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Fri, 1 May 2020 14:37:31 -0400 Subject: [PATCH 04/25] Objects fall through when catwalk opened --- code/game/objects/structures/catwalk.dm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/code/game/objects/structures/catwalk.dm b/code/game/objects/structures/catwalk.dm index 98061c458c..85996cd61b 100644 --- a/code/game/objects/structures/catwalk.dm +++ b/code/game/objects/structures/catwalk.dm @@ -28,8 +28,15 @@ /obj/structure/catwalk/Destroy() 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) @@ -83,6 +90,7 @@ 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.") From 5d88ebd52d3e3a8aafe158c29e00e8493a9817ea Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Fri, 1 May 2020 14:47:15 -0400 Subject: [PATCH 05/25] Fix trash pit --- maps/tether/tether-02-surface2.dmm | 47 +++++++++++++++++++++++------- 1 file changed, 37 insertions(+), 10 deletions(-) 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 From 7e50177049f0fcc8eea5fc027d48e433704a3fcc Mon Sep 17 00:00:00 2001 From: Atermonera Date: Fri, 1 May 2020 12:53:04 -0700 Subject: [PATCH 06/25] Merge pull request #7056 from the-og-gear/vchatlinks Adds some hyperlink functionality --- code/modules/vchat/js/vchat.js | 4 ++++ 1 file changed, 4 insertions(+) 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])) { From 82af30be97a2fea030bc2616e5e140be2c7d6724 Mon Sep 17 00:00:00 2001 From: Heroman Date: Sat, 2 May 2020 07:08:05 +1000 Subject: [PATCH 08/25] Adds a *myarp emote. --- .../modules/mob/living/carbon/human/emote_vr.dm | 8 ++++++-- sound/voice/myarp.ogg | Bin 0 -> 14516 bytes 2 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 sound/voice/myarp.ogg diff --git a/code/modules/mob/living/carbon/human/emote_vr.dm b/code/modules/mob/living/carbon/human/emote_vr.dm index b644b59d62..863f388e91 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 @@ -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/sound/voice/myarp.ogg b/sound/voice/myarp.ogg new file mode 100644 index 0000000000000000000000000000000000000000..bc57408449fb58426bd04e74ee623ffba9421a5b GIT binary patch literal 14516 zcmeHuXIPUb&NVhBM9Z3ChvAw;@#0*HoCq*@TLZMPv5Lns0QA~p!c z5I_L|k!=A4L_kF;B5oUYEZe@-UAQm0zwdnayXQIQKF@jXzdO$`%&b{6>z&nR&Ae~c zY}nur;Nb5x5%axbf8@kh*kV}Prety4)_D+|-}pDmmhZ@&ur>1||C#1T!l2d#McWsx z<#Yd*iV)wYGJ`OLahqe8tx4WMO^g!&*v7@}ib-vbbnNwbp(@%-a zV-NhJpxQ*~0DuG%2DYI3iCg?thYgga1<92Tao+aFscLfH`wrONk0y~D>)PrPHeNL~ z#%P3~pmhU|D=mxUH(!Wlv}_7g>@`Rpq#Zw;jAJS*r8uiWYKEuP^P2tMj?b0V1&*_f zwo#tCdD{(lPxeGm}Bgcf4MgRAi6FbNR9Eg{fwisO6V&vjy zbSaso_Km}X0Fo)kkJX=SvwEw|rL9g-UY)|fT;h4X>CQK43UO9+h(8LfDtJVSzNIVFddwx0?3KHuMJQNQl+)gFfj z(1@JrLkVZF;ZW^M)Zy1xu=B8gS04@}w}>gqz!52RcL7>VqSev%FHYH~xxbPRwD=#zH&ysZoVowC*<}$u3VGGCdAi#lH&f zjnOsYqU-;Xue~+!)iQ?ibt`j!>lJ|kfx&4>AqP@#pUw)OO1*b;_r06>>lbGKyJG#* zasXsBncr-(M4ZRIbU4GChy5<#e^|~I(xoDU%SA>WtwvrqSXbWJta)#9UE9Ui#>-zP z{JKu+7&+SCE_}>3dMq${A}#t>M|9Zf-60)+8_ajJxpy=5Uo2!UE(`xv0049s;yu3k5nn&^ z2|wEjKl8wV75}xxK)n+-USl>8V@m

jLl-S|#TEpeek4mTF#)@RVa*75n_>a}@$ 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⋙2h%;Gq z%=R6 zk}P>=@63HLIdh}`Mc3q}cJh19q8EzOfr+0hkN$lA% zmRkx?-~+Q`in1suygC-N2g|+3Sl{oAvyuCJ9|Bm6=vrqeq@tqAj{3?!L8P1To-U$nOU9r>4V#W3iEtwIh z??2^0#_fcnEGW%iH$ZR5K=hwWlhx;(=lFA8b9Qs9T#oL#BX6?ODqh)sbT<3Qw+6j< zWof}|&5jE+KS8ZtNWF&eUGMb$`(YND8J!AmzV|FO)6Aq>6FN^ruUX^sRKmz4jj-ID z2;#29zDZ41$0u1t3%gIO(x{VBv&+drO$X~_XWb_k=br4ig>IvBic^&`u}?sMhe)j< z$x>9G=YwbZ6h-HS`<81KaZgcOhBS?=+qwr~k$sewvC-*b=OD1Hw}H;CzqAaw!ti?X z1zJU{pg|n?a-7fUp^lDF)dplAkI`PWRYo864(F$g?MtjPSg=Svx{ zmy!ZV2&sAOG0Cxt{0b9zxyj^zu0=R9?ke^$mucu(1uGE#@h~0`#&*V zI_31kPo}!Z=LE~EZ}MR#UkGE;S|F>6OLnm8nhyc24I0@QJatJ{XW&1nn{xR8~5ho{x%+ z@zw1Twa@)1^wc~5{}WS=s^=yq*4 z?mP+J928|#-f{4u>#emACKYr)?Av{E$&Jkyw8j(iPnoVC8fet43go22RtDR+!^78W zbSrxA2}tqug)f@0!hp~BbSobTcewAMS1p-*P|4oC!FINfVG=`*jFIcgxD(WC&5!LK z9_%=MQ7mn;e;BD}@AtD-Dqi*GoaXY+^(YumH~W_s!*7(@$vxw4y|pM1ObQQr>TO(un2A4 z2c??QUP@vj4T@cmgma>l42&{~Yl(qg1!Q`~!iSp+G3^!Cur4C(FXnJUdSyeQOQ(-}Lrjan5WcvN|%vwSfJwt=J9r^Bay5`AEK_l_% zZ^v|NhGGs^CWaZDTdZlGJoa|Qnj+=;<;MZa)JdE|ZAF$dt_eO4YT-k{al}&_S4J>h=V_p+DZt4r`YkaWXrC-ES19 zn!ZiXo=UvZ8C~>9jcO*n Date: Sat, 2 May 2020 07:11:57 +1000 Subject: [PATCH 09/25] Forgot to add it into vhelp. --- code/modules/mob/living/carbon/human/emote_vr.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/emote_vr.dm b/code/modules/mob/living/carbon/human/emote_vr.dm index 863f388e91..478ce4da51 100644 --- a/code/modules/mob/living/carbon/human/emote_vr.dm +++ b/code/modules/mob/living/carbon/human/emote_vr.dm @@ -81,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) From da3dc0d54009026cdd49651156e39c7c8aac4637 Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Fri, 1 May 2020 18:31:45 -0400 Subject: [PATCH 10/25] Remove override of dinnerware vendor --- code/game/machinery/vending_vr.dm | 29 ----------------------------- 1 file changed, 29 deletions(-) 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" From 255cc89f9b57b833693fb52d29092a2338f6982b Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Fri, 1 May 2020 18:47:29 -0400 Subject: [PATCH 11/25] Fix a couple more click bugs with synth pals --- code/_onclick/ai.dm | 14 ++++---------- code/modules/mob/living/silicon/robot/robot.dm | 4 ++-- 2 files changed, 6 insertions(+), 12 deletions(-) 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/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) From e9f464c47cba8d89d3bc377baf8cbf96ed7bdff6 Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Fri, 1 May 2020 19:00:10 -0400 Subject: [PATCH 12/25] Add bowls back to dinnerware vendor --- code/game/machinery/vending.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 From c611419f93523f057402f5a5ccfeaeafdc4c56e6 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Fri, 1 May 2020 20:46:08 -0400 Subject: [PATCH 13/25] Fix #7581 --- code/_onclick/rig.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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) From 099d26ce6a7ee67310d95c75cd19db3c9943813f Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Fri, 1 May 2020 20:48:47 -0400 Subject: [PATCH 14/25] Fix #7577 --- code/modules/vore/resizing/holder_micro_vr.dm | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) 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) From 4ab32ab17f99b968ca05dc682e44befe6d853174 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Fri, 1 May 2020 22:28:19 -0400 Subject: [PATCH 15/25] Fix grab upgrades being janky --- code/modules/mob/mob_grab.dm | 2 -- 1 file changed, 2 deletions(-) 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) From b0dbed2ee452d7afe3932fdb8dd85c4ae64f1fe1 Mon Sep 17 00:00:00 2001 From: Natje0 Date: Sat, 2 May 2020 05:51:06 +0200 Subject: [PATCH 16/25] Corrects several mistakes, changes... So many things Adds some bare necessities for contractors (Like IDs, some medical uniforms and a pilot jacket) Also accidentally fucks up the helm access even more than it already was. Woops. --- maps/tether/submaps/om_ships/curashuttle.dmm | 414 ++++++++++++------- 1 file changed, 270 insertions(+), 144 deletions(-) diff --git a/maps/tether/submaps/om_ships/curashuttle.dmm b/maps/tether/submaps/om_ships/curashuttle.dmm index 79e9e2aea3..c268802051 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" = ( @@ -185,7 +191,7 @@ /obj/machinery/computer/ship/helm{ dir = 4; icon_state = "computer"; - req_one_access = newlist() + req_one_access = newlist(/obj/item/weapon/nullrod) }, /turf/simulated/floor/carpet/bcarpet, /area/shuttle/curabitur/curashuttle/cockpit) @@ -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, @@ -1006,7 +1076,7 @@ /obj/machinery/atmospherics/pipe/simple/visible/universal{ dir = 4 }, -/obj/machinery/recharge_station, +/obj/machinery/autolathe, /turf/simulated/floor/tiled/techfloor/grid, /area/shuttle/curabitur/curashuttle/eng) "bV" = ( @@ -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,25 @@ /turf/simulated/floor/tiled/techfloor/grid, /area/shuttle/curabitur/curashuttle/eng) "bY" = ( -/obj/machinery/mech_recharger, +/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/eng) +"bZ" = ( /obj/machinery/alarm{ pixel_y = 25 }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/shuttle/curabitur/curashuttle/hangar) -"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 +1129,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 +1156,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 +1192,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 +1258,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 +1274,10 @@ /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" - }, /turf/simulated/floor/tiled/techfloor/grid, /area/shuttle/curabitur/curashuttle/eng) "cr" = ( @@ -1254,10 +1300,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,26 +1314,39 @@ 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" = ( /obj/machinery/atmospherics/pipe/simple/visible/red{ dir = 9 }, -/obj/machinery/autolathe, +/obj/machinery/portable_atmospherics/canister/phoron, /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 +1361,8 @@ /obj/machinery/power/apc{ dir = 2; name = "south bump"; - pixel_x = -28 + pixel_x = 0; + pixel_y = -28 }, /obj/structure/handrail{ dir = 1 @@ -1315,50 +1378,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 +1477,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 +1681,7 @@ bT cg cq cx -bz +cE cM aa aa @@ -1576,9 +1702,9 @@ bp bu bF bO -bX -ch +dF ch +ic cy cG cP @@ -1601,11 +1727,11 @@ bl bv bG bO -bW -bO -bO -bO -cG +bX +OD +tI +MI +qN bN aa aa @@ -1627,10 +1753,10 @@ bw bH bQ bY -ci -cr -cL -cH +bO +bO +bO +qN cP aa aa @@ -1654,7 +1780,7 @@ bR bZ cj cr -cr +cL cI cM aa @@ -1722,7 +1848,7 @@ aN aI bi bl -bq +bl aL bL bQ From edfc4c06448386b3a0e3ac184c620646b0abd0be Mon Sep 17 00:00:00 2001 From: Natje0 Date: Sat, 2 May 2020 05:52:17 +0200 Subject: [PATCH 17/25] Removes accidental Nullrod as access req Still broken access though. Idk why. --- maps/tether/submaps/om_ships/curashuttle.dmm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maps/tether/submaps/om_ships/curashuttle.dmm b/maps/tether/submaps/om_ships/curashuttle.dmm index c268802051..6a985b5a45 100644 --- a/maps/tether/submaps/om_ships/curashuttle.dmm +++ b/maps/tether/submaps/om_ships/curashuttle.dmm @@ -191,7 +191,7 @@ /obj/machinery/computer/ship/helm{ dir = 4; icon_state = "computer"; - req_one_access = newlist(/obj/item/weapon/nullrod) + req_one_access = newlist() }, /turf/simulated/floor/carpet/bcarpet, /area/shuttle/curabitur/curashuttle/cockpit) From 61d77b818f9044f8f017ab7fb60a88eafb3cc2a6 Mon Sep 17 00:00:00 2001 From: Natje0 Date: Sat, 2 May 2020 06:07:12 +0200 Subject: [PATCH 18/25] Fixes poorly placed atmos alarm --- maps/tether/submaps/om_ships/curashuttle.dmm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/maps/tether/submaps/om_ships/curashuttle.dmm b/maps/tether/submaps/om_ships/curashuttle.dmm index 6a985b5a45..10d24490bb 100644 --- a/maps/tether/submaps/om_ships/curashuttle.dmm +++ b/maps/tether/submaps/om_ships/curashuttle.dmm @@ -1115,9 +1115,6 @@ /turf/simulated/floor/tiled/techfloor/grid, /area/shuttle/curabitur/curashuttle/eng) "bZ" = ( -/obj/machinery/alarm{ - pixel_y = 25 - }, /obj/structure/cable{ d1 = 1; d2 = 4; @@ -1371,6 +1368,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" = ( From c8b7b6c0c2e7af9d50f6b6ae4de65529b6e22e56 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sat, 2 May 2020 10:36:56 -0400 Subject: [PATCH 19/25] Adminbus area tweaks - Replaces some catwalk with plated catwalk --- maps/tether/submaps/om_ships/shelter_6.dmm | 33 ++++++---------------- 1 file changed, 9 insertions(+), 24 deletions(-) diff --git a/maps/tether/submaps/om_ships/shelter_6.dmm b/maps/tether/submaps/om_ships/shelter_6.dmm index e8f951444f..4705992e75 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" = ( @@ -1722,9 +1709,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 +1744,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" = ( From 3d38e19231e0a270000bf83ab34c715cfd9b68e1 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sat, 2 May 2020 10:42:51 -0400 Subject: [PATCH 20/25] Throws an inducer in --- maps/tether/submaps/om_ships/shelter_6.dmm | 1 + 1 file changed, 1 insertion(+) diff --git a/maps/tether/submaps/om_ships/shelter_6.dmm b/maps/tether/submaps/om_ships/shelter_6.dmm index 4705992e75..5d92740312 100644 --- a/maps/tether/submaps/om_ships/shelter_6.dmm +++ b/maps/tether/submaps/om_ships/shelter_6.dmm @@ -1430,6 +1430,7 @@ /obj/effect/floor_decal/techfloor{ dir = 9 }, +/obj/item/weapon/inducer/hybrid, /turf/simulated/floor/tiled/techmaint, /area/shuttle/tabiranth) "bk" = ( From 720d4d14e0b551d04e30ae19c397e55f2256bda2 Mon Sep 17 00:00:00 2001 From: Atermonera Date: Sat, 2 May 2020 13:29:30 -0700 Subject: [PATCH 21/25] Fix Mob Examine --- .../mob/living/simple_mob/harvesting.dm | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 code/modules/mob/living/simple_mob/harvesting.dm diff --git a/code/modules/mob/living/simple_mob/harvesting.dm b/code/modules/mob/living/simple_mob/harvesting.dm new file mode 100644 index 0000000000..95de747fee --- /dev/null +++ b/code/modules/mob/living/simple_mob/harvesting.dm @@ -0,0 +1,42 @@ + +/mob/living/simple_mob + // What do you hit the mob with (on help) to get something from it? + var/obj/harvest_tool + // How long do we have to wait until it's harvestable again? + var/harvest_cooldown = 10 MINUTES + // How long does it take to harvest? + var/harvest_delay = 30 SECONDS + // What world.time was the last harvest? + var/harvest_recent = 0 + // How many times can we roll at max on the chance table? + var/harvest_per_hit = 1 + // Verb for harvesting. "sheared" "clipped" etc. + var/harvest_verb = "harvested" + // Associative list of paths and their chances. path = straws in the lot + var/list/harvest_results + +/mob/living/simple_mob/examine(mob/user) + . = ..() + 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) + . += "It can be [harvest_verb] in [time_to_harvest / (1 MINUTE)] second(s)." + else + . += "It can be [harvest_verb] now." + +/mob/living/simple_mob/proc/livestock_harvest(var/obj/item/tool, var/mob/living/user) + if(!LAZYLEN(harvest_results)) // Might be a unique interaction of an object using the proc to do something weird, or just someone's a donk. + harvest_recent = world.time + return + + if(istype(tool, harvest_tool)) // Sanity incase something incorrect is passed in. + harvest_recent = world.time + + var/max_harvests = rand(1,harvest_per_hit) + + for(var/I = 1 to max_harvests) + var/new_path = pickweight(harvest_results) + new new_path(get_turf(user)) + + return From 8c7a96ab9d5ac035689212fa459484f3ff0ee66e Mon Sep 17 00:00:00 2001 From: Natje0 Date: Sun, 3 May 2020 01:57:04 +0200 Subject: [PATCH 22/25] Moves autolathe, re-adds cyborg charger --- maps/tether/submaps/om_ships/curashuttle.dmm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/maps/tether/submaps/om_ships/curashuttle.dmm b/maps/tether/submaps/om_ships/curashuttle.dmm index 10d24490bb..91c134a7cd 100644 --- a/maps/tether/submaps/om_ships/curashuttle.dmm +++ b/maps/tether/submaps/om_ships/curashuttle.dmm @@ -1076,7 +1076,7 @@ /obj/machinery/atmospherics/pipe/simple/visible/universal{ dir = 4 }, -/obj/machinery/autolathe, +/obj/machinery/recharge_station, /turf/simulated/floor/tiled/techfloor/grid, /area/shuttle/curabitur/curashuttle/eng) "bV" = ( @@ -1275,6 +1275,7 @@ /turf/simulated/floor/tiled/techfloor/grid, /area/shuttle/curabitur/curashuttle/eng) "cq" = ( +/obj/machinery/portable_atmospherics/canister/phoron, /turf/simulated/floor/tiled/techfloor/grid, /area/shuttle/curabitur/curashuttle/eng) "cr" = ( @@ -1323,7 +1324,7 @@ /obj/machinery/atmospherics/pipe/simple/visible/red{ dir = 9 }, -/obj/machinery/portable_atmospherics/canister/phoron, +/obj/machinery/autolathe, /turf/simulated/floor/tiled/techfloor/grid, /area/shuttle/curabitur/curashuttle/eng) "cx" = ( From 51741bebe896bb1d3a787a8b2106ffcb8b0e0bac Mon Sep 17 00:00:00 2001 From: Atermonera Date: Sun, 3 May 2020 00:19:43 -0700 Subject: [PATCH 24/25] Merge pull request #7058 from atlantiscze/2020_04_27_HardsuitBackpack Allows backpacks to be carried on most hardsuits --- .../clothing/spacesuits/rig/suits/alien.dm | 8 ++++- .../clothing/spacesuits/rig/suits/combat.dm | 33 ++++++++++++++++--- .../clothing/spacesuits/rig/suits/ert.dm | 23 ++++++++++--- .../clothing/spacesuits/rig/suits/light.dm | 12 ++++++- .../clothing/spacesuits/rig/suits/merc.dm | 13 +++++++- .../clothing/spacesuits/rig/suits/pmc.dm | 23 ++++++++++--- .../clothing/spacesuits/rig/suits/station.dm | 20 +++++------ html/changelogs/atlantiscze-hardsuit.yml | 6 ++++ 8 files changed, 112 insertions(+), 26 deletions(-) create mode 100644 html/changelogs/atlantiscze-hardsuit.yml 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/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