From 2c4011dde419fbad4247408d0a478f729cace86f Mon Sep 17 00:00:00 2001 From: Mykhailo Bykhovtsev Date: Fri, 1 Mar 2019 10:27:52 -0800 Subject: [PATCH] Tesla tweak update to previous update and re-haul[buff] (#5994) This Pr tweaks previous update Grounding rods now are vital for how many miniballs of Tesla can be contained without it going nuts and melt stuff. 1 rod = 4 miniballs. So with standard setup 4 rods = 16 miniballs max and that is around 4 million W energy. Each time Tesla melts coil/rod/emitter it will loose a single miniball and drop in energy. Tesla miniballs no longer shoot beams, instead they shoot main ball which shoot coils, accounting for energy produced by all miniballs. Tesla miniballs no longer zap. Instead they shoot main Tesla ball which shoots one single beamn, which accounts how much power each miniball produces. Tesla now looses more and faster energy with number of miniballs it has. Energy loss changes after 12 balls and after 16 miniballs. Each miniball produces 156250W Tesla Engine room is reduced in size, field is now 5x5. Tesla now moves smoothly tile-by-tile. No more jumps --- code/modules/power/tesla/coil.dm | 1 - code/modules/power/tesla/energy_ball.dm | 77 ++- html/changelogs/Sindorman-tesla-update.yml | 43 ++ maps/_common/areas/station/research.dm | 2 +- maps/aurora/aurora-3_sublevel.dmm | 766 ++++++++++----------- 5 files changed, 447 insertions(+), 442 deletions(-) create mode 100644 html/changelogs/Sindorman-tesla-update.yml 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