diff --git a/code/modules/power/tesla/coil.dm b/code/modules/power/tesla/coil.dm index 988491fa5bc..de248a49255 100644 --- a/code/modules/power/tesla/coil.dm +++ b/code/modules/power/tesla/coil.dm @@ -83,7 +83,6 @@ /obj/machinery/power/grounding_rod/tesla_act(var/power, var/melt = FALSE) flick("coil_shock_1", src) - ..() /obj/item/weapon/circuitboard/tesla_coil name = "tesla coil circuitry" diff --git a/code/modules/power/tesla/energy_ball.dm b/code/modules/power/tesla/energy_ball.dm index 95ad2a45a0d..2fb9d0639ce 100644 --- a/code/modules/power/tesla/energy_ball.dm +++ b/code/modules/power/tesla/energy_ball.dm @@ -1,5 +1,5 @@ #define TESLA_DEFAULT_POWER 1738260 -#define TESLA_MINI_POWER 869130 +#define TESLA_MINI_POWER 156250 /obj/singularity/energy_ball name = "energy ball" @@ -15,7 +15,7 @@ density = 1 energy = 0 dissipate = 1 - dissipate_delay = 5 + dissipate_delay = 10 dissipate_strength = 1 layer = LIGHTING_LAYER + 0.1 blend_mode = BLEND_ADD @@ -29,6 +29,7 @@ return /obj/singularity/energy_ball/Destroy() + walk(src, 0) // Stop walking if(orbiting && istype(orbiting.orbiting, /obj/singularity/energy_ball)) var/obj/singularity/energy_ball/EB = orbiting.orbiting EB.orbiting_balls -= src @@ -43,20 +44,23 @@ if(!orbiting) handle_energy() - move_the_basket_ball(rand(1,4 + orbiting_balls.len * 1.5)) + move_the_basket_ball(rand(1, 6) - orbiting_balls.len * 0.25) playsound(src.loc, 'sound/magic/lightningbolt.ogg', 100, 1, extrarange = 30) pixel_x = 0 pixel_y = 0 - dir = tesla_zap(src, 7, TESLA_DEFAULT_POWER, TRUE) + // This now does just the animation of all balls shooting main ball + for (var/obj/singularity/energy_ball/ball in orbiting_balls) + ball.Beam(src, icon_state="lightning[rand(1,12)]", icon = 'icons/effects/effects.dmi', time=2) + + // Instead of miniballs shooting stuff, decided to make it just count the power produced. + dir = tesla_zap(src, 10, TESLA_DEFAULT_POWER + orbiting_balls.len * TESLA_MINI_POWER, TRUE) pixel_x = -32 pixel_y = -32 - for (var/ball in orbiting_balls) - var/range = rand(1, Clamp(orbiting_balls.len, 3, 7)) - tesla_zap(ball, range, TESLA_MINI_POWER/7*range, TRUE) + else energy = 0 // ensure we dont have miniballs of miniballs if(energy < 0) @@ -65,7 +69,7 @@ /obj/singularity/energy_ball/examine(mob/user) ..() if(orbiting_balls.len) - user << "There are [orbiting_balls.len] energy balls orbiting \the [src]." + to_chat(user, "There are [orbiting_balls.len] energy balls orbiting \the [src].") /obj/singularity/energy_ball/proc/move_the_basket_ball(var/move_amount) @@ -81,7 +85,7 @@ var/move_dir = 0 if(target && prob(75)) - move_dir = get_dir(src,target) + move_dir = get_dir(src, target) else valid_directions.Remove(dir) move_dir = (prob(50) && (dir != failed_direction)) ? dir : pick(valid_directions) @@ -90,9 +94,9 @@ move_amount = 0 for(var/i in 0 to move_amount) - do_single_move(move_dir) + do_single_move(move_dir, move_amount) -/obj/singularity/energy_ball/proc/do_single_move(var/move_dir) +/obj/singularity/energy_ball/proc/do_single_move(var/move_dir, var/speed) var/z_move = 0 var/turf/T switch(move_dir) @@ -109,13 +113,13 @@ switch(z_move) if(1) visible_message(span("danger","\The [src] gravitates upwards!")) - forceMove(T) + zMove(UP) visible_message(span("danger","\The [src] gravitates from below!")) if(0) - forceMove(T) + walk_to(src, T, 0, speed) if(-1) visible_message(span("danger","\The [src] gravitates downwards!")) - forceMove(T) + zMove(DOWN) visible_message(span("danger","\The [src] gravitates from above!")) if(dir in alldirs) @@ -158,6 +162,18 @@ qdel(Orchiectomy_target) else if(orbiting_balls.len) + + // Basically the more balls we have the faster Tesla looses energy. + if(orbiting_balls.len > 16) + dissipate_delay = 3 + dissipate_strength = 5 + if(orbiting_balls.len > 12) + dissipate_delay = 5 + dissipate_strength = 2 + if(orbiting_balls.len <= 12) + dissipate_delay = 10 + dissipate_strength = 1 + dissipate() //sing code has a much better system. else // that is when we have no balls but our energy is less energy_to_raise = energy_to_raise / 1.25 @@ -222,10 +238,9 @@ var/mob/living/closest_mob var/obj/machinery/closest_machine var/obj/structure/closest_structure - var/obj/machinery/power/emitter/closest_emitter // Use only if Tesla is too grown with 10 ore more balls. Will escape. + var/obj/machinery/power/emitter/closest_emitter // Use only if Tesla is too grown. Will escape. var/static/list/blacklisted_types = typecacheof(list( /obj/machinery/atmospherics, - /obj/machinery/power/emitter, /obj/machinery/field_generator, /mob/living/simple_animal, /obj/machinery/particle_accelerator/control_box, @@ -249,12 +264,8 @@ /mob/living, /obj/structure )) - var/melt = FALSE - if(istype(source, /obj/singularity/energy_ball)) - var/obj/singularity/energy_ball/E = source - melt = (E.orbiting_balls.len >= 9) - if(E.orbiting_balls.len >= 10) - blacklisted_types -= /obj/machinery/power/emitter + + var/rods_count = 0 for(var/A in typecache_filter_multi_list_exclusion(oview(source, zap_range+2), things_to_shock, blacklisted_types)) @@ -270,9 +281,12 @@ closest_atom = C else if(closest_tesla_coil) + if(istype(A, /obj/machinery/power/grounding_rod)) // to count number of rods + rods_count += 1 continue //no need checking these other things else if(istype(A, /obj/machinery/power/grounding_rod)) + rods_count += 1 var/dist = get_dist(source, A)-2 if(dist <= zap_range && (dist < closest_dist || !closest_grounding_rod)) closest_grounding_rod = A @@ -282,7 +296,7 @@ else if(closest_grounding_rod) continue - else if(melt && istype(A, /obj/machinery/power/emitter)) + else if(istype(A, /obj/machinery/power/emitter)) var/obj/machinery/power/emitter/e = A closest_emitter = e @@ -319,10 +333,25 @@ closest_atom = A closest_dist = dist + var/melt = FALSE + if(istype(source, /obj/singularity/energy_ball)) + var/obj/singularity/energy_ball/E = source + if(E.energy && (E.orbiting_balls.len > rods_count * 4)) // so that miniballs don't fry stuff. + melt = TRUE// 1 grounding rod can handle max 4 balls + E.visible_message(span("danger", "All [E.orbiting_balls.len] energize for a second, sending their energy to the main ball, which redirects it at the nearest object! Sacraficing one of its miniballs!")) + for(var/obj/singularity/energy_ball/mini in E.orbiting_balls) + mini.Beam(source, icon_state="lightning[rand(1,12)]", icon = 'icons/effects/effects.dmi', time=2) + playsound(source.loc, 'sound/magic/lightning_chargeup.ogg', 100, 1, extrarange = 30) + E.energy_to_raise = E.energy_to_raise / 1.25 + E.energy_to_lower = (E.energy_to_raise / 1.25) - 20 + + var/Orchiectomy_target = pick(E.orbiting_balls) + qdel(Orchiectomy_target) + //Alright, we've done our loop, now lets see if was anything interesting in range if(closest_atom) //common stuff - source.Beam(closest_atom, icon_state="lightning[rand(1,12)]", icon = 'icons/effects/effects.dmi', time=5) + source.Beam(closest_atom, icon_state="lightning[rand(1,12)]", icon = 'icons/effects/effects.dmi', time= 5) var/zapdir = get_dir(source, closest_atom) if(zapdir) . = zapdir diff --git a/html/changelogs/Sindorman-tesla-update.yml b/html/changelogs/Sindorman-tesla-update.yml new file mode 100644 index 00000000000..f15400581ed --- /dev/null +++ b/html/changelogs/Sindorman-tesla-update.yml @@ -0,0 +1,43 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: PoZe + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - tweak: "Tesla grounding rods now are accounted for how many miniballs can main Tesla have to be contained. Ratio is 1 rod can contain 4 miniballs. Once Tesla has more miniballs then rods can contain it will start to melt things in this priorty: coils, grounding rods, emitters. Each time Tesla melts one of these it will loose energy level and single miniball." + - tweak: "Tesla miniballs no longer zap. Instead they shoot main Tesla ball which shoots one single beamn, which accounts how much power each miniball produces." + - tweak: "Tesla now looses more and faster energy with number of miniballs it has. Energy loss changes after 12 balls and after 16 miniballs." diff --git a/maps/_common/areas/station/research.dm b/maps/_common/areas/station/research.dm index 6d0fc344def..49005e4fb5e 100644 --- a/maps/_common/areas/station/research.dm +++ b/maps/_common/areas/station/research.dm @@ -156,4 +156,4 @@ /area/toxins/server name = "\improper Research - Server Room" icon_state = "server" - station_area = 1 + station_area = 1 \ No newline at end of file diff --git a/maps/aurora/aurora-3_sublevel.dmm b/maps/aurora/aurora-3_sublevel.dmm index e43362a4add..c4bea5bba39 100644 --- a/maps/aurora/aurora-3_sublevel.dmm +++ b/maps/aurora/aurora-3_sublevel.dmm @@ -947,23 +947,6 @@ }, /turf/simulated/floor/plating, /area/outpost/engineering/power) -"aci" = ( -/obj/machinery/camera/emp_proof{ - c_tag = "Engineering Sublevel - Engine Camera 6"; - network = list("Engine") - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/simulated/floor/plating, -/area/outpost/engineering/power) "acj" = ( /obj/machinery/door/airlock/hatch{ name = "Engine Access"; @@ -1630,25 +1613,6 @@ }, /turf/simulated/floor/plating, /area/outpost/engineering/power) -"adL" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/plating, -/area/outpost/engineering/power) "adM" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -1741,43 +1705,6 @@ }, /turf/simulated/floor/plating, /area/outpost/engineering/power) -"adS" = ( -/obj/structure/grille, -/obj/structure/window/reinforced{ - icon_state = "rwindow"; - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/simulated/floor/plating, -/area/outpost/engineering/power) -"adT" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 6 - }, -/turf/simulated/floor/plating, -/area/outpost/engineering/power) -"adU" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/simulated/floor/plating, -/area/outpost/engineering/power) -"adV" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/simulated/floor/plating, -/area/outpost/engineering/power) "adW" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4 @@ -2692,28 +2619,6 @@ }, /turf/simulated/floor/plating, /area/outpost/engineering/power) -"afQ" = ( -/obj/machinery/camera/emp_proof{ - c_tag = "Engineering Sublevel - Engine Camera 4"; - dir = 4; - icon_state = "camera"; - network = list("Engine") - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/simulated/floor/plating, -/area/outpost/engineering/power) "afR" = ( /obj/machinery/light, /turf/simulated/floor/plating, @@ -2883,12 +2788,18 @@ /turf/simulated/floor/tiled, /area/engineering/atmos) "agm" = ( -/obj/effect/floor_decal/industrial/warning{ - dir = 4 - }, /obj/structure/cable{ - d2 = 8; - icon_state = "0-8" + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" }, /turf/simulated/floor/plating, /area/outpost/engineering/power) @@ -3031,16 +2942,6 @@ }, /turf/simulated/floor/plating, /area/outpost/engineering/power) -"agF" = ( -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/effect/floor_decal/industrial/warning{ - dir = 4 - }, -/turf/simulated/floor/plating, -/area/outpost/engineering/power) "agG" = ( /obj/structure/cable{ d1 = 1; @@ -3260,27 +3161,6 @@ /obj/effect/floor_decal/industrial/outline/yellow, /turf/simulated/floor/plating, /area/outpost/engineering/power) -"ahe" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/simulated/floor/plating, -/area/outpost/engineering/power) "ahf" = ( /obj/effect/floor_decal/corner/yellow/full{ icon_state = "corner_white_full"; @@ -4076,23 +3956,6 @@ /obj/effect/floor_decal/industrial/warning, /turf/simulated/floor/tiled, /area/engineering/atmos) -"aiJ" = ( -/obj/machinery/camera/emp_proof{ - c_tag = "Engineering Sublevel - Engine Camera 3"; - dir = 4; - icon_state = "camera"; - network = list("Engine") - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plating, -/area/outpost/engineering/power) "aiK" = ( /obj/structure/cable/yellow{ d1 = 1; @@ -5304,20 +5167,6 @@ }, /turf/simulated/floor/plating, /area/outpost/engineering/power) -"alg" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/plating, -/area/outpost/engineering/power) "alh" = ( /obj/machinery/camera/network/engineering_outpost{ c_tag = "Engineering Sublevel - Corridor Camera 4"; @@ -5350,40 +5199,6 @@ }, /turf/simulated/floor/plating, /area/outpost/engineering/power) -"alj" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/simulated/floor/plating, -/area/outpost/engineering/power) -"alk" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - icon_state = "map-scrubbers"; - dir = 1 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/plating, -/area/outpost/engineering/power) "all" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -5419,18 +5234,6 @@ }, /turf/simulated/floor/plating, /area/outpost/engineering/power) -"aln" = ( -/obj/structure/grille, -/obj/structure/window/reinforced{ - icon_state = "rwindow"; - dir = 4 - }, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/simulated/floor/plating, -/area/outpost/engineering/power) "alo" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 4 @@ -5451,25 +5254,6 @@ icon_state = "plating" }, /area/outpost/engineering/storage) -"alq" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/simulated/floor/plating, -/area/outpost/engineering/power) "alr" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ icon_state = "intact-scrubbers"; @@ -5699,25 +5483,6 @@ }, /turf/simulated/floor/plating, /area/outpost/engineering/power) -"alS" = ( -/obj/machinery/camera/emp_proof{ - c_tag = "Engineering Sublevel - Engine Camera 2"; - dir = 1; - icon_state = "camera"; - network = list("Engine") - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/simulated/floor/plating, -/area/outpost/engineering/power) "alT" = ( /obj/machinery/light, /turf/simulated/floor{ @@ -24147,6 +23912,21 @@ }, /turf/simulated/floor/plating, /area/maintenance/research_xenobiology) +"aUY" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + icon_state = "map-scrubbers"; + dir = 1 + }, +/turf/simulated/floor/plating, +/area/outpost/engineering/power) "aUZ" = ( /turf/simulated/wall, /area/crew_quarters/sleep/medical) @@ -28526,6 +28306,25 @@ /obj/structure/lattice/catwalk/indoor, /turf/simulated/floor/plating, /area/maintenance/medsublevel) +"cXa" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/outpost/engineering/power) "cXg" = ( /obj/structure/cable/green{ d1 = 1; @@ -29038,6 +28837,33 @@ }, /turf/simulated/floor/tiled/dark, /area/rnd/test_range) +"eRY" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/camera/emp_proof{ + c_tag = "Engineering Sublevel - Engine Camera 4"; + dir = 4; + icon_state = "camera"; + network = list("Engine") + }, +/turf/simulated/floor/plating, +/area/outpost/engineering/power) "eSg" = ( /obj/effect/floor_decal/corner/mauve/full, /obj/machinery/camera/network/research_outpost{ @@ -29454,6 +29280,19 @@ }, /turf/simulated/floor/tiled/dark, /area/rnd/mixing) +"hmy" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/simulated/floor/plating, +/area/outpost/engineering/power) "hob" = ( /obj/machinery/door/firedoor{ dir = 2 @@ -29954,6 +29793,21 @@ /obj/item/weapon/storage/box/samplebags, /turf/simulated/floor/tiled, /area/rnd/eva) +"jQd" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + icon_state = "rwindow"; + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + icon_state = "rwindow"; + dir = 1 + }, +/turf/simulated/floor/plating, +/area/outpost/engineering/power) "jVc" = ( /obj/structure/closet{ icon_closed = "cabinet_closed"; @@ -31151,6 +31005,26 @@ }, /turf/simulated/floor/plating, /area/maintenance/engsublevel) +"pmr" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + icon_state = "map-scrubbers"; + dir = 1 + }, +/turf/simulated/floor/plating, +/area/outpost/engineering/power) "psd" = ( /obj/machinery/atmospherics/pipe/manifold/visible{ dir = 1 @@ -31777,6 +31651,23 @@ /obj/effect/floor_decal/corner/grey/diagonal, /turf/simulated/floor/tiled/white, /area/medical/patient_wing_hallway) +"sHr" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/simulated/floor/plating, +/area/outpost/engineering/power) "sHO" = ( /obj/structure/cable/green{ d1 = 2; @@ -31919,6 +31810,19 @@ }, /turf/simulated/floor/grass, /area/medical/patient_wing_picnic) +"tLq" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/simulated/floor/plating, +/area/outpost/engineering/power) "tNi" = ( /obj/structure/cable/green{ d1 = 4; @@ -32175,6 +32079,18 @@ }, /turf/simulated/floor/wood, /area/medical/patient_wing_library) +"uFm" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/alarm{ + dir = 8; + pixel_x = 25; + pixel_y = 0 + }, +/turf/simulated/floor/plating, +/area/outpost/engineering/power) "uGE" = ( /obj/effect/floor_decal/corner/mauve{ icon_state = "corner_white"; @@ -32296,6 +32212,13 @@ /obj/machinery/atmospherics/pipe/simple/visible/yellow, /turf/simulated/floor/tiled, /area/rnd/xenoarch_atrium) +"vfl" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/simulated/floor/plating, +/area/outpost/engineering/power) "vgD" = ( /turf/simulated/floor/tiled/white, /area/rnd/xenobiology/xenoflora_hazard) @@ -32651,7 +32574,6 @@ /obj/machinery/light, /obj/machinery/power/apc{ dir = 2; - is_critical = 1; name = "south bump"; pixel_y = -24 }, @@ -33112,6 +33034,18 @@ /obj/item/weapon/pen, /turf/simulated/floor/tiled/white, /area/rnd/xenobiology/xenoflora) +"xQw" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + icon_state = "rwindow"; + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/turf/simulated/floor/plating, +/area/outpost/engineering/power) "xSP" = ( /obj/structure/window/reinforced{ icon_state = "rwindow"; @@ -40522,29 +40456,29 @@ aaa aaa aaa aaa -abJ -abJ -abJ -abJ -abJ -abJ -abJ -abJ -abJ -abJ -abJ -abJ -abJ -abJ -abJ -abJ -abJ -abJ -abJ -abJ -abJ -abJ -abJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -40779,29 +40713,29 @@ aaa aaa aaa aaa +aaa abJ -ace -ace -ace -adI -aev -afb -afb -afQ -afb -afb -ahe -afb -aiJ -ajo -afb -afb -aev -alf -ace -ace -ace abJ +abJ +abJ +abJ +abJ +abJ +abJ +abJ +abJ +abJ +abJ +abJ +abJ +abJ +abJ +abJ +abJ +abJ +abJ +abJ +aaa aaa aaa aaa @@ -41036,25 +40970,24 @@ aaa aaa aaa aaa +aaa abJ ace -acA -acZ -adJ ace ace -afG +adI +aev +afb agm -afG -afG -agm -afG -afG -agF -afG -ace -ace -alg +afb +afb +eRY +afb +afb +ajo +afb +aev +alf ace ace ace @@ -41114,6 +41047,7 @@ aaa aaa aaa aaa +aaa ale ale ale @@ -41293,28 +41227,27 @@ aaa aaa aaa aaa +aaa abJ -acf -acB -ada -adK -aew -afc -afH -ace -ace -afH ace ace ace +adM +ace +ace +vfl +ace +ace +vfl +ace +ace +vfl +ace +ace +aUY +adb +alE ace -afH -akh -aew -adK -alC -acB -aiK abJ aaa aaa @@ -41372,6 +41305,7 @@ aaa aaa aaa aaa +aaa ale ale aba @@ -41550,28 +41484,27 @@ aaa aaa aaa aaa +aaa abJ -acg +ace +acA +acZ +adJ ace ace -adL -aex -afd +afG +afG +afG +afG +afG +afG +afG +ace +ace +adM ace ace ace -ace -ace -ace -ace -ace -ace -aki -akH -alq -ace -ace -alP abJ aaa aaa @@ -41629,6 +41562,7 @@ aaa aaa aaa aaa +aaa ale ale aba @@ -41807,28 +41741,27 @@ aaa aaa aaa aaa +aaa abJ -ach -ace -ace -adM -ace -afd +acf +acB +ada +adK +aew +afc +afH ace ace ace ace ace -ace -ace -ace -ace -aki -ace -adM -ace -ace -ach +afH +akh +aew +adK +alC +acB +aiK abJ aaa aaa @@ -41886,6 +41819,7 @@ aaa aaa aaa aaa +aaa ale ale aba @@ -42064,12 +41998,13 @@ aaa aaa aaa aaa +aaa abJ -ach +acg acC adb -adN -ace +sHr +aex afd ace ace @@ -42078,14 +42013,12 @@ ace ace ace ace -ace -afH aki -ace -ali +akH +cXa acZ alL -ach +alP abJ aaa aaa @@ -42143,6 +42076,7 @@ aaa aaa aaa aaa +aaa ale ale aba @@ -42321,28 +42255,27 @@ aaa aaa aaa aaa +aaa abJ ach ace ace -adO -aex +adM +ace afd ace ace ace ace -ahc -ace ace ace ace aki -akH -alj +ace +adM ace ace -alQ +ach abJ aaa aaa @@ -42400,6 +42333,7 @@ aaa aaa aaa aaa +aaa ale ale aba @@ -42578,28 +42512,27 @@ aaa aaa aaa aaa +aaa abJ ach ace ace -adM -ace +adO +aex afd +ace +ace +ace +ahc +ace +ace afH -ace -ace -ace -ace -ace -ace -ace -ace aki -ace -alk +akH +pmr adb alE -alR +alQ abJ aaa aaa @@ -42657,6 +42590,7 @@ aaa aaa aaa aaa +aaa ale ale aba @@ -42835,6 +42769,7 @@ aaa aaa aaa aaa +aaa abJ ach acA @@ -42849,14 +42784,12 @@ ace ace ace ace -ace -ace aki ace adM ace ace -ach +alR abJ aaa aaa @@ -42914,6 +42847,7 @@ aaa aaa aaa aaa +aaa ale ale aba @@ -43092,6 +43026,7 @@ aaa aaa aaa aaa +aaa abJ ach ace @@ -43106,8 +43041,6 @@ ace ace ace ace -ace -ace aki akH all @@ -43171,6 +43104,7 @@ aaa aaa aaa aaa +aaa ale ale aba @@ -43349,8 +43283,9 @@ aaa aaa aaa aaa +aaa abJ -aci +hmy acB ada adQ @@ -43359,8 +43294,6 @@ afc afH ace ace -ace -ace afH ace ace @@ -43370,7 +43303,7 @@ aew adQ alC acB -alS +tLq abJ aaa aaa @@ -43428,6 +43361,7 @@ aaa aaa aaa aaa +aaa ale ale aba @@ -43606,6 +43540,7 @@ aaa aaa aaa aaa +aaa abJ ach acC @@ -43615,13 +43550,11 @@ ace ace afJ afJ -afJ agZ ahD aij afJ afJ -afJ ace ace ali @@ -43685,6 +43618,7 @@ aaa aaa aaa aaa +aaa ale ale aba @@ -43863,12 +43797,12 @@ aaa aaa aaa aaa +aaa abJ ach -acD -adc +uFm +ace adR -aey afe afK agn @@ -43880,7 +43814,6 @@ aey agn aey afK -aey alm adc ace @@ -43942,6 +43875,7 @@ aaa aaa aaa aaa +aaa ale ale aba @@ -44120,12 +44054,12 @@ aaa aaa aaa aaa +aaa abJ acj abJ abJ -adS -aez +jQd aff afL aez @@ -44137,8 +44071,7 @@ aez aez aez afL -aez -aln +xQw abJ abJ acj @@ -44199,6 +44132,7 @@ aaa aaa aaa aaa +aaa ale ale aba @@ -44377,12 +44311,12 @@ aaa aaa aaa aaa +aaa abJ ach acE abJ ace -ace afg afM abJ @@ -44395,7 +44329,6 @@ abJ ace afM ace -ace abJ acE ach @@ -44456,6 +44389,7 @@ aaa aaa aaa aaa +aaa ale ale aba @@ -44634,12 +44568,12 @@ aaa aaa aaa aaa +aaa abJ ach ace abJ -adT -adb +acC afh afN abJ @@ -44652,7 +44586,6 @@ abJ ace afM ace -ace abJ alM ach @@ -44713,6 +44646,7 @@ aaa aaa aaa aaa +aaa ale ale aba @@ -44891,11 +44825,11 @@ aaa aaa aaa aaa +aaa abJ ack acB add -adU aeA afi afO @@ -44909,7 +44843,6 @@ ajp acZ akj ace -ace abJ abJ acj @@ -44927,6 +44860,7 @@ aaa aaa aaa aaa +aaa akx akx akx @@ -45148,11 +45082,11 @@ aaa aaa aaa aaa +aaa abJ abJ abJ abJ -adV ach afj afP @@ -45166,7 +45100,6 @@ ajq ajP akk acB -acB alD ade aeB @@ -45184,6 +45117,7 @@ aaa aaa aaa aaa +aaa akx arz asa @@ -45405,11 +45339,11 @@ aaa aaa aaa aaa +aaa abJ acl acB ade -acB aeB afk afI @@ -45426,7 +45360,6 @@ ace ace ace ace -ace abJ aaa aaa @@ -45440,6 +45373,7 @@ aaa aaa aaa aaa +aaa akx akx arA @@ -45662,11 +45596,11 @@ aaa aaa aaa aaa +aaa abJ acm acF adf -adf aeC afl afR @@ -45683,7 +45617,6 @@ adb adb alE acD -ace abJ aaa aaa @@ -45697,6 +45630,7 @@ aaa aaa aaa aaa +aaa akx aqP arB @@ -45919,7 +45853,7 @@ aaa aaa aaa aaa -abJ +aaa abJ abJ abJ @@ -45941,7 +45875,7 @@ abJ abJ abJ abJ -abJ +aaa aaa aaa aaa