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