diff --git a/aurorastation.dme b/aurorastation.dme index fd5e927734f..c6c3275facb 100644 --- a/aurorastation.dme +++ b/aurorastation.dme @@ -924,6 +924,7 @@ #include "code\game\machinery\spaceheater.dm" #include "code\game\machinery\stargazer.dm" #include "code\game\machinery\stasis_bed.dm" +#include "code\game\machinery\stasis_cage.dm" #include "code\game\machinery\status_display.dm" #include "code\game\machinery\status_display_ai.dm" #include "code\game\machinery\status_display_snowflakes.dm" @@ -1091,6 +1092,8 @@ #include "code\game\objects\items\lore_radio.dm" #include "code\game\objects\items\paintkit.dm" #include "code\game\objects\items\recharger_backpack.dm" +#include "code\game\objects\items\safari_net.dm" +#include "code\game\objects\items\science_sampler.dm" #include "code\game\objects\items\shooting_range.dm" #include "code\game\objects\items\skrell.dm" #include "code\game\objects\items\spirit_board.dm" diff --git a/code/__DEFINES/forensic_swabs.dm b/code/__DEFINES/forensic_swabs.dm index ef25af351b1..558c060277c 100644 --- a/code/__DEFINES/forensic_swabs.dm +++ b/code/__DEFINES/forensic_swabs.dm @@ -2,3 +2,9 @@ #define EVIDENCE_TYPE_GSR "Gunshot Residue" #define EVIDENCE_TYPE_SALIVA "Saliva" #define EVIDENCE_TYPE_ADDITIONAL "Additional" + +#define MICROSCOPE_FIBER BITFLAG(0) +#define MICROSCOPE_PRINTS BITFLAG(1) +#define MICROSCOPE_GSR BITFLAG(2) +#define MICROSCOPE_CELLS BITFLAG(3) +#define MICROSCOPE_ALL MICROSCOPE_FIBER | MICROSCOPE_PRINTS | MICROSCOPE_GSR | MICROSCOPE_CELLS diff --git a/code/__DEFINES/wires.dm b/code/__DEFINES/wires.dm index cb858e0c5a5..d130b97ad17 100644 --- a/code/__DEFINES/wires.dm +++ b/code/__DEFINES/wires.dm @@ -77,6 +77,8 @@ #define WIRE_OUTPUT "Output" #define WIRE_GROUNDING "Grounding" #define WIRE_FAILSAFES "Failsafes" +#define WIRE_RELEASE "Release" +#define WIRE_LOCK "Lock" // Wire states for the AI #define AI_WIRE_NORMAL 0 diff --git a/code/__DEFINES/xenoarch.dm b/code/__DEFINES/xenoarch.dm index 77c8335089d..64d0fb10d41 100644 --- a/code/__DEFINES/xenoarch.dm +++ b/code/__DEFINES/xenoarch.dm @@ -18,4 +18,10 @@ #define TRIGGER_NITRO 12 #define MAX_TRIGGER 12 + +#define SAMPLE_BIO "tissue" +#define SAMPLE_SOIL "soil" +#define SAMPLE_WATER "water" +#define ALL_SAMPLE_ATTACHMENTS list(SAMPLE_BIO, SAMPLE_SOIL, SAMPLE_WATER) + #define PARTICLE_TYPES list("Kaons", "Pions", "Protons", "Neutrons", "Positrons", "Electrons", "Muons", "Neutrinos") diff --git a/code/game/machinery/stasis_cage.dm b/code/game/machinery/stasis_cage.dm new file mode 100644 index 00000000000..2613486a49d --- /dev/null +++ b/code/game/machinery/stasis_cage.dm @@ -0,0 +1,325 @@ +/obj/machinery/stasis_cage + name = "stasis cage" + desc = "A high-tech animal cage, designed to keep contained fauna docile and safe." + icon = 'icons/obj/machinery/stasis_cage.dmi' + icon_state = "stasis_cage" + density = TRUE + layer = ABOVE_OBJ_LAYER + req_access = list(ACCESS_RESEARCH) + idle_power_usage = 0 + active_power_usage = 5000 + use_power = POWER_USE_IDLE + + /** + * The wires of the cage + */ + var/datum/wires/stasis_cage/wires + /** + * The mob in the cage + */ + var/mob/living/contained + /** + * Internal atmosphere of the cage + */ + var/datum/gas_mixture/airtank + /** + * If the cage works + */ + var/broken = FALSE + /** + * If the cage will prevent human mobs from being stored + */ + var/safety = TRUE + + /** + * The cell used to power this + */ + var/obj/item/cell/cell = null + + +/obj/machinery/stasis_cage/Initialize() + . = ..() + airtank = new /datum/gas_mixture(src) + airtank.temperature = T20C + airtank.adjust_gas(GAS_OXYGEN, MOLES_O2STANDARD, FALSE) + airtank.adjust_gas(GAS_NITROGEN, MOLES_N2STANDARD) + + cell = new /obj/item/cell(src) + + var/mob/living/A = locate() in loc + if(!A) + release(A) + else + contain(A) + + wires = new /datum/wires/stasis_cage(src) + +/obj/machinery/stasis_cage/Destroy() + release() + QDEL_NULL(airtank) + QDEL_NULL(contained) + QDEL_NULL(cell) + QDEL_NULL(wires) + return ..() + +/obj/machinery/stasis_cage/process(seconds_per_tick) + if (use_power || !cell || !cell.charge) + return + cell.use(2 * seconds_per_tick) + if (contained) + if (iscarbon(contained)) + var/mob/living/carbon/C = contained + C.SetStasis(20 * seconds_per_tick) + else if (isanimal(contained)) + var/mob/living/simple_animal/SA = contained + SA.in_stasis = TRUE + +/obj/machinery/stasis_cage/proc/try_release(mob/user) + if(!contained) + to_chat(user, SPAN_WARNING("There's no animals inside \the [src]")) + return + if (broken) + to_chat(user, SPAN_WARNING("\The [src]'s lid is broken!")) + return + if (!allowed(user)) + to_chat(user, SPAN_WARNING("\The [src] refuses access.")) + return + if (!use_power) + to_chat(user, SPAN_WARNING("\The [src] is unpowered.")) + return + + user.visible_message(SPAN_NOTICE("[user] begins undoing the locks and latches on \the [src].")) + if(do_after(user, 2 SECONDS, src)) + user.visible_message(SPAN_NOTICE("[user] releases \the [contained] from \the [src]!")) + release() + + +/obj/machinery/stasis_cage/proc/release() + if (contained) + contained.dropInto(src) + contained = null + playsound(get_turf(src), 'sound/machines/airlock.ogg', 40) + update_icon() + update_use_power(POWER_USE_IDLE) + + +/obj/machinery/stasis_cage/proc/contain(mob/user, mob/thing) + if(contained || broken) + return + if (!use_power) + to_chat(usr, SPAN_WARNING("\The [src] is unpowered.")) + return + user.visible_message(SPAN_NOTICE("[user] has stuffed \the [thing] into \the [src]."), SPAN_NOTICE("You have stuffed \the [thing] into \the [src].")) + set_contained(thing) + update_use_power(POWER_USE_ACTIVE) + + +/obj/machinery/stasis_cage/proc/set_contained(mob/contained) + src.contained = contained + if(contained) + contained.forceMove(src) + update_icon() + + +/obj/machinery/stasis_cage/attack_hand(mob/user) + if (!panel_open) + try_release(user) + else + wires.interact(user) + + +/obj/machinery/stasis_cage/attack_robot(mob/user) + if (Adjacent(user)) + if(!panel_open) + try_release(user) + else + wires.interact(user) + + + +/obj/machinery/stasis_cage/examine(mob/user, distance, is_adjacent, infix, suffi, show_extended) + . = ..() + if (contained) + to_chat(user, SPAN_NOTICE("\The [contained] is kept inside.")) + if (broken) + to_chat(user, SPAN_WARNING("\The [src]'s lid is broken. It probably can not be used.")) + if (cell) + to_chat(user, SPAN_NOTICE("\The [src]'s power gauge shows [cell.percent()]% remaining.")) + + +/obj/machinery/stasis_cage/attackby(obj/item/attacking_item, mob/user) + . = ..() + // Crowbar - Pry thing out of cage + if (attacking_item.iscrowbar()) + if (panel_open) + to_chat(user, SPAN_NOTICE("\The [src]'s panel is open!")) + return TRUE + if (contained) + if (use_power) + to_chat(user, SPAN_NOTICE("\The [src] is still powered shut.")) + return TRUE + user.visible_message(SPAN_DANGER("\The [user] begins to pry open \the [src] with the crowbar!"), SPAN_DANGER("You being to pry open \the [src] with the crowbar.")) + playsound(loc, 'sound/machines/airlock_open_force.ogg', 40) + if (!do_after(user, 7 SECONDS, src)) + return TRUE + if (prob(20)) + user.visible_message(SPAN_DANGER("\The [user] jams open \the [src]'s lid, damaging it in the process!"), SPAN_DANGER("You successfully manage to jam open \the [src]'s lid, damaging it in the process.")) + release() + broken = TRUE + update_icon() + return TRUE + user.visible_message(SPAN_DANGER("\The [user] jams open \the [src]'s lid!") ,SPAN_DANGER("You successfully manage to jam open \the [src]'s lid.")) + release() + return TRUE + + // Wrench - Repair lid + if (attacking_item.iswrench()) + if (broken) + user.visible_message(SPAN_NOTICE("\The [user] begins to clamp \the [src]'s lid back into position."), SPAN_NOTICE("You begin to clamp \the [src]'s lid back into position.")) + playsound(src, 'sound/items/Ratchet.ogg', 50, 1) + if (!do_after(user, 5 SECONDS, src)) + return TRUE + user.visible_message(SPAN_NOTICE("\The [user] successfully repairs \the [src]'s lid!"), SPAN_NOTICE("You successfully repair \the [src]'s lid!")) + broken = FALSE + update_icon() + return TRUE + + // Screwdriver - Open panel + if(attacking_item.isscrewdriver()) + panel_open = !panel_open + to_chat(user, SPAN_NOTICE("You [panel_open ? "unscrew" : "screw shut"] the maintainance panel of \the [src]")) + + +/obj/machinery/stasis_cage/return_air() //Used to make stasis cage protect from vacuum. + if (!use_power) + return + if(airtank) + return airtank + ..() + + +/obj/machinery/stasis_cage/RefreshParts() + ..() + var/charge_multiplier + for(var/obj/item/stock_parts/capacitor/C in component_parts) + charge_multiplier += C.rating / 2 + change_power_consumption(initial(active_power_usage) / charge_multiplier, POWER_USE_ACTIVE) + +/obj/machinery/stasis_cage/emp_act(severity) + . = ..() + if(contained) + if(prob(30)) + visible_message(SPAN_DANGER("\The [src]'s lights flicker, unlocking the container!")) + release() + broken = TRUE + update_icon() + spark(src, 1) + return + visible_message(SPAN_DANGER("\The [src] sparks violently, damaging the lid!")) + broken = TRUE + spark(src, 1) + + if (cell) + cell.emp_act(severity) + + update_icon() + +/obj/machinery/stasis_cage/update_icon() + . = ..() + ClearOverlays() + if (use_power) + if (contained) + if (broken) + icon_state = "[initial(icon_state)]_broke" + else + icon_state = "[initial(icon_state)]_on" + else + if (broken) + icon_state = "[initial(icon_state)]_broke" + else + icon_state = "[initial(icon_state)]_power" + else + if (broken) + icon_state = "[initial(icon_state)]_dead" + else + icon_state = initial(icon_state) + +/obj/machinery/stasis_cage/MouseDrop_T(mob/target, mob/user) + if (!isanimal(target) && safety) + to_chat(user, SPAN_WARNING("\The [src] smartly refuses \the [target].")) + return + if (!allowed(user)) + to_chat(user, SPAN_NOTICE("\The [src] blinks, refusing access.")) + return + if (!target.stat && !target.captured) + to_chat(user, SPAN_NOTICE("It's going to be difficult to convince \the [target] to move into \the [src] without capturing it in a net.")) + return + user.visible_message(SPAN_NOTICE("\The [user] begins stuffing \the [target] into \the [src]."), SPAN_NOTICE("You begin stuffing \the [target] into \the [src].")) + playsound(src, 'sound/machines/AirlockClose.ogg', 100) + add_fingerprint(user) + if (do_after(user, 2 SECONDS, src)) + if(target.buckled_to) + target.buckled_to.unbuckle() + contain(user, target) + + +/datum/wires/stasis_cage + proper_name = "Stasis Cage" + holder_type = /obj/machinery/stasis_cage + + +/datum/wires/stasis_cage/New(atom/holder) + wires = list( + WIRE_SAFETY, + WIRE_RELEASE, + WIRE_LOCK + ) + add_duds(3) + ..() + +/datum/wires/stasis_cage/interactable(mob/user) + SHOULD_CALL_PARENT(FALSE) + var/obj/machinery/stasis_cage/stasis_cage = holder + if (stasis_cage.panel_open) + return TRUE + return FALSE + + +/datum/wires/stasis_cage/get_status() + var/obj/machinery/stasis_cage/stasis_cage = holder + . = ..() + if(!stasis_cage.use_power) + . += "The panel is unpowered." + else + . += "The panel is powered." + . += "The biometric safety sensors are [(WIRE_SAFETY in cut_wires) ? "connected" : "disconnected"]." + . += "The cage's emergency auto-release mechanism is [(WIRE_RELEASE in cut_wires) ? "disabled" : "enabled"]." + . += "The cage lid motors are [(WIRE_LOCK in cut_wires) ? "overriden" : "nominal"]." + + +/datum/wires/stasis_cage/on_cut(wire, mend, source) + var/obj/machinery/stasis_cage/stasis_cage = holder + switch (wire) + if (WIRE_SAFETY) + stasis_cage.safety = !stasis_cage.safety + if (WIRE_RELEASE) + if (stasis_cage.contained && !mend) + stasis_cage.release() + holder.update_icon() + if (WIRE_LOCK) + if (!mend) + playsound(stasis_cage.loc, 'sound/machines/BoltsDown.ogg', 60) + holder.visible_message(SPAN_WARNING("The cage's lid bolts down destructively, denting itself!"), SPAN_NOTICE("You notice the cage lid override flag blink hastily.")) + stasis_cage.broken = TRUE + holder.update_icon() + + +/datum/wires/stasis_cage/on_pulse(wire) + var/obj/machinery/stasis_cage/stasis_cage = holder + switch (wire) + if (WIRE_SAFETY) + if (stasis_cage.contained) + if (prob(20)) + holder.visible_message(SPAN_WARNING("The cage hastily flicks open its lid!"), SPAN_NOTICE("You notice the biometric sensor flag blink fervently.")) + stasis_cage.release() + diff --git a/code/game/objects/items/safari_net.dm b/code/game/objects/items/safari_net.dm new file mode 100644 index 00000000000..c25c3d072e0 --- /dev/null +++ b/code/game/objects/items/safari_net.dm @@ -0,0 +1,78 @@ +/* + Safari Net +*/ +/obj/item/energy_net/safari + name = "safari net" + desc = "A low power energized net meant to subdue animals." + icon_state = "safarinet" + net_type = /obj/effect/energy_net/safari + +/obj/effect/energy_net/safari + name = "safari net" + desc = "A low power energized net meant to subdue animals." + icon_state = "safari_net" + + health = 5 + +/obj/item/net_container + name = "safari net container" + desc = "A cylindrical device designed to stabilise safari energy nets for transport." + icon = 'icons/obj/item/net_container.dmi' + icon_state = "net_tube" + item_state = "net_tube" + /** + * How many nets we have "stored" + */ + var/nets = 0 + +/obj/item/net_container/attackby(obj/item/attacking_item, mob/user, params) + . = ..() + if(istype(attacking_item, /obj/item/energy_net/safari)) + if(nets < 3) + nets++ + to_chat(user, SPAN_NOTICE("\The [src] hums as it stores the energy of \the [attacking_item] inside.")) + qdel(attacking_item) + update_icon() + return + to_chat(user, SPAN_NOTICE("\The [src] is too full to store \the [attacking_item]!")) + return + +/obj/item/net_container/attack_hand(mob/user) + if(nets) + nets-- + to_chat(user, SPAN_NOTICE("\The [src] hums as it forms a new net in your hand.")) + var/obj/item/energy_net/safari/net = new /obj/item/energy_net/safari(src) + user.put_in_active_hand(net) + update_icon() + return + return ..() + +/obj/item/net_container/update_icon() + . = ..() + ClearOverlays() + if(nets) + var/image/over = overlay_image(icon, "[icon_state]_[nets]") + AddOverlays(over) + +/obj/structure/net_dispenser + name = "safari net dispenser" + desc = "A wall mounted dispenser capable to producing low power energy nets, suitable for trapping fauna." + icon = 'icons/obj/item/net_container.dmi' + icon_state = "net_dispenser" + /** + * How many nets we can dispense. + * This should be enough, as they're not really meant to be limitted on this end + */ + var/nets = 30 + +/obj/structure/net_dispenser/attack_hand(mob/living/user) + if(nets) + nets-- + to_chat(user, SPAN_NOTICE("\The [src] hums as it forms a new net in your hand.")) + var/obj/item/energy_net/safari/net = new /obj/item/energy_net/safari(src) + user.put_in_active_hand(net) + return + return ..() + + + diff --git a/code/game/objects/items/science_sampler.dm b/code/game/objects/items/science_sampler.dm new file mode 100644 index 00000000000..0c16e568006 --- /dev/null +++ b/code/game/objects/items/science_sampler.dm @@ -0,0 +1,369 @@ +/* + Sampling +*/ +/obj/item/sampler + name = "science sampler" + desc = "A multi-purpose sampling device designed by Zeng-Hu Pharmaceuticals for gathering samples during their research expeditions." + desc_extended = "The \"Chimera\" model field sampling device was developed by Zeng-Hu Pharmaceuticals in the 2450s to make allow their \ + researchers to take a variety of samples, ranging from plant and animal tissue to soil or water samples, compacted into \ + a single handheld device. It became widely popular even among rival corporations and independant research groups, with \ + its versatility and compact nature making it the tool-of-choice for almost every modern scientific expedition." + desc_info = "It has attachments allowing for sampling of biological tissue, surface soil and water sources. Must be loaded with a vial. Alt-click to cycle between attachments." + icon = 'icons/obj/item/sampling.dmi' + icon_state = "sampler" + item_state = "sampler" + contained_sprite = TRUE + w_class = ITEMSIZE_SMALL + /** + * Which attachment we are using + */ + var/attachment = SAMPLE_BIO + /** + * The vial we load our sample into + */ + var/obj/item/reagent_containers/glass/beaker/vial/vial + +/obj/item/sampler/Initialize(mapload, ...) + . = ..() + update_icon() + +/obj/item/sampler/attackby(obj/item/attacking_item, mob/user, params) + if(istype(attacking_item, /obj/item/reagent_containers/glass/beaker/vial)) + if(!vial) + to_chat(user, SPAN_NOTICE("You insert \the [attacking_item] into \the [src].")) + vial = attacking_item + if(ishuman(user)) + var/mob/living/carbon/human/H = user + H.drop_from_inventory(vial) + vial.forceMove(src) + update_icon() + return TRUE + to_chat(user, SPAN_NOTICE("\The [src] already has a vial inserted.")) + return ..() + +/obj/item/sampler/attack_hand(mob/user) + if(vial) + to_chat(user, SPAN_NOTICE("You remove \the [vial] from \the [src].")) + user.put_in_active_hand(vial) + vial = null + update_icon() + return TRUE + return ..() + +/obj/item/sampler/AltClick(mob/user) + attachment = next_in_list(attachment, ALL_SAMPLE_ATTACHMENTS) + to_chat(user, SPAN_NOTICE("You switch \the [src] to its [attachment] attachment.")) + update_icon() + +/obj/item/sampler/update_icon() + . = ..() + ClearOverlays() + if(vial) + icon_state = "[initial(icon_state)]_loaded" + if(vial.reagents.total_volume) + AddOverlays(overlay_image(icon, "sampler_full")) + else + icon_state = initial(icon_state) + var/image/I + switch(attachment) + if(SAMPLE_BIO) + I = overlay_image(icon, "bio_attachment") + if(SAMPLE_SOIL) + I = overlay_image(icon, "soil_attachment") + if(SAMPLE_WATER) + I = overlay_image(icon, "water_attachment") + if(I) + AddOverlays(I) + +/obj/item/sampler/attack(atom/target, mob/user, proximity_flag, click_parameters) + if(!vial || vial.reagents.total_volume) + return ..() + else + return FALSE + +/obj/item/sampler/afterattack(atom/target, mob/user, proximity_flag, click_parameters) + if(!vial || vial.reagents.total_volume) + return ..() + if(try_sample(target, user)) + to_chat(user, SPAN_NOTICE("\The [src]'s attachment whirrs as it samples \the [target].")) + else + to_chat(user, SPAN_NOTICE("\The [src]'s attachment buzzes as it fails to sample \the [target]. Maybe try another attachment?")) + +/** + * Tries to sample the target using our current attachment, loading a sample into our vial if successful. + */ +/obj/item/sampler/proc/try_sample(atom/target, mob/user) + switch(attachment) + if(SAMPLE_BIO) + if(istype(target, /mob/living/simple_animal)) + var/mob/living/simple_animal/fauna = target + if(!fauna.sample_data) + return FALSE + vial.reagents.add_reagent(/singleton/reagent/biological_tissue, 10, fauna.sample_data) + return TRUE + if(istype(target, /obj/structure/flora)) + var/obj/structure/flora/flora = target + if(flora.is_rock) + return FALSE + vial.reagents.add_reagent(/singleton/reagent/biological_tissue, 10, flora.sample_data) + return TRUE + if(SAMPLE_SOIL) + if(istype(target, /obj/structure/flora)) + var/obj/structure/flora/rock = target + if(!rock.is_rock) + return FALSE + vial.reagents.add_reagent(/singleton/reagent/soil, 10, rock.sample_data) + return TRUE + if(istype(target, /turf/simulated/floor/exoplanet)) + var/turf/simulated/floor/exoplanet/ground = target + var/obj/effect/overmap/visitable/sector/planet = GLOB.map_sectors["[target.z]"] + if(istype(ground, /turf/simulated/floor/exoplanet/water) || !ground.has_resources || !istype(planet)) + return FALSE + var/list/possible_data = planet.soil_data.Copy() + var/list/data = list() + for(var/_ in 1 to rand(2,4)) + var/d = pick(possible_data) + possible_data -= d + data += d + vial.reagents.add_reagent(/singleton/reagent/soil, 10, data) + return TRUE + if(SAMPLE_WATER) + if(istype(target, /turf/simulated/floor/exoplanet/water)) + var/obj/effect/overmap/visitable/sector/planet = GLOB.map_sectors["[target.z]"] + if(!istype(planet)) + return FALSE + var/list/possible_data = planet.water_data.Copy() + var/list/data = list() + for(var/_ in 1 to rand(2,4)) + var/d = pick(possible_data) + possible_data -= d + data += d + vial.reagents.add_reagent(/singleton/reagent/water, 10, data) + return TRUE + +/obj/machinery/microscope/science + name = "compound microscope" + desc = "A less-than-state-of-the-art means of examining tiny samples. At least it has a printer for recording its results." + icon = 'icons/obj/item/sampling.dmi' + density = FALSE + allowed_analysis = MICROSCOPE_CELLS + +/obj/machinery/centrifuge + name = "centrifuge" + desc = "A device capable of spinning samples at 1000 RPM, to separate their components for analysis. It has a printer attached to record its results." + icon = 'icons/obj/item/sampling.dmi' + icon_state = "centrifuge_0" + anchored = TRUE + density = FALSE + + /** + * The sample vials loaded in this centrifuge + */ + var/list/obj/item/reagent_containers/glass/beaker/vial/samples = list() + /** + * The report number of our last report + */ + var/report_num = 0 + +/obj/machinery/centrifuge/Initialize(mapload, d, populate_components, is_internal) + . = ..() + update_icon() + +/obj/machinery/centrifuge/attackby(obj/item/attacking_item, mob/user) + + if(LAZYLEN(samples) >= 4) + to_chat(user, SPAN_WARNING("\The [src] is already full with samples.")) + return + + if(istype(attacking_item, /obj/item/reagent_containers/glass/beaker/vial)) + to_chat(user, SPAN_NOTICE("You insert \the [attacking_item] into \the [src].")) + user.unEquip(attacking_item) + attacking_item.forceMove(src) + samples += attacking_item + update_icon() + return + +/obj/machinery/centrifuge/attack_hand(mob/user) + + if(!LAZYLEN(samples)) + to_chat(user, SPAN_WARNING("\The [src] has no samples to examine.")) + return + + if(LAZYLEN(samples) == 1 || LAZYLEN(samples) == 3) //Odd number, unbalanced + to_chat(user, SPAN_WARNING("\The [src] is unbalanced. Try adding blank samples as counter-weights.")) + return + + to_chat(user, SPAN_NOTICE("\The [src] begins to spin, separating the contents of the samples.")) + + icon_state = "[initial(icon_state)]_working" + addtimer(CALLBACK(src, PROC_REF(process_samples)), 30 SECONDS) + +/obj/machinery/centrifuge/proc/process_samples() + update_icon() + visible_message(SPAN_NOTICE("\The [src] prints out a report of its findings.")) + var/obj/item/paper/report = new() + + report_num++ + var/pname = "Centrifuge report #[report_num]" + var/info = "Centrifugal analysis report #[report_num]
" + var/sample = 1 + for(var/obj/item/reagent_containers/glass/beaker/vial/V in samples) + var/list/soil = REAGENT_DATA(V.reagents, /singleton/reagent/soil) + if(soil) + info += "Separation of sample [sample] has revealed the following characteristics" + else + info += "
  • No soil or dust found in sample [sample].
  • " + sample++ + + report.set_content_unsafe(pname, info) + + if(report) + report.update_icon() + print(report) + +/** + * Removes the last sample from the centrifuge + */ +/obj/machinery/centrifuge/proc/remove_sample(mob/living/remover) + if(!istype(remover) || remover.incapacitated() || !Adjacent(remover)) + return + if(!LAZYLEN(samples)) + to_chat(remover, SPAN_WARNING("\The [src] does not have a sample in it.")) + return + var/obj/item/reagent_containers/glass/beaker/vial/sample = samples[LAZYLEN(samples)] + to_chat(remover, SPAN_NOTICE("You remove \the [sample] from \the [src].")) + sample.forceMove(get_turf(src)) + remover.put_in_hands(sample) + samples -= sample + update_icon() + +/obj/machinery/centrifuge/AltClick() + remove_sample(usr) + +/obj/machinery/centrifuge/MouseDrop(var/atom/other) + if(usr == other) + remove_sample(usr) + else + return ..() + +/obj/machinery/centrifuge/update_icon() + . = ..() + icon_state = "centrifuge_[LAZYLEN(samples)]" + +/obj/machinery/spectrophotometer + name = "spectrophotometer" + desc = "A device to analyse liquid samples by shining various frequencies of light through and measuring absorption. It has a printer attached to record its results." + icon = 'icons/obj/item/sampling.dmi' + icon_state = "spectrophotometer_closed_empty" + anchored = TRUE + density = TRUE + + /** + * The sample vial to analyse + */ + var/obj/item/reagent_containers/glass/beaker/vial/sample + /** + * The report number of our last report + */ + var/report_num = 0 + /** + * Whether this spectrophotometer has been calibrated already. + * Must be done with pure water + */ + var/zeroed = FALSE + /** + * Whether the hatch is open, allowing samples to be added/removed + */ + var/open = FALSE + +/obj/machinery/spectrophotometer/Initialize(mapload, d, populate_components, is_internal) + . = ..() + update_icon() + +/obj/machinery/spectrophotometer/attackby(obj/item/attacking_item, mob/user) + if(!open) + to_chat(user, SPAN_WARNING("\The [src] is closed.")) + return + + if(sample) + to_chat(user, SPAN_WARNING("\The [src] already has a sample.")) + return + + if(istype(attacking_item, /obj/item/reagent_containers/glass/beaker/vial)) + to_chat(user, SPAN_NOTICE("You insert \the [attacking_item] into \the [src].")) + user.unEquip(attacking_item) + attacking_item.forceMove(src) + sample = attacking_item + update_icon() + return + +/obj/machinery/spectrophotometer/attack_hand(mob/user) + if(open) + if(!sample) + to_chat(user, SPAN_WARNING("\The [src] has no samples to remove.")) + return + to_chat(user, SPAN_NOTICE("You remove \the [sample] from \the [src].")) + sample.forceMove(get_turf(src)) + user.put_in_hands(sample) + sample = null + update_icon() + return + + if(!sample) + to_chat(user, SPAN_WARNING("\The [src] has no sample to examine.")) + return + + if(!REAGENT_VOLUME(sample.reagents, /singleton/reagent/water)) + to_chat(user, SPAN_WARNING("\The [src] can only examine water samples.")) + return + + if(!zeroed && REAGENT_DATA(sample.reagents, /singleton/reagent/water)) + to_chat(user, SPAN_WARNING("\The [src] has not yet been calibrated. Try zeroing it with a blank sample.")) + return + + to_chat(user, SPAN_NOTICE("\The [src] begins to glow, shining light through its sample.")) + + icon_state = "[initial(icon_state)]_working" + addtimer(CALLBACK(src, PROC_REF(process_sample)), 15 SECONDS) + +/** + * Prints a report of the analysis after finishing, or zeroes successfully + */ +/obj/machinery/spectrophotometer/proc/process_sample() + update_icon() + if(!zeroed) + zeroed = TRUE + visible_message(SPAN_NOTICE("\The [src] beeps, \"Calibration complete!\"")) + return + + visible_message(SPAN_NOTICE("\The [src] prints out a report of its findings.")) + var/obj/item/paper/report = new() + + report_num++ + var/pname = "Spectrophotometer report #[report_num]" + var/info = "Spectrophotometry anaylsis report #[report_num]
    " + var/list/water = REAGENT_DATA(sample.reagents, /singleton/reagent/water) + if(water) + info += "Absorption spectra of [src] have revealed the following electrolytes present" + else + info += "Absorption spectra of [src] match those of pure water." + + report.set_content_unsafe(pname, info) + + if(report) + report.update_icon() + print(report) + +/obj/machinery/spectrophotometer/AltClick() + open = !open + update_icon() + +/obj/machinery/spectrophotometer/update_icon() + . = ..() + icon_state = "spectrophotometer_[open ? "open" : "closed"]_[sample ? "full" : "empty"]" diff --git a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm index b3e06b84a55..723df1ad9a2 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm @@ -48,3 +48,4 @@ new /obj/item/watertank(src) new /obj/item/storage/belt/hydro(src) new /obj/item/clothing/gloves/botanic_leather(src) + new /obj/item/sampler(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm index 6d2cde7661b..e4a29857f74 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm @@ -12,6 +12,7 @@ new /obj/item/tank/air(src) new /obj/item/clothing/mask/gas(src) new /obj/item/taperoll/science(src) + new /obj/item/sampler(src) /obj/structure/closet/secure_closet/RD name = "research director's locker" @@ -47,6 +48,7 @@ new /obj/item/storage/box/psireceiver(src) new /obj/item/device/megaphone/sci(src) new /obj/item/device/taperecorder(src) + new /obj/item/sampler(src) /// Used for when we want to populate the contents of this locker ourself. Good for away sites /obj/structure/closet/secure_closet/RD/empty diff --git a/code/modules/detectivework/microscope/microscope.dm b/code/modules/detectivework/microscope/microscope.dm index 73c0b730fb9..e9f3097e5a0 100644 --- a/code/modules/detectivework/microscope/microscope.dm +++ b/code/modules/detectivework/microscope/microscope.dm @@ -9,10 +9,30 @@ anchored = 1 density = 1 + /** + * The sample being analysed + */ var/obj/item/sample = null + /** + * The report number of the last fiber analysis + */ var/report_fiber_num = 0 + /** + * The report number of the last fingerprint analysis + */ var/report_print_num = 0 + /** + * The report number of the last gunshot residue analysis + */ var/report_gsr_num = 0 + /** + * The report number of the last cellular analysis + */ + var/report_cell_num = 0 + /** + * Which types of sample can we analyse + */ + var/allowed_analysis = MICROSCOPE_ALL /obj/machinery/microscope/attackby(obj/item/attacking_item, mob/user) @@ -34,6 +54,15 @@ to_chat(user, SPAN_WARNING("The microscope has no sample to examine.")) return + if(istype(sample, /obj/item/forensics/slide)) + var/obj/item/forensics/slide/slide = sample + if((slide.has_swab && !(allowed_analysis & MICROSCOPE_GSR)) || (slide.has_sample && !(allowed_analysis & MICROSCOPE_FIBER)) || (slide.reagents.total_volume && !(allowed_analysis & MICROSCOPE_CELLS))) + to_chat(user, SPAN_NOTICE("The magnification of \the [src] is too low to analyse this.")) + return + else if(istype(sample, /obj/item/sample/print) && !(allowed_analysis & MICROSCOPE_PRINTS)) + to_chat(user, SPAN_NOTICE("The magnification of \the [src] is too low to analyse this.")) + return + to_chat(user, SPAN_NOTICE("The microscope whirrs as you examine \the [sample].")) if(!do_after(user, 25) || !sample) @@ -75,6 +104,18 @@ info += "" else info += "No fibers found." + else if(slide.reagents.total_volume) + report_cell_num++ + pname = "Cell report #[report_cell_num]" + var/list/tissue = REAGENT_DATA(slide.reagents, /singleton/reagent/biological_tissue) + if(tissue) + info = "Cell anaylsis report #[report_cell_num]
    " + info += "Optical analysis has revealed unique cellular characteristics" + else + info += "No cells found." else pname = "Empty slide report #[report_fiber_num]" info = "Evidence suggests that there's nothing in this slide." diff --git a/code/modules/detectivework/microscope/slides.dm b/code/modules/detectivework/microscope/slides.dm index d9f63c1bfae..d94712ac969 100644 --- a/code/modules/detectivework/microscope/slides.dm +++ b/code/modules/detectivework/microscope/slides.dm @@ -6,14 +6,20 @@ var/obj/item/forensics/swab/has_swab var/obj/item/sample/fibers/has_sample +/obj/item/forensics/slide/Initialize(mapload, ...) + . = ..() + create_reagents(5) + /obj/item/forensics/slide/attackby(obj/item/attacking_item, mob/user) - if(has_swab || has_sample) + if(has_swab || has_sample || reagents.total_volume) to_chat(user, SPAN_WARNING("There is already a sample in the slide.")) return if(istype (attacking_item, /obj/item/forensics/swab)) has_swab = attacking_item else if(istype(attacking_item, /obj/item/sample/fibers)) has_sample = attacking_item + else if(istype(attacking_item, /obj/item/reagent_containers) && REAGENT_VOLUME(attacking_item.reagents, /singleton/reagent/biological_tissue)) + attacking_item.reagents.trans_type_to(reagents, /singleton/reagent/biological_tissue, 5) else to_chat(user, SPAN_WARNING("You don't think this will fit.")) return @@ -34,6 +40,12 @@ update_icon() return +/obj/item/forensics/slide/afterattack(atom/target, mob/user, proximity_flag, click_parameters) + . = ..() + if(istype(target, /obj/item/reagent_containers) && reagents.total_volume) + reagents.trans_to_holder(target.reagents, 5) + to_chat(user, SPAN_NOTICE("You remove the sample from \the [src].")) + /obj/item/forensics/slide/update_icon() if(!has_swab && !has_sample) icon_state = "slide" @@ -41,3 +53,5 @@ icon_state = "slideswab" else if(has_sample) icon_state = "slidefiber" + else if(reagents.total_volume) + icon_state = "slidecells" diff --git a/code/modules/maps/planet_types/asteroid.dm b/code/modules/maps/planet_types/asteroid.dm index e2ab8a72859..3fde8bfb0e5 100644 --- a/code/modules/maps/planet_types/asteroid.dm +++ b/code/modules/maps/planet_types/asteroid.dm @@ -15,6 +15,8 @@ unit_test_groups = list(2) + soil_data = list("Rich aluminium oxide layer", "Rich iron oxide layer", "Rich silver dust layer", "Rich gold dust layer", "Low density silicon dioxide layer", "Large rock particle layer") + /obj/effect/overmap/visitable/sector/exoplanet/barren/asteroid/update_icon() icon_state = "asteroid[rand(1,3)]" diff --git a/code/modules/maps/planet_types/barren.dm b/code/modules/maps/planet_types/barren.dm index 15f97ecbde5..4b3e663428b 100644 --- a/code/modules/maps/planet_types/barren.dm +++ b/code/modules/maps/planet_types/barren.dm @@ -13,6 +13,8 @@ ruin_allowed_tags = RUIN_AIRLESS|RUIN_LOWPOP|RUIN_MINING|RUIN_SCIENCE|RUIN_HOSTILE|RUIN_WRECK|RUIN_NATURAL unit_test_groups = list(1) + soil_data = list("Rich iron oxide layer", "Low density silicon dioxide layer", "Large rock particle layer", "Trace organic particle layer", "Trace ice crytal layer") + /obj/effect/overmap/visitable/sector/exoplanet/barren/generate_habitability() return HABITABILITY_BAD diff --git a/code/modules/maps/planet_types/crystal.dm b/code/modules/maps/planet_types/crystal.dm index 2f4d8debd75..dcd8d48e3e0 100644 --- a/code/modules/maps/planet_types/crystal.dm +++ b/code/modules/maps/planet_types/crystal.dm @@ -14,6 +14,7 @@ ruin_allowed_tags = RUIN_AIRLESS|RUIN_LOWPOP|RUIN_MINING|RUIN_SCIENCE|RUIN_HOSTILE|RUIN_WRECK|RUIN_NATURAL unit_test_groups = list(3) + soil_data = list("Porous crystal layer", "High density silicon carbide layer", "Layer of fused refractive crystals", "Degrading volatile layer", "Silica aerogel layer", "Crystal mush layer") /obj/effect/overmap/visitable/sector/exoplanet/crystal/generate_habitability() return HABITABILITY_BAD diff --git a/code/modules/maps/planet_types/desert.dm b/code/modules/maps/planet_types/desert.dm index c93c37db03f..09b1ffcc398 100644 --- a/code/modules/maps/planet_types/desert.dm +++ b/code/modules/maps/planet_types/desert.dm @@ -16,6 +16,8 @@ water_color = null ruin_planet_type = PLANET_DESERT ruin_allowed_tags = RUIN_LOWPOP|RUIN_MINING|RUIN_SCIENCE|RUIN_HOSTILE|RUIN_WRECK|RUIN_NATURAL + soil_data = list("Low density silicon dioxide layer", "Trace gold dust layer", "Trace silver dust layer", "Large rock particle layer", "Trace organic particle layer") + water_data = list("Sodium ions present", "Calcium ions present", "Sulfate ions present", "Magnesium ions present", "Copper ions present") unit_test_groups = list(1) diff --git a/code/modules/maps/planet_types/grass.dm b/code/modules/maps/planet_types/grass.dm index 7324a4373e3..6cb8eb559c7 100644 --- a/code/modules/maps/planet_types/grass.dm +++ b/code/modules/maps/planet_types/grass.dm @@ -14,6 +14,8 @@ possible_themes = list(/datum/exoplanet_theme/grass) ruin_planet_type = PLANET_GRASS ruin_allowed_tags = RUIN_LOWPOP|RUIN_SCIENCE|RUIN_HOSTILE|RUIN_WRECK|RUIN_NATURAL + soil_data = list("Low density organic matter layer", "Rich microbiome layer", "Moderate water layer", "Large rock particle layer", "Iron oxide layer") + water_data = list("Sodium ions present", "Calcium ions present", "Sulfate ions present", "Magnesium ions present", "Copper ions present", "Nitrate ions present", "Potassium ions present", "Phorsporous ions present") unit_test_groups = list(2) diff --git a/code/modules/maps/planet_types/lava.dm b/code/modules/maps/planet_types/lava.dm index 27f32acc6f3..f45c7275b8b 100644 --- a/code/modules/maps/planet_types/lava.dm +++ b/code/modules/maps/planet_types/lava.dm @@ -15,6 +15,7 @@ water_color = null ruin_planet_type = PLANET_LAVA ruin_allowed_tags = RUIN_AIRLESS|RUIN_LOWPOP|RUIN_MINING|RUIN_SCIENCE|RUIN_HOSTILE|RUIN_WRECK|RUIN_NATURAL + soil_data = list("Low density silicon dioxide layer", "Iron pyroxene layer", "Magnesium olivine layer", "Large rock particle layer", "Aluminium biotite layer") unit_test_groups = list(1) diff --git a/code/modules/maps/planet_types/snow.dm b/code/modules/maps/planet_types/snow.dm index aeaade9bd08..92d3550ae3a 100644 --- a/code/modules/maps/planet_types/snow.dm +++ b/code/modules/maps/planet_types/snow.dm @@ -17,6 +17,8 @@ water_color = "#b5dfeb" ruin_planet_type = PLANET_SNOW ruin_allowed_tags = RUIN_LOWPOP|RUIN_MINING|RUIN_SCIENCE|RUIN_HOSTILE|RUIN_WRECK|RUIN_NATURAL + soil_data = list("Low density silicon dioxide layer", "Trace iron oxide layer", "Trace aluminium oxide layer", "Large rock particle layer", "Ice crystal layer", "Snow partcile layer") + water_data = list("Sodium ions present", "Calcium ions present", "Nitrate ions present", "Magnesium ions present", "Copper ions present") unit_test_groups = list(2) diff --git a/code/modules/mob/living/simple_animal/constructs/constructs/cult_construct.dm b/code/modules/mob/living/simple_animal/constructs/constructs/cult_construct.dm index c7ab1b7efce..584ecf48703 100644 --- a/code/modules/mob/living/simple_animal/constructs/constructs/cult_construct.dm +++ b/code/modules/mob/living/simple_animal/constructs/constructs/cult_construct.dm @@ -47,6 +47,8 @@ simple_default_language = LANGUAGE_CULT + sample_data = null + /mob/living/simple_animal/construct/cultify() return diff --git a/code/modules/mob/living/simple_animal/friendly/carp.dm b/code/modules/mob/living/simple_animal/friendly/carp.dm index 8d819db4643..4f43947fb82 100644 --- a/code/modules/mob/living/simple_animal/friendly/carp.dm +++ b/code/modules/mob/living/simple_animal/friendly/carp.dm @@ -49,6 +49,7 @@ brush = /obj/item/reagent_containers/glass/rag possession_candidate = TRUE + sample_data = list("Cellular structure shows adaptation for a vacuum", "Genetic biomarkers identified linked with passiveness") /mob/living/simple_animal/carp/update_icon() ..() diff --git a/code/modules/mob/living/simple_animal/friendly/cosmozoan.dm b/code/modules/mob/living/simple_animal/friendly/cosmozoan.dm index 13d6f2ebe3d..e16d2c5b11c 100644 --- a/code/modules/mob/living/simple_animal/friendly/cosmozoan.dm +++ b/code/modules/mob/living/simple_animal/friendly/cosmozoan.dm @@ -32,6 +32,7 @@ flying = TRUE see_invisible = SEE_INVISIBLE_NOLIGHTING + sample_data = list("Cellular biochemistry include bioluminescent reactions", "Tissue sample contains micro-gas release structures") /mob/living/simple_animal/cosmozoan/Initialize() . = ..() diff --git a/code/modules/mob/living/simple_animal/friendly/moghes.dm b/code/modules/mob/living/simple_animal/friendly/moghes.dm index a59a51d76fa..997f103c56d 100644 --- a/code/modules/mob/living/simple_animal/friendly/moghes.dm +++ b/code/modules/mob/living/simple_animal/friendly/moghes.dm @@ -35,6 +35,7 @@ bullet = ARMOR_BALLISTIC_MINOR, bomb = ARMOR_BOMB_MINOR ) + sample_data = list("Cellular biochemistry shows high metabolic capacity", "Tissue sample contains high muscle content", "Genetic biomarkers identified linked with passiveness and domestication") /mob/living/simple_animal/threshbeast/saddle desc = "Large herbivorous reptiles native to Moghes, the azkrazal or 'threshbeast' is commonly used as a mount, beast of burden, or convenient food source by Unathi. They are highly valued for their speed and strength, capable of running at 30-42 miles per hour at top speed. This one has been fitted with a saddle." @@ -84,6 +85,7 @@ laser = ARMOR_LASER_MINOR, bomb = ARMOR_BOMB_MINOR ) + sample_data = list("Cellular biochemistry shows high metabolic capacity", "Tissue sample contains high muscle content", "Genetic biomarkers identified linked with domestication", "Intracellular keratin synthesis present") /mob/living/simple_animal/hostile/retaliate/hegeranzi/saddle name = "warmount" @@ -125,6 +127,7 @@ butchering_products = list(/obj/item/stack/material/animalhide/lizard = 4) meat_type = /obj/item/reagent_containers/food/snacks/meat/moghes meat_amount = 16 + sample_data = list("Cellular biochemistry geared towards the use of plant-based nutrition", "Genetic biomarkers identified linked with high reproductive rates", "Intracellular keratin synthesis present") /mob/living/simple_animal/miervesh name = "miervesh" @@ -152,6 +155,7 @@ butchering_products = list(/obj/item/stack/material/animalhide = 1) meat_type = /obj/item/reagent_containers/food/snacks/meat/moghes meat_amount = 1 + sample_data = list("Cellular biochemistry shows signs of rapid respiration", "Genetic biomarkers identified linked with passiveness and domestication", "Extracellular gas detection present") var/chosen_icon /mob/living/simple_animal/miervesh/Initialize() diff --git a/code/modules/mob/living/simple_animal/hostile/commanded/ives.dm b/code/modules/mob/living/simple_animal/hostile/commanded/ives.dm index 5373b0c5c98..538dda74c48 100644 --- a/code/modules/mob/living/simple_animal/hostile/commanded/ives.dm +++ b/code/modules/mob/living/simple_animal/hostile/commanded/ives.dm @@ -54,6 +54,7 @@ attack_emote = "blares a tiny siren" psi_pingable = FALSE + sample_data = null /mob/living/simple_animal/hostile/commanded/baby_harvester/get_bullet_impact_effect_type(var/def_zone) return BULLET_IMPACT_METAL diff --git a/code/modules/mob/living/simple_animal/hostile/faithless.dm b/code/modules/mob/living/simple_animal/hostile/faithless.dm index 93292f859f4..8dd2bb94fdd 100644 --- a/code/modules/mob/living/simple_animal/hostile/faithless.dm +++ b/code/modules/mob/living/simple_animal/hostile/faithless.dm @@ -38,6 +38,7 @@ flying = TRUE psi_pingable = FALSE + sample_data = null /mob/living/simple_animal/hostile/faithless/Allow_Spacemove(var/check_drift = 0) return 1 diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm index aa4fe0d0b99..944d071cb71 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -50,6 +50,7 @@ attack_emote = "skitters toward" attack_sound = 'sound/weapons/bite.ogg' emote_sounds = list('sound/effects/creatures/spider_critter.ogg') + sample_data = list("Genetic markers identified as being linked with stem cell differentiaton", "Tissue sample contains high muscle content") //nursemaids - these create webs and eggs /mob/living/simple_animal/hostile/giant_spider/nurse @@ -68,6 +69,7 @@ var/atom/cocoon_target poison_type = /singleton/reagent/soporific var/fed = 0 + sample_data = list("Genetic markers identified as being linked with stem cell differentiaton", "Cellular structures indicative of high offspring production") /mob/living/simple_animal/hostile/giant_spider/nurse/servant name = "greimorian servant" @@ -91,6 +93,7 @@ max_co2 = 0 max_tox = 0 var/playable = TRUE + sample_data = list("Genetic markers identified as being linked with stem cell differentiaton", "Cellular structures indicative of high offspring production", "Tissue sample contains high neural cell content") /mob/living/simple_animal/hostile/giant_spider/nurse/servant/Life() ..() @@ -111,6 +114,7 @@ armor_penetration = 15 poison_per_bite = 5 move_to_delay = 4 + sample_data = list("Genetic markers identified as being linked with stem cell differentiaton", "Cellular biochemistry shows high metabolic capacity") smart_melee = TRUE /mob/living/simple_animal/hostile/giant_spider/emp @@ -127,6 +131,7 @@ poison_type = /singleton/reagent/perconol // mildly beneficial for organics poison_per_bite = 2 move_to_delay = 5 + sample_data = list("Genetic markers identified as being linked with stem cell differentiaton", "Cellular biochemistry geared towards creating strong electrical potential differences") smart_melee = TRUE /mob/living/simple_animal/hostile/giant_spider/bombardier @@ -145,6 +150,7 @@ poison_type = /singleton/reagent/capsaicin/condensed poison_per_bite = 2 move_to_delay = 5 + sample_data = list("Genetic markers identified as being linked with stem cell differentiaton", "Exocrinic caspaicin synthesis detected") smart_melee = TRUE /mob/living/simple_animal/hostile/giant_spider/bombardier/Shoot(var/target, var/start, var/mob/user, var/bullet = 0) diff --git a/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot.dm b/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot.dm index e56389e08e7..10b6e770f8d 100644 --- a/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot.dm +++ b/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot.dm @@ -41,6 +41,7 @@ speak_chance = 5 attack_emote = "focuses on" psi_pingable = FALSE + sample_data = null /** * The hivebot beacon that we are liked to (and likely generated us) diff --git a/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot_beacon.dm b/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot_beacon.dm index 245e787425f..0551cae5cbe 100644 --- a/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot_beacon.dm +++ b/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot_beacon.dm @@ -36,6 +36,7 @@ destroy_surroundings = 0 attack_emote = "focuses on" psi_pingable = FALSE + sample_data = null /** * Number of total bots that are spawned before the beacon disappears completely diff --git a/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot_harvester.dm b/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot_harvester.dm index aa7df822df7..78ce03e8212 100644 --- a/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot_harvester.dm +++ b/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot_harvester.dm @@ -43,6 +43,7 @@ mob_push_flags = 0 psi_pingable = FALSE + sample_data = null /mob/living/simple_animal/hostile/retaliate/hivebotharvester/Initialize(mapload,mob/living/simple_animal/hostile/hivebot/hivebotbeacon) if(hivebotbeacon) diff --git a/code/modules/mob/living/simple_animal/hostile/icarus_drone.dm b/code/modules/mob/living/simple_animal/hostile/icarus_drone.dm index d3278eba683..eda5b1b78d3 100644 --- a/code/modules/mob/living/simple_animal/hostile/icarus_drone.dm +++ b/code/modules/mob/living/simple_animal/hostile/icarus_drone.dm @@ -59,6 +59,7 @@ see_invisible = SEE_INVISIBLE_NOLIGHTING psi_pingable = FALSE + sample_data = null /mob/living/simple_animal/hostile/icarus_drone/Initialize() . = ..() diff --git a/code/modules/mob/living/simple_animal/hostile/ipc_zombie.dm b/code/modules/mob/living/simple_animal/hostile/ipc_zombie.dm index da9193d875a..4e3c5a9d9e9 100644 --- a/code/modules/mob/living/simple_animal/hostile/ipc_zombie.dm +++ b/code/modules/mob/living/simple_animal/hostile/ipc_zombie.dm @@ -34,6 +34,7 @@ tameable = FALSE psi_pingable = FALSE stop_automated_movement_when_pulled = 0 + sample_data = null ///Icon state for screen overlay var/screen diff --git a/code/modules/mob/living/simple_animal/hostile/krampus.dm b/code/modules/mob/living/simple_animal/hostile/krampus.dm index 640c66702b5..a186b3072e3 100644 --- a/code/modules/mob/living/simple_animal/hostile/krampus.dm +++ b/code/modules/mob/living/simple_animal/hostile/krampus.dm @@ -43,6 +43,7 @@ var/is_punishing = FALSE psi_pingable = FALSE + sample_data = null /mob/living/simple_animal/hostile/krampus/death(gibbed) ..() diff --git a/code/modules/mob/living/simple_animal/hostile/mimic.dm b/code/modules/mob/living/simple_animal/hostile/mimic.dm index 6a0fb43b218..1209c2f5436 100644 --- a/code/modules/mob/living/simple_animal/hostile/mimic.dm +++ b/code/modules/mob/living/simple_animal/hostile/mimic.dm @@ -38,6 +38,7 @@ move_to_delay = 8 tameable = FALSE + sample_data = null /mob/living/simple_animal/hostile/mimic/FindTarget() . = ..() diff --git a/code/modules/mob/living/simple_animal/hostile/moghes.dm b/code/modules/mob/living/simple_animal/hostile/moghes.dm index c5dbc691de7..150c8b74c8c 100644 --- a/code/modules/mob/living/simple_animal/hostile/moghes.dm +++ b/code/modules/mob/living/simple_animal/hostile/moghes.dm @@ -35,6 +35,7 @@ faction = "Moghes" butchering_products = list(/obj/item/stack/material/animalhide/lizard = 20) + sample_data = list("Cellular biochemistry shows high metabolic capacity", "Tissue sample contains high muscle content", "Genetic biomarkers identified linked with aggressiveness", "Intracellular keratin synthesis present") var/is_devouring = FALSE /mob/living/simple_animal/hostile/biglizard/AttackingTarget() @@ -163,6 +164,7 @@ meat_type = /obj/item/reagent_containers/food/snacks/meat/moghes meat_amount = 10 faction = "Moghes" + sample_data = list("Cellular structures adapted to provide strong resonance protection", "Genetic biomarkers identified linked with agressiveness") var/shriek_time = 0 /mob/living/simple_animal/hostile/shrieker/proc/shriek(turf/T, mob/living/M) diff --git a/code/modules/mob/living/simple_animal/hostile/pra.dm b/code/modules/mob/living/simple_animal/hostile/pra.dm index a490bf38b3d..6dfee3f92c0 100644 --- a/code/modules/mob/living/simple_animal/hostile/pra.dm +++ b/code/modules/mob/living/simple_animal/hostile/pra.dm @@ -63,6 +63,7 @@ simple_default_language = LANGUAGE_SIIK_MAAS psi_pingable = FALSE + sample_data = null /mob/living/simple_animal/hostile/republicon/get_bullet_impact_effect_type(var/def_zone) return BULLET_IMPACT_METAL diff --git a/code/modules/mob/living/simple_animal/hostile/rogue_maint_drone.dm b/code/modules/mob/living/simple_animal/hostile/rogue_maint_drone.dm index f45a750a76a..73865532b5c 100644 --- a/code/modules/mob/living/simple_animal/hostile/rogue_maint_drone.dm +++ b/code/modules/mob/living/simple_animal/hostile/rogue_maint_drone.dm @@ -23,6 +23,7 @@ var/image/eye_overlay psi_pingable = FALSE + sample_data = null /mob/living/simple_animal/hostile/rogue_drone/Initialize() . = ..() diff --git a/code/modules/mob/living/simple_animal/hostile/space_fauna.dm b/code/modules/mob/living/simple_animal/hostile/space_fauna.dm index 2ad3c13d356..eb7f5a3e172 100644 --- a/code/modules/mob/living/simple_animal/hostile/space_fauna.dm +++ b/code/modules/mob/living/simple_animal/hostile/space_fauna.dm @@ -51,6 +51,7 @@ see_invisible = SEE_INVISIBLE_NOLIGHTING smart_melee = FALSE + sample_data = list("Cellular structure shows adaptation for survival in vacuum", "Genetic biomarkers identified linked with agressiveness", "Tissue sample contains micro-gas release structures") /mob/living/simple_animal/hostile/carp/update_icon() ..() @@ -132,6 +133,7 @@ melee_damage_lower = 20 melee_damage_upper = 25 + sample_data = list("Cellular structure shows adaptation for survival in vacuum", "Genetic biomarkers identified linked with agressiveness", "Tissue sample contains micro-gas release structures", "Tissue sample contains high muscle content") /mob/living/simple_animal/hostile/carp/shark/reaver name = "reaver" @@ -204,6 +206,7 @@ melee_damage_lower = 15 melee_damage_upper = 15 + sample_data = list("Cellular structure shows adaptation for survival in vacuum", "Genetic biomarkers identified linked with agressiveness", "Tissue sample contains micro-gas release structures", "Intracellular synthesis of volatile compounds detected") var/has_exploded = FALSE @@ -294,3 +297,4 @@ flying = TRUE see_invisible = SEE_INVISIBLE_NOLIGHTING + sample_data = list("Cellular structure shows adaptation for survival in vacuum", "Genetic biomarkers identified linked with agressiveness", "Tissue sample contains micro-gas release structures") diff --git a/code/modules/mob/living/simple_animal/hostile/viscerator.dm b/code/modules/mob/living/simple_animal/hostile/viscerator.dm index 60a9292fd46..2f278006e93 100644 --- a/code/modules/mob/living/simple_animal/hostile/viscerator.dm +++ b/code/modules/mob/living/simple_animal/hostile/viscerator.dm @@ -32,6 +32,7 @@ attack_emote = "buzzes at" psi_pingable = FALSE + sample_data = null /mob/living/simple_animal/hostile/viscerator/death() ..(null,"is smashed into pieces!") diff --git a/code/modules/mob/living/simple_animal/illusion.dm b/code/modules/mob/living/simple_animal/illusion.dm index 97757a1c88d..49c5e697fdf 100644 --- a/code/modules/mob/living/simple_animal/illusion.dm +++ b/code/modules/mob/living/simple_animal/illusion.dm @@ -11,6 +11,7 @@ var/realistic = FALSE // If true, things like bullets and weapons will hit it, to be a bit more convincing from a distance. psi_pingable = FALSE + sample_data = null /mob/living/simple_animal/illusion/update_icon() // We don't want the appearance changing AT ALL unless by copy_appearance(). return diff --git a/code/modules/mob/living/simple_animal/shade.dm b/code/modules/mob/living/simple_animal/shade.dm index 0cdb888e8b9..34cd34d5c9c 100644 --- a/code/modules/mob/living/simple_animal/shade.dm +++ b/code/modules/mob/living/simple_animal/shade.dm @@ -32,6 +32,7 @@ var/obj/item/residue = /obj/item/ectoplasm psi_pingable = FALSE + sample_data = null /mob/living/simple_animal/shade/cultify() return diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index fe6bf9108b6..501f91c6875 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -18,6 +18,7 @@ var/damage_type = DAMAGE_BRUTE var/show_stat_health = 1 //does the percentage health show in the stat panel for the mob + var/in_stasis = FALSE var/icon_living = "" var/icon_dead = "" @@ -156,6 +157,11 @@ var/dead_on_map = FALSE //if true, kills the mob when it spawns (it is for mapping) var/vehicle_version = null + /** + * List of fluff characteristics to be found on cellular analysis + */ + var/list/sample_data = list("Cellular biochemistry indicitive of typical metabolc activity", "Tissue sample contains average muscle content", "No distinctive genetic markers identified") + /mob/living/simple_animal/proc/update_nutrition_stats() nutrition_step = mob_size * 0.03 * metabolic_factor bite_factor = mob_size * 0.3 @@ -1006,6 +1012,8 @@ /mob/living/simple_animal/get_speech_bubble_state_modifier() return isSynthetic() ? "machine" : "rough" +/mob/living/simple_animal/InStasis() + return in_stasis #undef BLOOD_NONE #undef BLOOD_LIGHT diff --git a/code/modules/overmap/exoplanets/decor/_flora.dm b/code/modules/overmap/exoplanets/decor/_flora.dm index ea96b9e631d..118122bc4aa 100644 --- a/code/modules/overmap/exoplanets/decor/_flora.dm +++ b/code/modules/overmap/exoplanets/decor/_flora.dm @@ -6,6 +6,14 @@ var/cutting /// Whether or not you can shelter under this. var/protects_against_weather = FALSE + /** + * List of fluff characteristics to be found on cellular/soil analysis + */ + var/list/sample_data = list("Cellular structure typical of wild plantlife") + /** + * Whether this is actually a rock + */ + var/is_rock = FALSE /obj/structure/flora/proc/dig_up(mob/user) user.visible_message(SPAN_NOTICE("\The [user] begins digging up \the [src]...")) diff --git a/code/modules/overmap/exoplanets/decor/flora/_rock.dm b/code/modules/overmap/exoplanets/decor/flora/_rock.dm index c028720596e..9a154ad8f62 100644 --- a/code/modules/overmap/exoplanets/decor/flora/_rock.dm +++ b/code/modules/overmap/exoplanets/decor/flora/_rock.dm @@ -3,6 +3,8 @@ desc = "A rock." icon = 'icons/obj/flora/rocks_grey.dmi' icon_state = "basalt" + is_rock = TRUE + sample_data = list("Sample contains igneous rock dust") /obj/structure/flora/rock/random/Initialize(mapload) . = ..() @@ -22,6 +24,7 @@ desc = "A large formation made of ice." icon = 'icons/obj/flora/ice_rocks.dmi' icon_state = "rock_1" + sample_data = list("Sample contains ice crystals") /obj/structure/flora/rock/ice/Initialize(mapload) . = ..() diff --git a/code/modules/overmap/exoplanets/decor/flora/_tree.dm b/code/modules/overmap/exoplanets/decor/flora/_tree.dm index fe24e8f7855..da2d9666fea 100644 --- a/code/modules/overmap/exoplanets/decor/flora/_tree.dm +++ b/code/modules/overmap/exoplanets/decor/flora/_tree.dm @@ -5,6 +5,7 @@ layer = 9 pixel_x = -16 protects_against_weather = TRUE + sample_data = list("Cellular structure indicitive of large plantlife.") var/max_chop_health = 180 var/chop_health = 180 //15 hits with steel hatchet, 5 with wielded fireaxe var/fall_force = 60 diff --git a/code/modules/overmap/exoplanets/decor/flora/crystal.dm b/code/modules/overmap/exoplanets/decor/flora/crystal.dm index d5798da9c3e..662bb39ec17 100644 --- a/code/modules/overmap/exoplanets/decor/flora/crystal.dm +++ b/code/modules/overmap/exoplanets/decor/flora/crystal.dm @@ -4,6 +4,8 @@ pixel_x = -32 icon = 'icons/obj/flora/crystal_trees.dmi' icon_state = "gem" + is_rock = TRUE + sample_data = list("Sample contains crystaline structures with a branching fractal appearance") /obj/structure/flora/tree/crystal/Initialize(mapload) . = ..() @@ -19,6 +21,7 @@ icon_state = "spire" pixel_x = -32 layer = ABOVE_HUMAN_LAYER // this is basically a tree + sample_data = list("Sample contains low density crystaline structures") /obj/structure/flora/rock/spire/Initialize(mapload) . = ..() diff --git a/code/modules/overmap/exoplanets/decor/flora/desert.dm b/code/modules/overmap/exoplanets/decor/flora/desert.dm index f7142ae3c84..c267b74f5a2 100644 --- a/code/modules/overmap/exoplanets/decor/flora/desert.dm +++ b/code/modules/overmap/exoplanets/decor/flora/desert.dm @@ -3,6 +3,7 @@ icon = 'icons/obj/flora/desert_cactus_trees.dmi' icon_state = "desert_tree" desc = "A prickly cactus with a woody trunk." + sample_data = list("Cells contain above average water storage, indicating adaptation for a dry environment") /obj/structure/flora/tree/desert/Initialize(mapload) . = ..() @@ -34,6 +35,7 @@ desc = "A sand-swept rock." icon = 'icons/obj/flora/desertflora.dmi' icon_state = "desert_rock" + sample_data = list("Sample contains sedimentary rock dust") /obj/structure/flora/rock/desert/Initialize() . = ..() diff --git a/code/modules/overmap/exoplanets/decor/flora/marsh.dm b/code/modules/overmap/exoplanets/decor/flora/marsh.dm index 083feae3a89..0681315050f 100644 --- a/code/modules/overmap/exoplanets/decor/flora/marsh.dm +++ b/code/modules/overmap/exoplanets/decor/flora/marsh.dm @@ -3,6 +3,7 @@ desc = "Some sort of woody fungal growth, grown to extreme proportions." icon = 'icons/obj/flora/fungaltrees.dmi' icon_state = "shroom" + sample_data = list("Cells appear fungal in nature") /obj/structure/flora/tree/mushroom/Initialize(mapload) . = ..() @@ -16,6 +17,7 @@ desc = "A rather large variety of fungus." icon = 'icons/obj/flora/fungalflora.dmi' icon_state = "fungus_bush" + sample_data = list("Cells appear fungal in nature") /obj/structure/flora/bush/mushroom/Initialize() . = ..() diff --git a/code/modules/overmap/sectors.dm b/code/modules/overmap/sectors.dm index ffbdde4e4f8..928ed910848 100644 --- a/code/modules/overmap/sectors.dm +++ b/code/modules/overmap/sectors.dm @@ -253,6 +253,10 @@ var/global/area/overmap/map_overmap /// Lore planets and static away sites that are planets should keep it to static text trivia. /// For random planets, should be filled with random trivia or blurbs or the like. var/ground_survey_result = null + /// Fluff descriptions found from soil sampling + var/list/soil_data = list() + /// Fluff desctiptions found on water sampling + var/list/water_data = list() /// Magnetic survey result for use by survey probes. Randomly generated by most planets. Lore planets should have static text. var/magnet_survey_result = null diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm index 3a39c6294fc..b182cc4f1ab 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm @@ -874,3 +874,19 @@ color = "#464650" taste_description = "salt" fallback_specific_heat = 1 + +/singleton/reagent/biological_tissue + name = "Biological Tissue" + description = "A suspension of the basic unit of life." + reagent_state = LIQUID + color = "#97b9a7" + taste_description = "water" + specific_heat = 1 + +/singleton/reagent/soil + name = "Soil" + description = "A mixture of minerals, living organisms, organic matter, gas and water." + reagent_state = SOLID + color = "#5c4324" + taste_description = "earth" + specific_heat = 1 diff --git a/code/modules/research/xenoarchaeology/misc.dm b/code/modules/research/xenoarchaeology/misc.dm index f58fc6dd655..6e3bd23ff1e 100644 --- a/code/modules/research/xenoarchaeology/misc.dm +++ b/code/modules/research/xenoarchaeology/misc.dm @@ -74,6 +74,7 @@ new /obj/item/storage/box/excavation(src) new /obj/item/taperoll/science(src) new /obj/item/clothing/head/hardhat(src) + new /obj/item/sampler(src) /obj/structure/closet/excavation name = "excavation tools" diff --git a/html/changelogs/stasis-cages-and-sampling.yml b/html/changelogs/stasis-cages-and-sampling.yml new file mode 100644 index 00000000000..a3c56663c0b --- /dev/null +++ b/html/changelogs/stasis-cages-and-sampling.yml @@ -0,0 +1,10 @@ +author: Sparky_hotdog + +delete-after: True + +changes: + - rscadd: "Ported stasis cages from Baystation. They can be used to load captured mobs into for safe return to the Horizon. Replaced two of the suspension field generators in EVA storage with these." + - rscadd: "Added safari nets, a weaker form of energy net which xenobiologists can source from a dispenser in their labs. They are unstable, however, and require storage in a special container, also found in their lab." + - rscadd: "Added a science sampling device, with three modes of operation: tissue, soil and water. It must be loaded with a vial. Found in scientist and xenobotanists lockers and the xenobiology lab." + - rscadd: "Added a low power microscope for analysis of tissue samples, located in R&D, xenobotany and xenobiology. The fluff desciptions this provides are presently focused on common mobs such as carps and griemorians and Moghes mobs." + - rscadd: "Added a centrifuge for analysis of soil samples, and a spectrophotometer for analysis of water samples, both located in R&D." diff --git a/icons/effects/effects.dmi b/icons/effects/effects.dmi index 5561d7a0287..312111d2cb4 100644 Binary files a/icons/effects/effects.dmi and b/icons/effects/effects.dmi differ diff --git a/icons/obj/item/net_container.dmi b/icons/obj/item/net_container.dmi new file mode 100644 index 00000000000..d5eee16f8a6 Binary files /dev/null and b/icons/obj/item/net_container.dmi differ diff --git a/icons/obj/item/sampling.dmi b/icons/obj/item/sampling.dmi new file mode 100644 index 00000000000..dedd3acf6b0 Binary files /dev/null and b/icons/obj/item/sampling.dmi differ diff --git a/icons/obj/machinery/stasis_cage.dmi b/icons/obj/machinery/stasis_cage.dmi new file mode 100644 index 00000000000..c221dac7a1a Binary files /dev/null and b/icons/obj/machinery/stasis_cage.dmi differ diff --git a/maps/sccv_horizon/sccv_horizon-1_deck_1.dmm b/maps/sccv_horizon/sccv_horizon-1_deck_1.dmm index bc0bd08484f..fc942b3e6e9 100644 --- a/maps/sccv_horizon/sccv_horizon-1_deck_1.dmm +++ b/maps/sccv_horizon/sccv_horizon-1_deck_1.dmm @@ -33573,10 +33573,8 @@ /turf/simulated/floor/tiled/dark, /area/engineering/storage/tech) "xdE" = ( -/obj/effect/floor_decal/industrial/outline/yellow, -/obj/machinery/suspension_gen{ - dir = 4 - }, +/obj/effect/floor_decal/industrial/outline/red, +/obj/machinery/stasis_cage, /turf/simulated/floor/tiled/dark/full, /area/storage/eva) "xdF" = ( diff --git a/maps/sccv_horizon/sccv_horizon-2_deck_2.dmm b/maps/sccv_horizon/sccv_horizon-2_deck_2.dmm index 0d2a6ecf009..f05c4f0a9bf 100644 --- a/maps/sccv_horizon/sccv_horizon-2_deck_2.dmm +++ b/maps/sccv_horizon/sccv_horizon-2_deck_2.dmm @@ -466,17 +466,6 @@ }, /turf/simulated/floor/tiled, /area/engineering/engine_room/rust) -"akX" = ( -/obj/effect/floor_decal/corner/dark_green{ - dir = 5 - }, -/obj/structure/sign/emergency/evacuation/stairs, -/obj/effect/floor_decal/industrial/outline/yellow, -/obj/effect/floor_decal/industrial/loading/yellow{ - dir = 1 - }, -/turf/simulated/floor/tiled, -/area/horizon/stairwell/central) "amd" = ( /obj/structure/platform{ dir = 4 @@ -648,6 +637,21 @@ }, /turf/simulated/floor/carpet/rubber, /area/engineering/engine_monitoring/rust) +"aps" = ( +/obj/machinery/portable_atmospherics/hydroponics/soil, +/obj/structure/flora/ausbushes/sparsegrass, +/turf/simulated/floor/grass, +/area/horizon/hydroponics/garden) +"apI" = ( +/obj/effect/floor_decal/corner/white/diagonal, +/obj/effect/floor_decal/industrial/warning{ + dir = 1 + }, +/obj/structure/closet/walllocker/firecloset/medical{ + pixel_x = -32 + }, +/turf/simulated/floor/tiled, +/area/medical/paramedic) "aqk" = ( /obj/effect/floor_decal/corner_wide/yellow{ dir = 5 @@ -747,6 +751,14 @@ }, /turf/simulated/floor/tiled, /area/hallway/engineering) +"arl" = ( +/obj/machinery/portable_atmospherics/hydroponics/soil, +/obj/machinery/camera/network/service{ + c_tag = "Second Deck - Public Garden" + }, +/obj/structure/flora/ausbushes/sparsegrass, +/turf/simulated/floor/grass, +/area/horizon/hydroponics/garden) "aru" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, @@ -894,14 +906,6 @@ /obj/machinery/atmospherics/pipe/simple/visible/green, /turf/simulated/floor/plating, /area/engineering/engine_room) -"auj" = ( -/obj/machinery/camera/network/medbay{ - c_tag = "Medical - First Responder Room" - }, -/obj/structure/closet/secure_closet/medical_para, -/obj/item/defibrillator/compact/loaded, -/turf/simulated/floor/tiled, -/area/medical/paramedic) "auo" = ( /obj/structure/table/wood, /obj/item/toy/desk/newtoncradle, @@ -922,16 +926,6 @@ }, /turf/simulated/floor, /area/maintenance/wing/port/far) -"auU" = ( -/obj/effect/floor_decal/corner/white/diagonal, -/obj/effect/floor_decal/industrial/warning{ - dir = 1 - }, -/obj/structure/closet/walllocker/firecloset/medical{ - pixel_x = -32 - }, -/turf/simulated/floor/tiled, -/area/medical/paramedic) "avb" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/maintenance_hatch{ @@ -962,25 +956,6 @@ /obj/machinery/biogenerator/small/north, /turf/simulated/floor/tiled/dark, /area/horizon/hydroponics/garden) -"avl" = ( -/obj/effect/floor_decal/corner/white/diagonal, -/obj/structure/table/standard, -/obj/item/reagent_containers/hypospray{ - pixel_x = -2; - pixel_y = 5 - }, -/obj/item/reagent_containers/hypospray{ - pixel_x = 4; - pixel_y = 5 - }, -/obj/effect/floor_decal/industrial/warning{ - dir = 1 - }, -/obj/item/storage/toolbox/mechanical{ - pixel_y = -11 - }, -/turf/simulated/floor/tiled, -/area/medical/paramedic) "avs" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -1122,14 +1097,6 @@ /obj/item/device/hand_labeler, /turf/simulated/floor/tiled/dark, /area/chapel/office) -"axS" = ( -/obj/effect/floor_decal/corner/white/diagonal, -/obj/effect/floor_decal/industrial/warning, -/obj/effect/floor_decal/industrial/warning{ - dir = 1 - }, -/turf/simulated/floor/tiled, -/area/medical/paramedic) "axW" = ( /obj/effect/floor_decal/industrial/warning/full, /obj/machinery/porta_turret, @@ -1202,6 +1169,14 @@ /obj/structure/table/rack/retail_shelf, /turf/simulated/floor/tiled, /area/horizon/commissary) +"ayO" = ( +/obj/machinery/door/blast/regular{ + dir = 2; + id = "EngineEmitterPortWest"; + name = "Supermatter Reactor Waste Management Blast Door" + }, +/turf/simulated/floor/tiled/full, +/area/engineering/engine_waste) "ayS" = ( /obj/machinery/portable_atmospherics/hydroponics, /obj/effect/floor_decal/industrial/outline/yellow, @@ -1599,22 +1574,6 @@ }, /turf/simulated/floor/tiled/white, /area/medical/pharmacy) -"aIy" = ( -/obj/structure/closet/walllocker/medical/secure{ - name = "Stabilization Kit"; - pixel_x = -31 - }, -/obj/item/bodybag/cryobag, -/obj/item/bodybag/cryobag, -/obj/item/bodybag/cryobag, -/obj/item/reagent_containers/glass/bottle/inaprovaline, -/obj/item/stack/medical/bruise_pack, -/obj/item/stack/medical/bruise_pack, -/obj/item/storage/pill_bottle/mortaphenyl, -/obj/effect/floor_decal/corner/white/diagonal, -/obj/item/storage/pill_bottle/dexalin, -/turf/simulated/floor/tiled, -/area/medical/paramedic) "aIH" = ( /obj/machinery/camera/network/prison{ c_tag = "Security - Brig Communal Fore"; @@ -1738,14 +1697,6 @@ }, /turf/simulated/floor/tiled, /area/operations/break_room) -"aME" = ( -/obj/effect/floor_decal/corner/white/diagonal, -/obj/machinery/atmospherics/unary/vent_pump/on, -/obj/effect/floor_decal/industrial/warning{ - dir = 4 - }, -/turf/simulated/floor/tiled, -/area/medical/paramedic) "aML" = ( /obj/structure/cable/green{ icon_state = "1-4" @@ -1810,20 +1761,6 @@ }, /turf/space/dynamic, /area/template_noop) -"aOs" = ( -/obj/effect/floor_decal/corner/white/diagonal, -/obj/structure/cable/green{ - icon_state = "0-2" - }, -/obj/machinery/power/apc/low/west, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 6 - }, -/turf/simulated/floor/tiled, -/area/medical/paramedic) "aOz" = ( /obj/machinery/light{ dir = 8 @@ -1886,22 +1823,6 @@ /obj/item/wrench, /turf/simulated/floor/plating, /area/medical/cryo) -"aQu" = ( -/obj/effect/floor_decal/corner/white/diagonal, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9 - }, -/obj/structure/bed/stool/chair/office/light{ - dir = 4 - }, -/obj/effect/floor_decal/industrial/warning/corner{ - dir = 4 - }, -/turf/simulated/floor/tiled, -/area/medical/paramedic) "aQR" = ( /obj/machinery/door/firedoor, /obj/effect/floor_decal/industrial/hatch/yellow, @@ -1941,25 +1862,6 @@ }, /turf/simulated/wall, /area/operations/lobby) -"aSd" = ( -/obj/machinery/access_button{ - command = "cycle_interior"; - frequency = 1380; - master_tag = "centcom_shuttle_dock_airlock"; - name = "interior access button"; - pixel_x = -25; - pixel_y = -25; - req_access = list(13) - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 10 - }, -/obj/effect/floor_decal/corner/dark_green/full{ - dir = 4 - }, -/obj/machinery/alarm/east, -/turf/simulated/floor/tiled, -/area/security/checkpoint2) "aSg" = ( /obj/machinery/power/apc/west, /obj/structure/cable/green{ @@ -1997,6 +1899,24 @@ }, /turf/simulated/floor/tiled/full, /area/hallway/engineering) +"aSD" = ( +/obj/item/reagent_containers/blood/OMinus, +/obj/item/reagent_containers/blood/sbs, +/obj/item/reagent_containers/blood/OMinus, +/obj/item/reagent_containers/blood/OMinus, +/obj/structure/closet/walllocker/medical/secure{ + name = "O- Blood Locker"; + pixel_y = 32 + }, +/obj/structure/cable/green{ + icon_state = "0-2" + }, +/obj/machinery/power/apc/west, +/turf/simulated/floor/tiled/freezer{ + name = "cold storage tiles"; + temperature = 278 + }, +/area/medical/surgery) "aSO" = ( /obj/machinery/atmospherics/portables_connector{ dir = 8 @@ -2041,20 +1961,6 @@ }, /turf/simulated/floor/tiled/dark/full, /area/rnd/hallway) -"aTm" = ( -/obj/effect/floor_decal/corner/white/diagonal, -/obj/structure/cable/green{ - icon_state = "1-8" - }, -/obj/item/device/radio/intercom/south, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 9 - }, -/turf/simulated/floor/tiled, -/area/medical/paramedic) "aTp" = ( /obj/machinery/light/floor{ dir = 1 @@ -2062,30 +1968,6 @@ /obj/structure/platform/ledge, /turf/simulated/floor/carpet/rubber, /area/rnd/telesci) -"aTt" = ( -/obj/effect/floor_decal/corner/white/diagonal, -/obj/machinery/light, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/machinery/firealarm/south, -/obj/structure/table/standard, -/obj/item/storage/firstaid/toxin{ - pixel_x = -3; - pixel_y = 5 - }, -/obj/item/storage/firstaid/o2{ - pixel_x = -3 - }, -/obj/item/storage/firstaid/adv{ - pixel_x = 13; - pixel_y = 5 - }, -/obj/item/storage/firstaid/fire{ - pixel_x = 13 - }, -/turf/simulated/floor/tiled, -/area/medical/paramedic) "aTI" = ( /obj/structure/table/rack, /obj/item/storage/lockbox/anti_augment{ @@ -2410,12 +2292,6 @@ /obj/machinery/firealarm/east, /turf/simulated/floor/tiled, /area/horizon/hallway/deck_two/fore) -"aZR" = ( -/obj/effect/floor_decal/corner/white/diagonal, -/obj/structure/table/standard, -/obj/structure/roller_rack/two, -/turf/simulated/floor/tiled, -/area/medical/paramedic) "ban" = ( /obj/effect/floor_decal/spline/plain/corner{ dir = 1 @@ -2530,42 +2406,6 @@ /obj/structure/lattice/catwalk/indoor/grate, /turf/simulated/floor/plating, /area/hallway/primary/central_one) -"bdy" = ( -/obj/effect/floor_decal/corner/white/diagonal, -/obj/structure/table/standard, -/obj/item/storage/belt/medical/paramedic, -/obj/item/storage/belt/medical/paramedic, -/obj/machinery/alarm/south, -/obj/item/device/radio{ - pixel_x = -6; - pixel_y = 6 - }, -/obj/item/device/radio{ - pixel_x = -6; - pixel_y = 6 - }, -/obj/item/device/radio{ - pixel_x = 5; - pixel_y = 6 - }, -/obj/item/device/radio{ - pixel_x = 5; - pixel_y = 6 - }, -/obj/machinery/vending/wallmed2{ - pixel_y = -29 - }, -/obj/item/device/gps/medical{ - pixel_x = 5 - }, -/obj/item/device/gps/medical{ - pixel_x = -7 - }, -/obj/machinery/requests_console/east{ - department = "Paramedic Bay" - }, -/turf/simulated/floor/tiled, -/area/medical/paramedic) "beJ" = ( /obj/effect/floor_decal/industrial/hatch/yellow, /obj/effect/floor_decal/industrial/warning{ @@ -4048,6 +3888,17 @@ }, /turf/simulated/floor/tiled, /area/hallway/engineering) +"bId" = ( +/obj/effect/floor_decal/corner/dark_green{ + dir = 5 + }, +/obj/structure/sign/emergency/evacuation/stairs, +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/effect/floor_decal/industrial/loading/yellow{ + dir = 1 + }, +/turf/simulated/floor/tiled, +/area/horizon/stairwell/central) "bIt" = ( /obj/effect/floor_decal/spline/fancy/wood{ dir = 4 @@ -4842,6 +4693,13 @@ }, /turf/simulated/floor/tiled/dark, /area/horizon/bar/backroom) +"bZc" = ( +/obj/structure/extinguisher_cabinet/east, +/obj/structure/table/standard, +/obj/item/device/flashlight/lamp, +/obj/machinery/firealarm/north, +/turf/simulated/floor/reinforced, +/area/horizon/zat) "bZj" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -4890,6 +4748,24 @@ /obj/machinery/alarm/west, /turf/simulated/floor/tiled/white, /area/rnd/conference) +"cai" = ( +/obj/machinery/door/window/brigdoor/northleft{ + dir = 2; + name = "Columbo's Cage"; + req_access = list(58) + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/status_display{ + pixel_y = 32 + }, +/mob/living/simple_animal/hostile/commanded/dog/columbo, +/turf/simulated/floor/carpet, +/area/horizon/security/head_of_security) "caj" = ( /obj/effect/floor_decal/industrial/outline/yellow, /obj/structure/table/rack, @@ -5097,6 +4973,18 @@ /obj/structure/flora/ausbushes/brflowers, /turf/simulated/floor/grass, /area/hallway/primary/central_two) +"cfB" = ( +/obj/structure/platform, +/obj/structure/table/standard, +/obj/item/device/flashlight/lamp{ + pixel_y = -7 + }, +/obj/item/stock_parts/matter_bin, +/obj/item/stock_parts/matter_bin, +/obj/item/stock_parts/manipulator, +/obj/item/stock_parts/manipulator, +/turf/simulated/floor/tiled/dark, +/area/rnd/lab) "cfI" = ( /obj/machinery/atmospherics/pipe/manifold/visible/black{ dir = 4 @@ -5201,6 +5089,22 @@ }, /turf/simulated/floor/tiled/dark/full, /area/horizon/secure_ammunition_storage) +"ciA" = ( +/obj/structure/closet/secure_closet/RD, +/obj/effect/floor_decal/industrial/outline/research, +/obj/effect/floor_decal/spline/fancy/wood{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/power/apc/north, +/obj/structure/cable/green{ + icon_state = "0-2" + }, +/obj/machinery/firealarm/west, +/turf/simulated/floor/wood, +/area/crew_quarters/heads/hor) "ciP" = ( /obj/effect/floor_decal/spline/fancy/wood/cee{ dir = 4 @@ -5311,6 +5215,24 @@ /obj/effect/floor_decal/industrial/hatch/yellow, /turf/simulated/floor/tiled/full, /area/medical/reception) +"clh" = ( +/obj/structure/table/standard, +/obj/effect/floor_decal/corner/mauve{ + dir = 9 + }, +/obj/machinery/power/apc/west, +/obj/structure/cable/green{ + icon_state = "0-4" + }, +/obj/machinery/microscope/science{ + dir = 8; + pixel_y = 12 + }, +/obj/item/storage/box/fancy/vials{ + pixel_y = -12 + }, +/turf/simulated/floor/tiled/white, +/area/rnd/lab) "clz" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/glass_medical{ @@ -5842,6 +5764,27 @@ /obj/effect/floor_decal/industrial/outline/grey, /turf/simulated/floor/tiled/dark/full, /area/horizon/kitchen) +"cDC" = ( +/obj/structure/closet/crate/freezer{ + name = "Assorted Blood Packs" + }, +/obj/item/reagent_containers/blood/OPlus, +/obj/item/reagent_containers/blood/OPlus, +/obj/item/reagent_containers/blood/BPlus, +/obj/item/reagent_containers/blood/BPlus, +/obj/item/reagent_containers/blood/BMinus, +/obj/item/reagent_containers/blood/BMinus, +/obj/item/reagent_containers/blood/sbs, +/obj/item/reagent_containers/blood/sbs, +/obj/item/reagent_containers/blood/APlus, +/obj/item/reagent_containers/blood/APlus, +/obj/item/reagent_containers/blood/AMinus, +/obj/item/reagent_containers/blood/AMinus, +/obj/effect/floor_decal/corner_wide/green/full, +/obj/structure/cable/green, +/obj/machinery/power/apc/west, +/turf/simulated/floor/tiled/white, +/area/medical/main_storage) "cDD" = ( /obj/structure/table/standard, /obj/machinery/light{ @@ -5910,14 +5853,6 @@ /obj/machinery/alarm/north, /turf/simulated/floor/plating, /area/maintenance/wing/starboard/far) -"cGJ" = ( -/obj/machinery/body_scanconsole{ - dir = 1; - pixel_y = 6 - }, -/obj/effect/floor_decal/corner/beige/full, -/turf/simulated/floor/tiled/dark, -/area/medical/gen_treatment) "cGM" = ( /obj/machinery/door/airlock/maintenance{ dir = 4; @@ -6028,24 +5963,6 @@ /obj/machinery/newscaster/south, /turf/simulated/floor/tiled, /area/horizon/custodial/auxiliary) -"cJU" = ( -/obj/structure/table/standard, -/obj/item/reagent_containers/spray/chemsprayer/xenobiology, -/obj/item/reagent_containers/spray/chemsprayer/xenobiology, -/obj/item/melee/baton/slime{ - pixel_x = 3; - pixel_y = -1 - }, -/obj/item/melee/baton/slime{ - pixel_x = 3; - pixel_y = -1 - }, -/obj/machinery/light, -/obj/effect/floor_decal/corner/mauve/full{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/rnd/xenobiology) "cKa" = ( /obj/machinery/atmospherics/pipe/simple/visible/black, /obj/machinery/atmospherics/pipe/simple/visible/cyan{ @@ -6101,6 +6018,29 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/wood, /area/maintenance/wing/starboard) +"cLa" = ( +/obj/machinery/requests_console/north{ + department = "Atmospherics"; + departmentType = 4; + name = "Atmos RC" + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/closet/crate, +/obj/item/stock_parts/manipulator, +/obj/item/stock_parts/capacitor, +/obj/item/stock_parts/capacitor, +/obj/item/stock_parts/capacitor, +/obj/item/stock_parts/capacitor, +/obj/item/stock_parts/matter_bin, +/obj/item/stock_parts/matter_bin, +/obj/item/stack/cable_coil, +/obj/item/circuitboard/unary_atmos/cooler, +/obj/item/circuitboard/unary_atmos/heater, +/obj/effect/floor_decal/industrial/outline/engineering, +/turf/simulated/floor/tiled/dark/full, +/area/engineering/atmos/storage) "cLt" = ( /obj/structure/table/standard, /obj/machinery/cell_charger{ @@ -7348,6 +7288,21 @@ /obj/random/loot, /turf/simulated/floor/plating, /area/maintenance/wing/port) +"dsc" = ( +/obj/structure/table/stone/marble, +/obj/item/material/kitchen/rollingpin{ + pixel_x = 6; + pixel_y = 10 + }, +/obj/item/material/knife{ + pixel_x = -9 + }, +/obj/item/storage/box/produce{ + pixel_x = 3; + pixel_y = -5 + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/kitchen) "dsj" = ( /obj/effect/floor_decal/corner/dark_blue/diagonal, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -7892,6 +7847,15 @@ /obj/structure/platform, /turf/simulated/floor/tiled, /area/hallway/engineering) +"dHo" = ( +/obj/effect/floor_decal/industrial/warning, +/obj/structure/railing/mapped, +/obj/machinery/atmospherics/portables_connector{ + dir = 1 + }, +/obj/effect/floor_decal/industrial/outline/yellow, +/turf/simulated/floor/tiled/dark/full, +/area/engineering/engine_room/rust) "dHt" = ( /obj/effect/floor_decal/corner/mauve{ dir = 5 @@ -8251,25 +8215,6 @@ /obj/structure/table/standard, /turf/simulated/floor/carpet/rubber, /area/rnd/lab) -"dPi" = ( -/obj/effect/floor_decal/corner_wide/green/full{ - dir = 1 - }, -/obj/effect/floor_decal/sign/paramedic, -/obj/structure/cable/green{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/effect/floor_decal/industrial/warning{ - dir = 1 - }, -/turf/simulated/floor/tiled/white, -/area/medical/gen_treatment) "dPz" = ( /obj/effect/floor_decal/spline/plain{ dir = 1 @@ -8732,6 +8677,9 @@ }, /turf/simulated/floor/plating, /area/engineering/engine_room) +"eac" = ( +/turf/simulated/wall, +/area/medical/paramedic) "eah" = ( /obj/effect/floor_decal/industrial/outline/yellow, /obj/structure/closet/firecloset{ @@ -8755,13 +8703,6 @@ }, /turf/simulated/floor/tiled/full, /area/hallway/primary/central_one) -"ebm" = ( -/obj/structure/extinguisher_cabinet/east, -/obj/structure/table/standard, -/obj/item/device/flashlight/lamp, -/obj/machinery/firealarm/north, -/turf/simulated/floor/reinforced, -/area/horizon/zat) "ebq" = ( /obj/structure/foamedmetal, /obj/structure/shuttle_part/scc_space_ship{ @@ -8986,6 +8927,25 @@ }, /turf/simulated/floor/reinforced, /area/rnd/xenobiology) +"egQ" = ( +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/effect/floor_decal/corner/white/diagonal, +/obj/machinery/door/airlock/glass_medical{ + dir = 4; + name = "Paramedic Quarters"; + req_access = list(67) + }, +/obj/machinery/door/firedoor, +/turf/simulated/floor/tiled, +/area/medical/paramedic) "egY" = ( /obj/structure/ladder{ pixel_y = 8 @@ -9738,11 +9698,6 @@ }, /turf/simulated/open, /area/maintenance/wing/starboard) -"eAX" = ( -/obj/structure/flora/ausbushes/sparsegrass, -/obj/machinery/portable_atmospherics/hydroponics/soil, -/turf/simulated/floor/grass, -/area/horizon/hydroponics/garden) "eBj" = ( /obj/effect/floor_decal/corner/mauve/diagonal, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -9871,24 +9826,6 @@ }, /turf/simulated/floor/plating, /area/maintenance/wing/port/far) -"eEr" = ( -/obj/machinery/door/window/brigdoor/northleft{ - dir = 2; - name = "Columbo's Cage"; - req_access = list(58) - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/status_display{ - pixel_y = 32 - }, -/mob/living/simple_animal/hostile/commanded/dog/columbo, -/turf/simulated/floor/carpet, -/area/horizon/security/head_of_security) "eEx" = ( /obj/structure/grille/diagonal{ dir = 8 @@ -10004,6 +9941,16 @@ }, /turf/simulated/floor/tiled/dark, /area/horizon/custodial/disposals) +"eGO" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/obj/machinery/status_display{ + pixel_y = 32 + }, +/obj/effect/floor_decal/corner/dark_blue{ + dir = 5 + }, +/turf/simulated/floor/tiled, +/area/horizon/security/hallway) "eGS" = ( /obj/machinery/door/firedoor, /obj/structure/disposalpipe/segment, @@ -10063,6 +10010,11 @@ }, /turf/simulated/floor/tiled/dark, /area/rnd/xenobiology/xenoflora) +"eHt" = ( +/obj/structure/platform, +/obj/machinery/spectrophotometer, +/turf/simulated/floor/tiled/dark, +/area/rnd/lab) "eHG" = ( /turf/simulated/floor/tiled/full, /area/hallway/primary/central_one) @@ -10865,14 +10817,6 @@ }, /turf/simulated/floor/tiled, /area/horizon/custodial/auxiliary) -"fan" = ( -/obj/structure/platform, -/obj/structure/table/standard, -/obj/item/device/flashlight/lamp{ - pixel_y = -7 - }, -/turf/simulated/floor/tiled/dark, -/area/rnd/lab) "fas" = ( /obj/effect/floor_decal/industrial/outline/yellow, /obj/machinery/atmospherics/binary/pump/high_power{ @@ -10996,29 +10940,6 @@ }, /turf/simulated/open/airless, /area/template_noop) -"fdE" = ( -/obj/structure/closet/walllocker/medical/secure{ - name = "Medication Closet"; - pixel_x = 31 - }, -/obj/item/reagent_containers/glass/bottle/antitoxin, -/obj/item/storage/pill_bottle/mortaphenyl, -/obj/item/storage/pill_bottle/dylovene, -/obj/item/storage/pill_bottle/dylovene, -/obj/item/storage/pill_bottle/bicaridine, -/obj/effect/floor_decal/corner/white/diagonal, -/obj/effect/floor_decal/industrial/warning{ - dir = 8 - }, -/obj/item/storage/pill_bottle/kelotane, -/obj/item/reagent_containers/syringe/antibiotic, -/obj/item/reagent_containers/syringe/antibiotic, -/obj/item/reagent_containers/hypospray/autoinjector/coagzolug, -/obj/item/reagent_containers/hypospray/autoinjector/coagzolug, -/obj/item/reagent_containers/hypospray/autoinjector/coagzolug, -/obj/item/reagent_containers/hypospray/autoinjector/coagzolug, -/turf/simulated/floor/tiled, -/area/medical/paramedic) "fdF" = ( /turf/simulated/wall, /area/maintenance/aux_atmospherics/deck_2/starboard) @@ -11476,22 +11397,6 @@ }, /turf/simulated/floor/tiled/dark, /area/horizon/stairwell/bridge) -"fmV" = ( -/obj/structure/table/standard, -/obj/item/stack/material/phoron{ - amount = 15 - }, -/obj/item/stock_parts/manipulator, -/obj/item/stock_parts/manipulator, -/obj/effect/floor_decal/corner/mauve{ - dir = 9 - }, -/obj/machinery/power/apc/west, -/obj/structure/cable/green{ - icon_state = "0-4" - }, -/turf/simulated/floor/tiled/white, -/area/rnd/lab) "fnd" = ( /obj/structure/shuttle/engine/heater{ dir = 1 @@ -11744,6 +11649,23 @@ /obj/structure/cable/green, /turf/simulated/floor/plating, /area/horizon/maintenance/deck_two/fore/starboard) +"fta" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/blast/shutters{ + density = 0; + dir = 2; + icon_state = "shutter0"; + id = "LCKDshutters"; + name = "MedBay Lockdown Shutters"; + opacity = 0 + }, +/obj/machinery/door/airlock/glass_medical{ + dir = 4; + name = "Paramedic Quarters"; + req_access = list(67) + }, +/turf/simulated/floor/tiled/full, +/area/medical/paramedic) "fti" = ( /obj/structure/platform_deco{ dir = 1 @@ -11864,14 +11786,6 @@ }, /turf/simulated/floor/wood, /area/crew_quarters/heads/chief) -"fwE" = ( -/obj/machinery/portable_atmospherics/hydroponics/soil, -/obj/machinery/camera/network/service{ - c_tag = "Second Deck - Public Garden" - }, -/obj/structure/flora/ausbushes/sparsegrass, -/turf/simulated/floor/grass, -/area/horizon/hydroponics/garden) "fwK" = ( /obj/effect/floor_decal/spline/plain{ dir = 8 @@ -12231,20 +12145,6 @@ /obj/random/loot, /turf/simulated/floor/plating, /area/maintenance/wing/port/far) -"fGi" = ( -/obj/structure/table/standard, -/obj/effect/floor_decal/corner/mauve{ - dir = 1 - }, -/obj/machinery/recharger{ - pixel_x = -7; - pixel_y = 8 - }, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/rnd/lab) "fGs" = ( /obj/structure/table/rack, /obj/effect/floor_decal/industrial/outline/grey, @@ -13250,6 +13150,25 @@ }, /turf/simulated/floor/tiled, /area/horizon/security/brig) +"gbR" = ( +/obj/effect/floor_decal/corner_wide/green/full{ + dir = 1 + }, +/obj/effect/floor_decal/sign/paramedic, +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/effect/floor_decal/industrial/warning{ + dir = 1 + }, +/turf/simulated/floor/tiled/white, +/area/medical/gen_treatment) "gbT" = ( /turf/simulated/floor/tiled, /area/engineering/lobby) @@ -13759,12 +13678,6 @@ }, /turf/simulated/floor/tiled/dark/full, /area/horizon/hydroponics) -"gmE" = ( -/obj/structure/table/standard, -/obj/item/storage/slimes, -/obj/machinery/recharger, -/turf/simulated/floor/tiled/white, -/area/rnd/xenobiology) "gmG" = ( /obj/structure/railing/mapped{ dir = 1 @@ -13825,6 +13738,16 @@ /obj/effect/map_effect/window_spawner/full/reinforced/firedoor, /turf/simulated/floor/tiled/dark/full, /area/medical/exam) +"gnE" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet/east, +/obj/effect/floor_decal/corner/dark_blue{ + dir = 6 + }, +/turf/simulated/floor/tiled/dark, +/area/horizon/grauwolf) "goc" = ( /obj/effect/floor_decal/corner/mauve{ dir = 6 @@ -14700,14 +14623,6 @@ /obj/structure/lattice/catwalk/indoor/grate, /turf/simulated/floor/plating, /area/maintenance/research_port) -"gFc" = ( -/obj/machinery/portable_atmospherics/hydroponics/soil, -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/flora/ausbushes/sparsegrass, -/turf/simulated/floor/grass, -/area/horizon/hydroponics/garden) "gFs" = ( /obj/effect/floor_decal/corner/mauve{ dir = 10 @@ -14837,6 +14752,30 @@ }, /turf/simulated/floor/wood, /area/operations/qm) +"gHu" = ( +/obj/effect/floor_decal/corner/white/diagonal, +/obj/machinery/light, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/machinery/firealarm/south, +/obj/structure/table/standard, +/obj/item/storage/firstaid/toxin{ + pixel_x = -3; + pixel_y = 5 + }, +/obj/item/storage/firstaid/o2{ + pixel_x = -3 + }, +/obj/item/storage/firstaid/adv{ + pixel_x = 13; + pixel_y = 5 + }, +/obj/item/storage/firstaid/fire{ + pixel_x = 13 + }, +/turf/simulated/floor/tiled, +/area/medical/paramedic) "gHR" = ( /obj/machinery/light{ dir = 4 @@ -16001,10 +15940,6 @@ /obj/machinery/stasis_bed, /turf/simulated/floor/tiled/white, /area/medical/icu) -"hkt" = ( -/obj/structure/extinguisher_cabinet/east, -/turf/simulated/floor/tiled/dark, -/area/horizon/zat) "hkA" = ( /obj/effect/floor_decal/corner/dark_green/full{ dir = 8 @@ -18207,6 +18142,20 @@ }, /turf/simulated/floor/tiled/dark/full, /area/rnd/xenobiology/hazardous) +"ilq" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, +/obj/structure/window/reinforced{ + name = "adjusted reinforced window" + }, +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp/green{ + pixel_x = 1; + pixel_y = 3 + }, +/turf/simulated/floor/carpet, +/area/horizon/bar/backroom) "ily" = ( /obj/machinery/atmospherics/pipe/manifold4w/visible/black, /obj/machinery/meter, @@ -19276,15 +19225,6 @@ }, /turf/simulated/floor/tiled, /area/horizon/custodial/auxiliary) -"iKQ" = ( -/obj/effect/floor_decal/industrial/warning, -/obj/structure/railing/mapped, -/obj/effect/floor_decal/industrial/outline/yellow, -/obj/machinery/atmospherics/portables_connector{ - dir = 1 - }, -/turf/simulated/floor/tiled/dark/full, -/area/engineering/engine_room/rust) "iKU" = ( /obj/machinery/ammunition_loader/grauwolf{ weapon_id = "Grauwolf Flak Battery" @@ -19432,6 +19372,14 @@ }, /turf/simulated/floor/tiled/white, /area/hallway/medical) +"iOb" = ( +/obj/effect/floor_decal/corner/white/diagonal, +/obj/machinery/atmospherics/unary/vent_pump/on, +/obj/effect/floor_decal/industrial/warning{ + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/medical/paramedic) "iOg" = ( /obj/machinery/cryopod, /obj/effect/floor_decal/corner/dark_blue/diagonal, @@ -19602,21 +19550,6 @@ }, /turf/simulated/floor/plating, /area/horizon/maintenance/deck_two/fore/starboard) -"iSn" = ( -/obj/structure/table/standard, -/obj/item/storage/toolbox/mechanical{ - pixel_y = 6 - }, -/obj/item/stock_parts/matter_bin, -/obj/item/stock_parts/matter_bin, -/obj/machinery/light{ - dir = 8 - }, -/obj/effect/floor_decal/corner/mauve{ - dir = 10 - }, -/turf/simulated/floor/tiled/white, -/area/rnd/lab) "iSx" = ( /turf/simulated/wall/r_wall, /area/horizon/custodial/disposals) @@ -19667,6 +19600,28 @@ /obj/effect/floor_decal/industrial/outline/yellow, /turf/simulated/floor/plating, /area/maintenance/wing/starboard/far) +"iVf" = ( +/obj/effect/floor_decal/corner/mauve{ + dir = 5 + }, +/obj/effect/floor_decal/corner/white{ + dir = 10 + }, +/obj/structure/cable/green{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/table/standard, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/obj/machinery/microscope/science{ + dir = 4; + pixel_y = 12 + }, +/turf/simulated/floor/tiled/dark, +/area/rnd/xenobiology/xenoflora) "iVg" = ( /obj/structure/closet/secure_closet/engineering_chief, /obj/item/device/radio/intercom/south, @@ -20113,28 +20068,6 @@ /obj/machinery/light, /turf/simulated/floor/plating, /area/engineering/engine_room/rust) -"jeY" = ( -/obj/effect/floor_decal/corner_wide/green{ - dir = 5 - }, -/obj/effect/floor_decal/corner_wide/green, -/obj/structure/sink{ - pixel_x = -7; - pixel_y = 23 - }, -/turf/simulated/floor/tiled/white, -/area/medical/exam) -"jfp" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/cyan{ - dir = 4 - }, -/obj/machinery/door/blast/regular{ - dir = 2; - id = "EngineEmitterPortWest"; - name = "Supermatter Reactor Waste Management Blast Door" - }, -/turf/simulated/floor/tiled/full, -/area/engineering/engine_waste) "jfu" = ( /obj/effect/floor_decal/corner/dark_blue{ dir = 5 @@ -20251,6 +20184,28 @@ }, /turf/simulated/floor/tiled, /area/hallway/primary/central_two) +"jjs" = ( +/obj/machinery/recharger/wallcharger{ + pixel_x = 2; + pixel_y = 34 + }, +/obj/machinery/photocopier, +/obj/effect/floor_decal/corner/dark_blue{ + dir = 5 + }, +/obj/machinery/recharger/wallcharger{ + pixel_x = 2; + pixel_y = 23 + }, +/obj/structure/sign/nosmoking_2{ + pixel_x = 15; + pixel_y = 30 + }, +/obj/machinery/camera/network/security{ + c_tag = "Security - Lobby Desk" + }, +/turf/simulated/floor/tiled, +/area/horizon/security/office) "jju" = ( /obj/effect/floor_decal/corner/dark_blue/full{ dir = 1 @@ -20534,36 +20489,6 @@ }, /turf/simulated/floor/plating, /area/maintenance/wing/starboard/far) -"jpf" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/effect/floor_decal/spline/fancy/wood{ - dir = 4 - }, -/obj/effect/floor_decal/spline/fancy/wood{ - dir = 8 - }, -/obj/machinery/button/remote/blast_door{ - dir = 4; - id = "massdriver"; - name = "Mass Driver Interior Blast Door"; - pixel_x = 25; - pixel_y = 11 - }, -/obj/machinery/button/remote/blast_door{ - dir = 4; - id = "chapel_driver"; - name = "Mass Driver Exterior Blast Door"; - pixel_x = 25 - }, -/obj/machinery/button/mass_driver{ - _wifi_id = "chapel_driver"; - dir = 8; - id = "chapel_driver"; - pixel_x = 35; - pixel_y = 5 - }, -/turf/simulated/floor/wood, -/area/chapel/office) "jpB" = ( /obj/machinery/portable_atmospherics/hydroponics, /obj/effect/floor_decal/corner/dark_blue{ @@ -20587,6 +20512,26 @@ }, /turf/simulated/floor/carpet, /area/horizon/security/head_of_security) +"jpT" = ( +/obj/structure/table/standard, +/obj/item/storage/toolbox/mechanical{ + pixel_y = 6 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/floor_decal/corner/mauve{ + dir = 10 + }, +/obj/item/stack/material/phoron{ + amount = 15 + }, +/obj/item/storage/box/slides{ + pixel_x = -5; + pixel_y = 5 + }, +/turf/simulated/floor/tiled/white, +/area/rnd/lab) "jqw" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 5 @@ -21155,16 +21100,15 @@ }, /turf/simulated/floor/tiled, /area/horizon/security/brig) -"jDU" = ( -/obj/structure/platform, -/obj/structure/filingcabinet/filingcabinet{ - pixel_x = -7 +"jDG" = ( +/obj/machinery/portable_atmospherics/hydroponics/soil, +/obj/machinery/firealarm/west, +/obj/machinery/alarm/north{ + req_one_access = list(24,11,55) }, -/obj/machinery/papershredder{ - pixel_x = 7 - }, -/turf/simulated/floor/tiled/dark, -/area/rnd/lab) +/obj/structure/flora/ausbushes/sparsegrass, +/turf/simulated/floor/grass, +/area/horizon/hydroponics/garden) "jDZ" = ( /obj/effect/floor_decal/spline/fancy/wood, /obj/machinery/light, @@ -21665,6 +21609,17 @@ }, /turf/simulated/floor/tiled, /area/horizon/security/hallway) +"jOC" = ( +/obj/effect/floor_decal/corner_wide/green{ + dir = 5 + }, +/obj/effect/floor_decal/corner_wide/green, +/obj/structure/sink{ + pixel_x = -7; + pixel_y = 23 + }, +/turf/simulated/floor/tiled/white, +/area/medical/exam) "jOK" = ( /obj/structure/railing/mapped{ dir = 4 @@ -22051,6 +22006,17 @@ }, /turf/simulated/floor/tiled/dark/full, /area/engineering/smes/rust) +"jWL" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/cyan{ + dir = 4 + }, +/obj/machinery/door/blast/regular{ + dir = 2; + id = "EngineEmitterPortWest"; + name = "Supermatter Reactor Waste Management Blast Door" + }, +/turf/simulated/floor/tiled/full, +/area/engineering/engine_waste) "jWV" = ( /turf/simulated/wall, /area/security/checkpoint2) @@ -22365,6 +22331,20 @@ /obj/effect/floor_decal/corner/dark_green/full, /turf/simulated/floor/tiled, /area/horizon/hallway/deck_two/fore) +"kgE" = ( +/obj/effect/floor_decal/corner/white/diagonal, +/obj/structure/cable/green{ + icon_state = "1-8" + }, +/obj/item/device/radio/intercom/south, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/turf/simulated/floor/tiled, +/area/medical/paramedic) "kgH" = ( /obj/effect/floor_decal/corner/grey/diagonal, /obj/effect/floor_decal/spline/plain, @@ -22529,6 +22509,15 @@ }, /turf/simulated/floor/tiled, /area/horizon/security/brig) +"klk" = ( +/obj/effect/floor_decal/industrial/warning, +/obj/structure/railing/mapped, +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/machinery/atmospherics/portables_connector{ + dir = 1 + }, +/turf/simulated/floor/tiled/dark/full, +/area/engineering/engine_room/rust) "klv" = ( /obj/effect/floor_decal/corner/dark_blue/full{ dir = 4 @@ -22976,38 +22965,6 @@ }, /turf/simulated/open, /area/horizon/stairwell/central) -"kyR" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/structure/railing/mapped, -/obj/effect/floor_decal/corner/mauve/diagonal, -/obj/machinery/light/floor, -/turf/simulated/floor/tiled/white, -/area/rnd/lab) -"kyV" = ( -/obj/machinery/requests_console/north{ - department = "Atmospherics"; - departmentType = 4; - name = "Atmos RC" - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/closet/crate, -/obj/item/stock_parts/manipulator, -/obj/item/stock_parts/capacitor, -/obj/item/stock_parts/capacitor, -/obj/item/stock_parts/capacitor, -/obj/item/stock_parts/capacitor, -/obj/item/stock_parts/matter_bin, -/obj/item/stock_parts/matter_bin, -/obj/item/stack/cable_coil, -/obj/item/circuitboard/unary_atmos/cooler, -/obj/item/circuitboard/unary_atmos/heater, -/obj/effect/floor_decal/industrial/outline/engineering, -/turf/simulated/floor/tiled/dark/full, -/area/engineering/atmos/storage) "kze" = ( /obj/machinery/smartfridge/secure, /obj/machinery/door/firedoor, @@ -23487,6 +23444,11 @@ /obj/item/hullbeacon/red, /turf/simulated/open/airless, /area/template_noop) +"kMf" = ( +/obj/structure/flora/ausbushes/sparsegrass, +/obj/machinery/portable_atmospherics/hydroponics/soil, +/turf/simulated/floor/grass, +/area/horizon/hydroponics/garden) "kMl" = ( /obj/effect/floor_decal/corner/yellow{ dir = 10 @@ -23496,6 +23458,14 @@ }, /turf/simulated/floor/tiled, /area/engineering/rust_office) +"kMM" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/closet/secure_closet/medical_para, +/obj/item/defibrillator/compact/loaded, +/turf/simulated/floor/tiled, +/area/medical/paramedic) "kNe" = ( /obj/effect/map_effect/window_spawner/full/borosilicate/reinforced/firedoor, /obj/machinery/door/blast/regular/open{ @@ -23741,24 +23711,6 @@ /obj/machinery/newscaster/east, /turf/simulated/floor/tiled, /area/horizon/security/brig) -"kUc" = ( -/obj/structure/table/standard, -/obj/effect/floor_decal/corner_wide/green/full, -/obj/machinery/alarm/west, -/obj/item/storage/box/masks, -/obj/item/storage/box/masks, -/obj/item/storage/box/gloves{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/storage/box/gloves{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/structure/railing/mapped, -/obj/structure/stairs_lower/stairs_upper, -/turf/simulated/floor/tiled/white, -/area/hallway/medical) "kUf" = ( /obj/structure/lattice/catwalk, /turf/simulated/open/airless, @@ -24417,16 +24369,6 @@ }, /turf/simulated/floor/tiled, /area/operations/office) -"llB" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet/east, -/obj/effect/floor_decal/corner/dark_blue{ - dir = 6 - }, -/turf/simulated/floor/tiled/dark, -/area/horizon/grauwolf) "llG" = ( /obj/machinery/maneuvering_engine, /obj/effect/landmark/entry_point/aft{ @@ -24701,16 +24643,6 @@ /obj/item/smes_coil/super_io, /turf/simulated/floor/tiled/dark/full, /area/engineering/engine_room/rust) -"lui" = ( -/obj/machinery/door/blast/regular/open{ - dir = 4; - id = "r_ust_core_blast"; - name = "INDRA Reactor Blast Doors" - }, -/obj/effect/map_effect/window_spawner/full/borosilicate/reinforced, -/obj/machinery/atmospherics/pipe/simple/visible, -/turf/simulated/floor/tiled/dark/full, -/area/engineering/engine_room/rust) "luo" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -24733,26 +24665,6 @@ }, /turf/simulated/floor/carpet/purple, /area/crew_quarters/heads/hor) -"lvl" = ( -/obj/effect/floor_decal/corner/mauve{ - dir = 5 - }, -/obj/machinery/power/apc/high/north, -/obj/structure/cable/green{ - icon_state = "0-2" - }, -/obj/structure/table/standard, -/obj/machinery/reagentgrinder{ - pixel_x = 3; - pixel_y = 10 - }, -/obj/item/reagent_containers/chem_disp_cartridge, -/obj/item/reagent_containers/chem_disp_cartridge, -/obj/item/reagent_containers/chem_disp_cartridge, -/obj/item/reagent_containers/chem_disp_cartridge, -/obj/item/reagent_containers/chem_disp_cartridge, -/turf/simulated/floor/tiled/dark, -/area/rnd/xenobiology/xenoflora) "lvq" = ( /obj/structure/cable{ icon_state = "4-8" @@ -26798,28 +26710,6 @@ /obj/effect/floor_decal/corner/red/diagonal, /turf/simulated/floor/tiled, /area/storage/primary) -"msO" = ( -/obj/machinery/recharger/wallcharger{ - pixel_x = 2; - pixel_y = 34 - }, -/obj/machinery/photocopier, -/obj/effect/floor_decal/corner/dark_blue{ - dir = 5 - }, -/obj/machinery/recharger/wallcharger{ - pixel_x = 2; - pixel_y = 23 - }, -/obj/structure/sign/nosmoking_2{ - pixel_x = 15; - pixel_y = 30 - }, -/obj/machinery/camera/network/security{ - c_tag = "Security - Lobby Desk" - }, -/turf/simulated/floor/tiled, -/area/horizon/security/office) "msP" = ( /obj/machinery/alarm/north, /obj/random/loot, @@ -26856,6 +26746,25 @@ }, /turf/simulated/floor/carpet/red, /area/horizon/crew_quarters/lounge/bar) +"mtl" = ( +/obj/effect/floor_decal/corner/white/diagonal, +/obj/structure/table/standard, +/obj/item/reagent_containers/hypospray{ + pixel_x = -2; + pixel_y = 5 + }, +/obj/item/reagent_containers/hypospray{ + pixel_x = 4; + pixel_y = 5 + }, +/obj/effect/floor_decal/industrial/warning{ + dir = 1 + }, +/obj/item/storage/toolbox/mechanical{ + pixel_y = -11 + }, +/turf/simulated/floor/tiled, +/area/medical/paramedic) "mtp" = ( /obj/effect/floor_decal/corner/mauve{ dir = 4 @@ -26975,6 +26884,23 @@ }, /turf/simulated/open, /area/maintenance/research_port) +"mvg" = ( +/obj/effect/floor_decal/spline/fancy/wood{ + dir = 5 + }, +/obj/random/pottedplant, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/structure/platform{ + dir = 8 + }, +/obj/structure/platform{ + dir = 8; + pixel_y = 13 + }, +/turf/simulated/floor/wood, +/area/horizon/crew_quarters/lounge/bar) "mvh" = ( /turf/simulated/floor/tiled/dark, /area/rnd/lab) @@ -27206,6 +27132,29 @@ }, /turf/simulated/floor/tiled, /area/hallway/primary/central_one) +"mzN" = ( +/obj/structure/closet/walllocker/medical/secure{ + name = "Medication Closet"; + pixel_x = 31 + }, +/obj/item/reagent_containers/glass/bottle/antitoxin, +/obj/item/storage/pill_bottle/mortaphenyl, +/obj/item/storage/pill_bottle/dylovene, +/obj/item/storage/pill_bottle/dylovene, +/obj/item/storage/pill_bottle/bicaridine, +/obj/effect/floor_decal/corner/white/diagonal, +/obj/effect/floor_decal/industrial/warning{ + dir = 8 + }, +/obj/item/storage/pill_bottle/kelotane, +/obj/item/reagent_containers/syringe/antibiotic, +/obj/item/reagent_containers/syringe/antibiotic, +/obj/item/reagent_containers/hypospray/autoinjector/coagzolug, +/obj/item/reagent_containers/hypospray/autoinjector/coagzolug, +/obj/item/reagent_containers/hypospray/autoinjector/coagzolug, +/obj/item/reagent_containers/hypospray/autoinjector/coagzolug, +/turf/simulated/floor/tiled, +/area/medical/paramedic) "mzS" = ( /obj/effect/floor_decal/industrial/outline/yellow, /obj/machinery/portable_atmospherics/powered/scrubber, @@ -27260,12 +27209,6 @@ }, /turf/simulated/open, /area/operations/office) -"mBk" = ( -/obj/machinery/portable_atmospherics/hydroponics/soil, -/obj/machinery/light, -/obj/structure/flora/ausbushes/sparsegrass, -/turf/simulated/floor/grass, -/area/horizon/hydroponics/garden) "mBI" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -27517,22 +27460,6 @@ "mHH" = ( /turf/simulated/wall/r_wall, /area/crew_quarters/heads/hor) -"mHM" = ( -/obj/structure/closet/secure_closet/RD, -/obj/effect/floor_decal/industrial/outline/research, -/obj/effect/floor_decal/spline/fancy/wood{ - dir = 8 - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/power/apc/north, -/obj/structure/cable/green{ - icon_state = "0-2" - }, -/obj/machinery/firealarm/west, -/turf/simulated/floor/wood, -/area/crew_quarters/heads/hor) "mHO" = ( /turf/simulated/floor/tiled/full, /area/horizon/stairwell/central) @@ -28468,6 +28395,14 @@ }, /turf/simulated/floor/tiled/dark/full, /area/storage/secure) +"naR" = ( +/obj/machinery/camera/network/medbay{ + c_tag = "Medical - First Responder Room" + }, +/obj/structure/closet/secure_closet/medical_para, +/obj/item/defibrillator/compact/loaded, +/turf/simulated/floor/tiled, +/area/medical/paramedic) "nbd" = ( /obj/structure/closet/walllocker/medical/secure{ name = "Stabilization Kit"; @@ -29669,6 +29604,10 @@ }, /turf/simulated/floor/tiled/full, /area/hallway/engineering) +"nDI" = ( +/obj/machinery/suit_cycler/medical, +/turf/simulated/floor/tiled, +/area/medical/paramedic) "nDK" = ( /obj/effect/floor_decal/industrial/hatch/red, /obj/effect/floor_decal/industrial/warning{ @@ -29835,6 +29774,22 @@ "nIi" = ( /turf/simulated/wall, /area/hallway/medical) +"nIL" = ( +/obj/structure/closet/walllocker/medical/secure{ + name = "Stabilization Kit"; + pixel_x = -31 + }, +/obj/item/bodybag/cryobag, +/obj/item/bodybag/cryobag, +/obj/item/bodybag/cryobag, +/obj/item/reagent_containers/glass/bottle/inaprovaline, +/obj/item/stack/medical/bruise_pack, +/obj/item/stack/medical/bruise_pack, +/obj/item/storage/pill_bottle/mortaphenyl, +/obj/effect/floor_decal/corner/white/diagonal, +/obj/item/storage/pill_bottle/dexalin, +/turf/simulated/floor/tiled, +/area/medical/paramedic) "nIX" = ( /obj/effect/floor_decal/industrial/outline/yellow, /obj/structure/ladder/up{ @@ -30403,6 +30358,21 @@ }, /turf/simulated/floor/tiled, /area/rnd/hallway) +"nZH" = ( +/obj/structure/table/standard, +/obj/machinery/computer/security/telescreen{ + name = "Access Monitor"; + network = list("Xeno_Bio"); + req_access = list(55) + }, +/obj/effect/floor_decal/corner/mauve{ + dir = 10 + }, +/obj/structure/net_dispenser{ + pixel_y = -32 + }, +/turf/simulated/floor/tiled/white, +/area/rnd/xenobiology) "nZX" = ( /obj/structure/table/stone/marble, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -30761,14 +30731,6 @@ }, /turf/simulated/floor/carpet/purple, /area/crew_quarters/heads/hor) -"ohE" = ( -/obj/effect/floor_decal/corner/white/diagonal, -/obj/effect/floor_decal/industrial/warning/corner, -/obj/effect/floor_decal/industrial/warning{ - dir = 1 - }, -/turf/simulated/floor/tiled, -/area/medical/paramedic) "ohQ" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -30920,18 +30882,6 @@ }, /turf/simulated/floor/tiled/dark, /area/horizon/zat) -"okq" = ( -/obj/machinery/door/blast/shutters{ - density = 0; - dir = 4; - icon_state = "shutter0"; - id = "LCKDshutters"; - name = "MedBay Lockdown Shutters"; - opacity = 0 - }, -/obj/effect/map_effect/window_spawner/full/reinforced/firedoor, -/turf/simulated/floor/tiled/dark/full, -/area/medical/paramedic) "okP" = ( /obj/effect/floor_decal/corner/mauve{ dir = 10 @@ -31589,27 +31539,6 @@ }, /turf/simulated/floor/tiled, /area/rnd/hallway/secondary) -"oAy" = ( -/obj/structure/closet/crate/freezer{ - name = "Assorted Blood Packs" - }, -/obj/item/reagent_containers/blood/OPlus, -/obj/item/reagent_containers/blood/OPlus, -/obj/item/reagent_containers/blood/BPlus, -/obj/item/reagent_containers/blood/BPlus, -/obj/item/reagent_containers/blood/BMinus, -/obj/item/reagent_containers/blood/BMinus, -/obj/item/reagent_containers/blood/sbs, -/obj/item/reagent_containers/blood/sbs, -/obj/item/reagent_containers/blood/APlus, -/obj/item/reagent_containers/blood/APlus, -/obj/item/reagent_containers/blood/AMinus, -/obj/item/reagent_containers/blood/AMinus, -/obj/effect/floor_decal/corner_wide/green/full, -/obj/structure/cable/green, -/obj/machinery/power/apc/west, -/turf/simulated/floor/tiled/white, -/area/medical/main_storage) "oAL" = ( /obj/machinery/light/small/emergency{ dir = 8 @@ -31757,23 +31686,6 @@ }, /turf/simulated/floor/lino, /area/chapel/main) -"oCG" = ( -/obj/effect/floor_decal/spline/fancy/wood{ - dir = 5 - }, -/obj/random/pottedplant, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/structure/platform{ - dir = 8 - }, -/obj/structure/platform{ - dir = 8; - pixel_y = 13 - }, -/turf/simulated/floor/wood, -/area/horizon/crew_quarters/lounge/bar) "oDg" = ( /obj/structure/shuttle_part/scc_space_ship{ icon_state = "d2-4-f" @@ -31868,6 +31780,14 @@ /obj/effect/floor_decal/corner_wide/yellow, /turf/simulated/floor/tiled, /area/hallway/engineering/rust) +"oGW" = ( +/obj/machinery/portable_atmospherics/hydroponics/soil, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/flora/ausbushes/sparsegrass, +/turf/simulated/floor/grass, +/area/horizon/hydroponics/garden) "oHI" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -32329,9 +32249,6 @@ /obj/effect/floor_decal/industrial/outline/yellow, /turf/simulated/floor/tiled/dark/full, /area/horizon/hydroponics) -"oUt" = ( -/turf/simulated/wall, -/area/medical/paramedic) "oUu" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -32426,16 +32343,6 @@ /obj/machinery/door/firedoor, /turf/simulated/floor/plating, /area/engineering/engine_waste) -"oXf" = ( -/obj/effect/floor_decal/corner/white/diagonal, -/obj/structure/bed/stool/chair/office/light{ - dir = 8 - }, -/obj/effect/floor_decal/industrial/warning/corner{ - dir = 1 - }, -/turf/simulated/floor/tiled, -/area/medical/paramedic) "oXi" = ( /obj/structure/table/standard, /obj/item/gun/energy/mousegun/xenofauna, @@ -33190,6 +33097,15 @@ /obj/effect/floor_decal/industrial/outline/yellow, /turf/simulated/floor/tiled/dark/full, /area/engineering/storage_hard) +"pmY" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/yellow, +/turf/simulated/floor/tiled/dark, +/area/engineering/smes/rust) "pnj" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -33202,6 +33118,31 @@ }, /turf/simulated/floor/reinforced, /area/rnd/xenobiology) +"pnu" = ( +/obj/structure/table/standard, +/obj/item/grenade/chem_grenade, +/obj/item/grenade/chem_grenade, +/obj/item/grenade/chem_grenade, +/obj/item/grenade/chem_grenade, +/obj/item/device/assembly/igniter, +/obj/item/device/assembly/igniter, +/obj/item/device/assembly/igniter, +/obj/item/device/assembly/igniter, +/obj/item/device/assembly/timer, +/obj/item/device/assembly/timer, +/obj/item/device/assembly/timer, +/obj/item/device/assembly/timer, +/obj/structure/closet/crate/drop/grey{ + desc = "A large, sturdy crate, that stores grenade components."; + name = "grenade crate"; + pixel_y = -4; + tablestatus = -1 + }, +/obj/effect/floor_decal/corner_wide/orange{ + dir = 10 + }, +/turf/simulated/floor/tiled/white, +/area/medical/pharmacy) "pnF" = ( /obj/structure/cable/green{ icon_state = "4-8" @@ -33356,6 +33297,22 @@ }, /turf/simulated/floor/tiled/dark/full, /area/engineering/engine_room) +"ptx" = ( +/obj/effect/floor_decal/corner/white/diagonal, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, +/obj/structure/bed/stool/chair/office/light{ + dir = 4 + }, +/obj/effect/floor_decal/industrial/warning/corner{ + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/medical/paramedic) "ptC" = ( /obj/machinery/atmospherics/pipe/simple/hidden{ dir = 9 @@ -33459,6 +33416,16 @@ /obj/structure/lattice/catwalk/indoor/grate, /turf/simulated/floor/plating, /area/maintenance/wing/starboard/far) +"pva" = ( +/obj/machinery/door/blast/regular/open{ + dir = 4; + id = "r_ust_core_blast"; + name = "INDRA Reactor Blast Doors" + }, +/obj/effect/map_effect/window_spawner/full/borosilicate/reinforced, +/obj/machinery/atmospherics/pipe/simple/visible, +/turf/simulated/floor/tiled/dark/full, +/area/engineering/engine_room/rust) "pvc" = ( /obj/effect/floor_decal/corner/mauve/full, /obj/machinery/light{ @@ -33520,6 +33487,15 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, /turf/simulated/floor/tiled, /area/rnd/xenobiology/xenoflora) +"pxA" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 1 + }, +/obj/machinery/atmospherics/binary/pump{ + dir = 1 + }, +/turf/simulated/floor/tiled/dark/full, +/area/engineering/engine_room/rust) "pxG" = ( /turf/simulated/floor/tiled, /area/horizon/commissary) @@ -33864,6 +33840,25 @@ }, /turf/simulated/floor/tiled, /area/maintenance/aux_atmospherics/deck_2/starboard/wing) +"pHd" = ( +/obj/machinery/access_button{ + command = "cycle_interior"; + frequency = 1380; + master_tag = "centcom_shuttle_dock_airlock"; + name = "interior access button"; + pixel_x = -25; + pixel_y = -25; + req_access = list(13) + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 10 + }, +/obj/effect/floor_decal/corner/dark_green/full{ + dir = 4 + }, +/obj/machinery/alarm/east, +/turf/simulated/floor/tiled, +/area/security/checkpoint2) "pHp" = ( /obj/structure/cable/green{ icon_state = "1-2" @@ -34187,7 +34182,44 @@ /obj/effect/floor_decal/industrial/outline/yellow, /turf/simulated/floor/tiled, /area/engineering/storage_eva) -"pPA" = ( +"pPO" = ( +/obj/item/stack/wrapping_paper, +/obj/structure/table/standard, +/obj/item/stack/wrapping_paper, +/obj/item/stack/packageWrap{ + pixel_y = 8 + }, +/obj/item/stack/packageWrap{ + pixel_y = 8 + }, +/obj/effect/floor_decal/corner/brown/full{ + dir = 4 + }, +/obj/machinery/alarm/east, +/turf/simulated/floor/tiled, +/area/operations/mail_room) +"pPV" = ( +/obj/item/rig/medical/equipped{ + pixel_x = 4; + pixel_y = 5 + }, +/obj/item/rig/medical/equipped{ + pixel_x = -5; + pixel_y = 5 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/table/rack{ + pixel_y = 5 + }, +/obj/machinery/door/window/southleft, +/turf/simulated/floor/tiled, +/area/medical/paramedic) +"pQf" = ( /obj/structure/table/standard, /obj/machinery/requests_console/east{ department = "Research and Development"; @@ -34211,34 +34243,12 @@ /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 8 }, +/obj/machinery/recharger{ + pixel_x = -7; + pixel_y = 8 + }, /turf/simulated/floor/tiled/white, /area/rnd/lab) -"pPM" = ( -/obj/machinery/light, -/obj/effect/floor_decal/industrial/outline/yellow, -/obj/structure/table/rack, -/obj/item/storage/box/monkeycubes, -/obj/item/storage/box/monkeycubes, -/obj/item/storage/box/monkeycubes, -/obj/item/storage/box/monkeycubes, -/turf/simulated/floor/tiled/white, -/area/rnd/xenobiology) -"pPO" = ( -/obj/item/stack/wrapping_paper, -/obj/structure/table/standard, -/obj/item/stack/wrapping_paper, -/obj/item/stack/packageWrap{ - pixel_y = 8 - }, -/obj/item/stack/packageWrap{ - pixel_y = 8 - }, -/obj/effect/floor_decal/corner/brown/full{ - dir = 4 - }, -/obj/machinery/alarm/east, -/turf/simulated/floor/tiled, -/area/operations/mail_room) "pQj" = ( /obj/structure/cable/green{ icon_state = "1-2" @@ -35174,6 +35184,11 @@ }, /turf/simulated/open, /area/maintenance/wing/starboard) +"qoc" = ( +/obj/effect/floor_decal/industrial/warning/full, +/obj/machinery/mech_recharger, +/turf/simulated/floor/tiled, +/area/medical/paramedic) "qoy" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -35439,24 +35454,6 @@ }, /turf/simulated/floor/tiled/dark, /area/horizon/grauwolf) -"quV" = ( -/obj/item/reagent_containers/blood/OMinus, -/obj/item/reagent_containers/blood/sbs, -/obj/item/reagent_containers/blood/OMinus, -/obj/item/reagent_containers/blood/OMinus, -/obj/structure/closet/walllocker/medical/secure{ - name = "O- Blood Locker"; - pixel_y = 32 - }, -/obj/structure/cable/green{ - icon_state = "0-2" - }, -/obj/machinery/power/apc/west, -/turf/simulated/floor/tiled/freezer{ - name = "cold storage tiles"; - temperature = 278 - }, -/area/medical/surgery) "qvb" = ( /obj/structure/shuttle_part/scc_space_ship{ icon_state = "d3-6" @@ -35838,18 +35835,6 @@ "qDh" = ( /turf/simulated/wall/r_wall, /area/horizon/security/equipment) -"qDD" = ( -/obj/structure/table/standard, -/obj/machinery/computer/security/telescreen{ - name = "Access Monitor"; - network = list("Xeno_Bio"); - req_access = list(55) - }, -/obj/effect/floor_decal/corner/mauve{ - dir = 10 - }, -/turf/simulated/floor/tiled/white, -/area/rnd/xenobiology) "qDU" = ( /obj/structure/bed/stool/padded/red, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -36035,6 +36020,14 @@ }, /turf/simulated/floor/tiled/full, /area/hallway/primary/central_one) +"qGr" = ( +/obj/effect/floor_decal/corner/white/diagonal, +/obj/effect/floor_decal/industrial/warning/corner, +/obj/effect/floor_decal/industrial/warning{ + dir = 1 + }, +/turf/simulated/floor/tiled, +/area/medical/paramedic) "qGH" = ( /obj/structure/table/standard, /obj/item/paper_bin{ @@ -36133,21 +36126,6 @@ /obj/structure/lattice/catwalk/indoor, /turf/simulated/floor/plating, /area/engineering/engine_room/rust) -"qJr" = ( -/obj/structure/platform{ - dir = 4 - }, -/obj/structure/sign/fire{ - desc = "A warning sign which reads 'DANGER: SHUTTLE THRUSTERS IN USE' and 'MIND THE DISTANCE'."; - name = "\improper DANGER: THRUSTERS sign"; - pixel_x = -32 - }, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/machinery/disposal/small/east, -/turf/simulated/floor/tiled/dark/full, -/area/operations/lower/machinist) "qKi" = ( /obj/machinery/button/remote/airlock{ dir = 1; @@ -36275,15 +36253,6 @@ /obj/structure/reagent_dispensers/watertank, /turf/simulated/floor/plating, /area/horizon/maintenance/deck_two/fore/port) -"qPf" = ( -/obj/effect/floor_decal/industrial/warning{ - dir = 1 - }, -/obj/machinery/atmospherics/binary/pump{ - dir = 1 - }, -/turf/simulated/floor/tiled/dark/full, -/area/engineering/engine_room/rust) "qPo" = ( /obj/structure/table/rack, /obj/item/storage/toolbox/mechanical, @@ -36352,6 +36321,23 @@ }, /turf/simulated/floor/tiled, /area/operations/office) +"qQm" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/cyan{ + dir = 4 + }, +/obj/machinery/door/blast/regular{ + dir = 2; + id = "EngineEmitterPortWest"; + name = "Supermatter Reactor Waste Management Blast Door" + }, +/turf/simulated/floor/tiled/full, +/area/engineering/engine_waste) "qQs" = ( /obj/random/junk, /turf/simulated/floor/plating, @@ -36555,6 +36541,40 @@ /obj/effect/floor_decal/industrial/hatch/yellow, /turf/simulated/floor/tiled, /area/operations/lobby) +"qTK" = ( +/obj/structure/table/standard, +/obj/machinery/light, +/obj/effect/floor_decal/corner/mauve/full{ + dir = 4 + }, +/obj/item/reagent_containers/glass/beaker{ + pixel_y = 8 + }, +/obj/item/reagent_containers/glass/beaker{ + pixel_y = 8 + }, +/obj/item/device/slime_scanner{ + pixel_x = -11; + pixel_y = 4 + }, +/obj/item/device/slime_scanner{ + pixel_x = -11; + pixel_y = 4 + }, +/obj/item/storage/box/slides{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/storage/box/syringes{ + pixel_x = 5; + pixel_y = 1 + }, +/obj/item/storage/box/syringes{ + pixel_x = 5; + pixel_y = 1 + }, +/turf/simulated/floor/tiled/white, +/area/rnd/xenobiology) "qTP" = ( /obj/structure/railing/mapped, /obj/effect/floor_decal/industrial/warning/cee{ @@ -36633,21 +36653,6 @@ }, /turf/simulated/floor/tiled/dark, /area/hallway/primary/central_one) -"qVw" = ( -/obj/structure/table/stone/marble, -/obj/item/material/kitchen/rollingpin{ - pixel_x = 6; - pixel_y = 10 - }, -/obj/item/material/knife{ - pixel_x = -9 - }, -/obj/item/storage/box/produce{ - pixel_x = 3; - pixel_y = -5 - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/kitchen) "qVx" = ( /turf/simulated/wall/r_wall, /area/rnd/xenobiology/hazardous) @@ -36849,16 +36854,6 @@ }, /turf/simulated/floor/tiled, /area/hallway/engineering) -"qZM" = ( -/obj/effect/floor_decal/corner/white/diagonal, -/obj/effect/floor_decal/industrial/warning/corner{ - dir = 8 - }, -/obj/effect/floor_decal/industrial/warning{ - dir = 1 - }, -/turf/simulated/floor/tiled, -/area/medical/paramedic) "raA" = ( /obj/structure/disposalpipe/segment{ dir = 8; @@ -36883,16 +36878,6 @@ /obj/random/loot, /turf/simulated/floor/tiled/dark/full, /area/operations/lower/machinist) -"rbr" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/hatch{ - locked = 1; - name = "INDRA Reactor Core Access"; - req_one_access = list(11,24) - }, -/obj/effect/floor_decal/industrial/hatch/yellow, -/turf/simulated/floor/tiled/dark/full, -/area/engineering/engine_room/rust) "rbs" = ( /obj/structure/grille, /obj/structure/window/shuttle/scc_space_ship/cardinal, @@ -36975,6 +36960,36 @@ }, /turf/simulated/floor/tiled/dark, /area/horizon/zat) +"rcC" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/effect/floor_decal/spline/fancy/wood{ + dir = 4 + }, +/obj/effect/floor_decal/spline/fancy/wood{ + dir = 8 + }, +/obj/machinery/button/remote/blast_door{ + dir = 4; + id = "massdriver"; + name = "Mass Driver Interior Blast Door"; + pixel_x = 25; + pixel_y = 11 + }, +/obj/machinery/button/remote/blast_door{ + dir = 4; + id = "chapel_driver"; + name = "Mass Driver Exterior Blast Door"; + pixel_x = 25 + }, +/obj/machinery/button/mass_driver{ + _wifi_id = "chapel_driver"; + dir = 8; + id = "chapel_driver"; + pixel_x = 35; + pixel_y = 5 + }, +/turf/simulated/floor/wood, +/area/chapel/office) "rcH" = ( /obj/structure/cable{ icon_state = "1-2" @@ -37138,6 +37153,21 @@ }, /turf/simulated/floor/plating, /area/engineering/smes) +"rgy" = ( +/obj/structure/platform{ + dir = 4 + }, +/obj/structure/sign/fire{ + desc = "A warning sign which reads 'DANGER: SHUTTLE THRUSTERS IN USE' and 'MIND THE DISTANCE'."; + name = "\improper DANGER: THRUSTERS sign"; + pixel_x = -32 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/disposal/small/east, +/turf/simulated/floor/tiled/dark/full, +/area/operations/lower/machinist) "rgH" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable/green{ @@ -37784,27 +37814,6 @@ }, /turf/simulated/floor/carpet/rubber, /area/engineering/engine_room/rust) -"rxC" = ( -/obj/structure/table/stone/marble, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/item/material/kitchen/rollingpin{ - pixel_x = 6; - pixel_y = 10 - }, -/obj/item/material/knife{ - pixel_x = -9 - }, -/obj/item/storage/box/produce{ - pixel_x = 3; - pixel_y = -5 - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/kitchen) "ryb" = ( /obj/machinery/atmospherics/pipe/manifold/visible{ dir = 1 @@ -37887,6 +37896,14 @@ }, /turf/simulated/floor/tiled, /area/horizon/security/lobby) +"rzw" = ( +/obj/effect/floor_decal/corner/white/diagonal, +/obj/effect/floor_decal/industrial/warning, +/obj/effect/floor_decal/industrial/warning{ + dir = 1 + }, +/turf/simulated/floor/tiled, +/area/medical/paramedic) "rzC" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/floor_decal/industrial/outline/yellow, @@ -37917,15 +37934,6 @@ /obj/structure/table/reinforced/glass, /turf/simulated/floor/carpet/rubber, /area/rnd/lab) -"rAn" = ( -/obj/machinery/portable_atmospherics/hydroponics/soil, -/obj/machinery/firealarm/west, -/obj/machinery/alarm/north{ - req_one_access = list(24,11,55) - }, -/obj/structure/flora/ausbushes/sparsegrass, -/turf/simulated/floor/grass, -/area/horizon/hydroponics/garden) "rAw" = ( /obj/structure/cable/green{ icon_state = "4-8" @@ -38055,10 +38063,6 @@ /obj/structure/disposalpipe/segment, /turf/simulated/floor/tiled, /area/hallway/primary/central_two) -"rEY" = ( -/obj/machinery/suit_cycler/medical, -/turf/simulated/floor/tiled, -/area/medical/paramedic) "rFn" = ( /turf/simulated/wall/r_wall, /area/rnd/xenobiology/xenoflora) @@ -38486,23 +38490,6 @@ }, /turf/simulated/floor/wood, /area/horizon/library) -"rPY" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/cyan{ - dir = 4 - }, -/obj/machinery/door/blast/regular{ - dir = 2; - id = "EngineEmitterPortWest"; - name = "Supermatter Reactor Waste Management Blast Door" - }, -/turf/simulated/floor/tiled/full, -/area/engineering/engine_waste) "rQf" = ( /obj/effect/floor_decal/spline/fancy/wood{ dir = 4 @@ -38897,11 +38884,6 @@ }, /turf/simulated/floor/tiled/white, /area/horizon/security/brig) -"rXm" = ( -/obj/effect/floor_decal/industrial/warning/full, -/obj/machinery/mech_recharger, -/turf/simulated/floor/tiled, -/area/medical/paramedic) "rXD" = ( /obj/structure/disposalpipe/segment, /obj/effect/floor_decal/corner/brown{ @@ -39203,6 +39185,10 @@ /obj/effect/floor_decal/industrial/hatch/yellow, /turf/simulated/floor/tiled/white, /area/rnd/xenobiology) +"sfG" = ( +/obj/structure/extinguisher_cabinet/east, +/turf/simulated/floor/tiled/dark, +/area/horizon/zat) "sgi" = ( /obj/structure/shuttle_part/scc_space_ship{ icon_state = "d3-6" @@ -39832,31 +39818,6 @@ /obj/machinery/door/firedoor, /turf/simulated/floor/tiled/full, /area/horizon/bar) -"sxl" = ( -/obj/structure/table/standard, -/obj/item/grenade/chem_grenade, -/obj/item/grenade/chem_grenade, -/obj/item/grenade/chem_grenade, -/obj/item/grenade/chem_grenade, -/obj/item/device/assembly/igniter, -/obj/item/device/assembly/igniter, -/obj/item/device/assembly/igniter, -/obj/item/device/assembly/igniter, -/obj/item/device/assembly/timer, -/obj/item/device/assembly/timer, -/obj/item/device/assembly/timer, -/obj/item/device/assembly/timer, -/obj/structure/closet/crate/drop/grey{ - desc = "A large, sturdy crate, that stores grenade components."; - name = "grenade crate"; - pixel_y = -4; - tablestatus = -1 - }, -/obj/effect/floor_decal/corner_wide/orange{ - dir = 10 - }, -/turf/simulated/floor/tiled/white, -/area/medical/pharmacy) "sxt" = ( /obj/effect/floor_decal/corner_wide/lime{ dir = 10 @@ -39949,12 +39910,6 @@ }, /turf/simulated/wall, /area/maintenance/aux_atmospherics/deck_2/starboard) -"sBy" = ( -/obj/structure/flora/ausbushes/sparsegrass, -/obj/machinery/portable_atmospherics/hydroponics/soil, -/obj/item/device/radio/intercom/west, -/turf/simulated/floor/grass, -/area/horizon/hydroponics/garden) "sBz" = ( /obj/structure/bed/stool/chair/office{ dir = 4 @@ -40464,6 +40419,17 @@ }, /turf/simulated/floor/tiled/white, /area/medical/ors) +"sQM" = ( +/obj/structure/table/standard, +/obj/effect/floor_decal/corner/mauve{ + dir = 1 + }, +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/centrifuge, +/turf/simulated/floor/tiled/white, +/area/rnd/lab) "sRe" = ( /obj/structure/cable/green{ icon_state = "1-2" @@ -40539,6 +40505,16 @@ }, /turf/simulated/floor/tiled, /area/operations/office) +"sTw" = ( +/obj/effect/floor_decal/corner/white/diagonal, +/obj/structure/bed/stool/chair/office/light{ + dir = 8 + }, +/obj/effect/floor_decal/industrial/warning/corner{ + dir = 1 + }, +/turf/simulated/floor/tiled, +/area/medical/paramedic) "sUa" = ( /obj/effect/floor_decal/corner/mauve{ dir = 5 @@ -40696,6 +40672,21 @@ }, /turf/simulated/open/airless, /area/horizon/exterior) +"sXa" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/structure/railing/mapped, +/obj/effect/floor_decal/corner/mauve/diagonal, +/obj/machinery/light/floor, +/obj/machinery/papershredder{ + pixel_x = 7 + }, +/obj/structure/filingcabinet/filingcabinet{ + pixel_x = -7 + }, +/turf/simulated/floor/tiled/white, +/area/rnd/lab) "sXb" = ( /obj/structure/railing/mapped{ dir = 4 @@ -40978,6 +40969,13 @@ }, /turf/simulated/floor/tiled/dark/full, /area/engineering/engine_room/rust) +"tbT" = ( +/obj/structure/table/standard, +/obj/item/storage/slimes, +/obj/machinery/recharger, +/obj/item/net_container, +/turf/simulated/floor/tiled/white, +/area/rnd/xenobiology) "tch" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/trash_pile, @@ -41022,6 +41020,20 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, /area/maintenance/substation/wing_starboard) +"tdo" = ( +/obj/effect/floor_decal/corner/white/diagonal, +/obj/structure/cable/green{ + icon_state = "0-2" + }, +/obj/machinery/power/apc/low/west, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, +/turf/simulated/floor/tiled, +/area/medical/paramedic) "tdv" = ( /obj/machinery/firealarm/south, /obj/effect/floor_decal/corner/dark_blue/full{ @@ -42026,6 +42038,30 @@ /obj/machinery/light/floor, /turf/simulated/floor/tiled/white, /area/rnd/xenobiology/hazardous) +"tDw" = ( +/obj/effect/floor_decal/corner/mauve{ + dir = 5 + }, +/obj/machinery/power/apc/high/north, +/obj/structure/cable/green{ + icon_state = "0-2" + }, +/obj/structure/table/standard, +/obj/machinery/reagentgrinder{ + pixel_x = 3; + pixel_y = 10 + }, +/obj/item/storage/box/slides{ + pixel_x = -5; + pixel_y = 5 + }, +/obj/item/reagent_containers/chem_disp_cartridge, +/obj/item/reagent_containers/chem_disp_cartridge, +/obj/item/reagent_containers/chem_disp_cartridge, +/obj/item/reagent_containers/chem_disp_cartridge, +/obj/item/reagent_containers/chem_disp_cartridge, +/turf/simulated/floor/tiled/dark, +/area/rnd/xenobiology/xenoflora) "tDZ" = ( /obj/effect/map_effect/window_spawner/full/reinforced/firedoor, /turf/simulated/floor/tiled/dark/full, @@ -42461,6 +42497,42 @@ }, /turf/simulated/floor/reinforced/airless, /area/horizon/exterior) +"tMt" = ( +/obj/effect/floor_decal/corner/white/diagonal, +/obj/structure/table/standard, +/obj/item/storage/belt/medical/paramedic, +/obj/item/storage/belt/medical/paramedic, +/obj/machinery/alarm/south, +/obj/item/device/radio{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/device/radio{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/device/radio{ + pixel_x = 5; + pixel_y = 6 + }, +/obj/item/device/radio{ + pixel_x = 5; + pixel_y = 6 + }, +/obj/machinery/vending/wallmed2{ + pixel_y = -29 + }, +/obj/item/device/gps/medical{ + pixel_x = 5 + }, +/obj/item/device/gps/medical{ + pixel_x = -7 + }, +/obj/machinery/requests_console/east{ + department = "Paramedic Bay" + }, +/turf/simulated/floor/tiled, +/area/medical/paramedic) "tMO" = ( /obj/structure/cable/orange{ icon_state = "4-8" @@ -42748,20 +42820,6 @@ }, /turf/simulated/floor/tiled/white, /area/rnd/xenobiology/foyer) -"tSC" = ( -/obj/item/reagent_containers/blood/OMinus, -/obj/item/reagent_containers/blood/sbs, -/obj/item/reagent_containers/blood/OMinus, -/obj/item/reagent_containers/blood/OMinus, -/obj/structure/closet/walllocker/medical/secure{ - name = "O- Blood Locker"; - pixel_y = 32 - }, -/turf/simulated/floor/tiled/freezer{ - name = "cold storage tiles"; - temperature = 278 - }, -/area/medical/surgery) "tSJ" = ( /obj/effect/floor_decal/corner/mauve{ dir = 5 @@ -43053,6 +43111,12 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/tiled/dark, /area/engineering/aft_airlock) +"uaR" = ( +/obj/structure/flora/ausbushes/sparsegrass, +/obj/machinery/portable_atmospherics/hydroponics/soil, +/obj/item/device/radio/intercom/west, +/turf/simulated/floor/grass, +/area/horizon/hydroponics/garden) "ubn" = ( /obj/effect/floor_decal/corner/pink/diagonal, /obj/machinery/light, @@ -43307,6 +43371,27 @@ /obj/machinery/optable, /turf/simulated/floor/tiled/white, /area/medical/ors) +"ugS" = ( +/obj/structure/table/stone/marble, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/item/material/kitchen/rollingpin{ + pixel_x = 6; + pixel_y = 10 + }, +/obj/item/material/knife{ + pixel_x = -9 + }, +/obj/item/storage/box/produce{ + pixel_x = 3; + pixel_y = -5 + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/kitchen) "ugU" = ( /obj/structure/bookcase/libraryspawn/reference, /turf/simulated/floor/carpet/brown, @@ -43773,6 +43858,12 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/tiled, /area/operations/lower/machinist/surgicalbay) +"uoM" = ( +/obj/machinery/portable_atmospherics/hydroponics/soil, +/obj/machinery/light, +/obj/structure/flora/ausbushes/sparsegrass, +/turf/simulated/floor/grass, +/area/horizon/hydroponics/garden) "uoU" = ( /obj/effect/floor_decal/industrial/warning{ dir = 5 @@ -44463,33 +44554,6 @@ }, /turf/simulated/floor/tiled/white, /area/medical/icu) -"uFm" = ( -/obj/machinery/alarm/south, -/obj/effect/floor_decal/corner/mauve{ - dir = 10 - }, -/obj/structure/table/standard, -/obj/machinery/reagentgrinder{ - pixel_x = -6; - pixel_y = 7 - }, -/obj/item/stack/material/phoron{ - pixel_y = 8 - }, -/obj/item/stack/material/phoron{ - pixel_y = 8 - }, -/obj/item/stack/material/phoron{ - pixel_y = 8 - }, -/obj/item/stack/material/phoron{ - pixel_y = 8 - }, -/obj/item/stack/material/phoron{ - pixel_y = 8 - }, -/turf/simulated/floor/tiled/white, -/area/rnd/xenobiology) "uFo" = ( /obj/machinery/door/window/holowindoor{ dir = 1 @@ -44782,23 +44846,20 @@ /obj/machinery/door/firedoor, /turf/simulated/floor/reinforced, /area/horizon/bar) -"uMM" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/blast/shutters{ - density = 0; - dir = 2; - icon_state = "shutter0"; - id = "LCKDshutters"; - name = "MedBay Lockdown Shutters"; - opacity = 0 +"uMu" = ( +/obj/item/reagent_containers/blood/OMinus, +/obj/item/reagent_containers/blood/sbs, +/obj/item/reagent_containers/blood/OMinus, +/obj/item/reagent_containers/blood/OMinus, +/obj/structure/closet/walllocker/medical/secure{ + name = "O- Blood Locker"; + pixel_y = 32 }, -/obj/machinery/door/airlock/glass_medical{ - dir = 4; - name = "Paramedic Quarters"; - req_access = list(67) +/turf/simulated/floor/tiled/freezer{ + name = "cold storage tiles"; + temperature = 278 }, -/turf/simulated/floor/tiled/full, -/area/medical/paramedic) +/area/medical/surgery) "uMT" = ( /obj/effect/floor_decal/spline/fancy/wood{ dir = 10 @@ -45166,25 +45227,6 @@ }, /turf/simulated/floor/plating, /area/maintenance/research_port) -"uUT" = ( -/obj/structure/cable/green{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/effect/floor_decal/corner/white/diagonal, -/obj/machinery/door/airlock/glass_medical{ - dir = 4; - name = "Paramedic Quarters"; - req_access = list(67) - }, -/obj/machinery/door/firedoor, -/turf/simulated/floor/tiled, -/area/medical/paramedic) "uVi" = ( /obj/effect/floor_decal/industrial/warning, /obj/structure/lattice/catwalk/indoor/grate, @@ -45315,15 +45357,6 @@ }, /turf/simulated/floor/wood, /area/horizon/library) -"uZt" = ( -/obj/machinery/power/terminal{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable/yellow, -/turf/simulated/floor/tiled/dark, -/area/engineering/smes/rust) "uZD" = ( /obj/effect/floor_decal/industrial/hatch/yellow, /obj/machinery/door/firedoor, @@ -45401,6 +45434,12 @@ /obj/structure/lattice/catwalk/indoor/grate, /turf/simulated/floor/plating, /area/security/checkpoint2) +"vbY" = ( +/obj/effect/floor_decal/corner/white/diagonal, +/obj/structure/table/standard, +/obj/structure/roller_rack/two, +/turf/simulated/floor/tiled, +/area/medical/paramedic) "vcv" = ( /obj/effect/floor_decal/corner/white{ dir = 5 @@ -45606,15 +45645,6 @@ /obj/structure/extinguisher_cabinet/east, /turf/simulated/floor/tiled/dark/full, /area/rnd/chemistry) -"vgs" = ( -/obj/effect/floor_decal/industrial/warning, -/obj/structure/railing/mapped, -/obj/machinery/atmospherics/portables_connector{ - dir = 1 - }, -/obj/effect/floor_decal/industrial/outline/yellow, -/turf/simulated/floor/tiled/dark/full, -/area/engineering/engine_room/rust) "vgt" = ( /obj/structure/disposaloutlet{ dir = 1; @@ -46269,6 +46299,18 @@ "vyP" = ( /turf/simulated/floor/carpet/brown, /area/horizon/library) +"vzd" = ( +/obj/machinery/door/blast/shutters{ + density = 0; + dir = 4; + icon_state = "shutter0"; + id = "LCKDshutters"; + name = "MedBay Lockdown Shutters"; + opacity = 0 + }, +/obj/effect/map_effect/window_spawner/full/reinforced/firedoor, +/turf/simulated/floor/tiled/dark/full, +/area/medical/paramedic) "vzv" = ( /obj/structure/platform{ dir = 1 @@ -46332,6 +46374,36 @@ /obj/structure/lattice/catwalk/indoor/grate, /turf/simulated/floor/plating, /area/horizon/maintenance/deck_two/fore/starboard) +"vBf" = ( +/obj/machinery/alarm/south, +/obj/effect/floor_decal/corner/mauve{ + dir = 10 + }, +/obj/structure/table/standard, +/obj/machinery/reagentgrinder{ + pixel_x = -6; + pixel_y = 7 + }, +/obj/item/stack/material/phoron{ + pixel_y = 8 + }, +/obj/item/stack/material/phoron{ + pixel_y = 8 + }, +/obj/item/stack/material/phoron{ + pixel_y = 8 + }, +/obj/item/stack/material/phoron{ + pixel_y = 8 + }, +/obj/item/stack/material/phoron{ + pixel_y = 8 + }, +/obj/item/storage/box/fancy/vials{ + pixel_x = 10 + }, +/turf/simulated/floor/tiled/white, +/area/rnd/xenobiology) "vBn" = ( /obj/structure/table/standard, /obj/effect/floor_decal/corner_wide/paleblue/full, @@ -46902,20 +46974,6 @@ /obj/structure/lattice/catwalk/indoor/grate, /turf/simulated/floor/plating, /area/maintenance/wing/starboard/far) -"vNL" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9 - }, -/obj/structure/window/reinforced{ - name = "adjusted reinforced window" - }, -/obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ - pixel_x = 1; - pixel_y = 3 - }, -/turf/simulated/floor/carpet, -/area/horizon/bar/backroom) "vNQ" = ( /turf/simulated/wall, /area/horizon/bar/backroom) @@ -47307,6 +47365,24 @@ /obj/random/loot, /turf/simulated/floor/tiled/dark, /area/maintenance/aux_atmospherics/deck_2/starboard) +"vVz" = ( +/obj/machinery/camera/network/research{ + c_tag = "Research - Xenobiology Fore"; + dir = 1 + }, +/obj/effect/floor_decal/corner/mauve{ + dir = 10 + }, +/obj/structure/table/standard, +/obj/machinery/firealarm/south, +/obj/machinery/vending/wallmed1{ + pixel_y = -32 + }, +/obj/machinery/microscope/science{ + pixel_y = 8 + }, +/turf/simulated/floor/tiled/white, +/area/rnd/xenobiology) "vVF" = ( /obj/machinery/disposal/deliveryChute{ dir = 4 @@ -47386,43 +47462,6 @@ /obj/structure/lattice/catwalk/indoor/grate, /turf/simulated/floor/plating, /area/maintenance/security_port) -"vXB" = ( -/obj/machinery/camera/network/research{ - c_tag = "Research - Xenobiology Fore"; - dir = 1 - }, -/obj/effect/floor_decal/corner/mauve{ - dir = 10 - }, -/obj/structure/table/standard, -/obj/item/device/slime_scanner{ - pixel_x = -11; - pixel_y = 4 - }, -/obj/item/device/slime_scanner{ - pixel_x = -11; - pixel_y = 4 - }, -/obj/item/reagent_containers/glass/beaker{ - pixel_y = 8 - }, -/obj/item/reagent_containers/glass/beaker{ - pixel_y = 8 - }, -/obj/item/storage/box/syringes{ - pixel_x = 5; - pixel_y = 1 - }, -/obj/item/storage/box/syringes{ - pixel_x = 5; - pixel_y = 1 - }, -/obj/machinery/firealarm/south, -/obj/machinery/vending/wallmed1{ - pixel_y = -32 - }, -/turf/simulated/floor/tiled/white, -/area/rnd/xenobiology) "vXX" = ( /obj/machinery/light/small{ dir = 1 @@ -48610,6 +48649,24 @@ }, /turf/simulated/floor/tiled/dark/full, /area/engineering/engine_room/rust) +"wvZ" = ( +/obj/structure/table/standard, +/obj/effect/floor_decal/corner_wide/green/full, +/obj/machinery/alarm/west, +/obj/item/storage/box/masks, +/obj/item/storage/box/masks, +/obj/item/storage/box/gloves{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/storage/box/gloves{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/structure/railing/mapped, +/obj/structure/stairs_lower/stairs_upper, +/turf/simulated/floor/tiled/white, +/area/hallway/medical) "wwa" = ( /obj/structure/cable{ icon_state = "4-8" @@ -49319,6 +49376,27 @@ }, /turf/simulated/open, /area/horizon/hydroponics) +"wOX" = ( +/obj/machinery/light, +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/structure/table/rack, +/obj/item/storage/box/monkeycubes, +/obj/item/storage/box/monkeycubes, +/obj/item/storage/box/monkeycubes, +/obj/item/storage/box/monkeycubes, +/obj/item/reagent_containers/spray/chemsprayer/xenobiology, +/obj/item/reagent_containers/spray/chemsprayer/xenobiology, +/obj/item/melee/baton/slime{ + pixel_x = 3; + pixel_y = -1 + }, +/obj/item/melee/baton/slime{ + pixel_x = 3; + pixel_y = -1 + }, +/obj/item/sampler, +/turf/simulated/floor/tiled/white, +/area/rnd/xenobiology) "wPb" = ( /obj/machinery/hologram/holopad, /turf/simulated/floor/reinforced, @@ -50073,6 +50151,14 @@ }, /turf/simulated/wall/shuttle/scc_space_ship/cardinal, /area/maintenance/wing/starboard/far) +"xhu" = ( +/obj/machinery/body_scanconsole{ + dir = 1; + pixel_y = 6 + }, +/obj/effect/floor_decal/corner/beige/full, +/turf/simulated/floor/tiled/dark, +/area/medical/gen_treatment) "xhP" = ( /obj/machinery/door/airlock/external{ dir = 1; @@ -50354,11 +50440,6 @@ /obj/machinery/light, /turf/simulated/floor/tiled/dark, /area/horizon/crew_quarters/lounge/bar) -"xmt" = ( -/obj/machinery/portable_atmospherics/hydroponics/soil, -/obj/structure/flora/ausbushes/sparsegrass, -/turf/simulated/floor/grass, -/area/horizon/hydroponics/garden) "xmw" = ( /obj/machinery/alarm/east, /obj/effect/floor_decal/corner/dark_green/full{ @@ -50763,6 +50844,16 @@ }, /turf/simulated/floor/tiled, /area/rnd/hallway) +"xyt" = ( +/obj/effect/floor_decal/corner/white/diagonal, +/obj/effect/floor_decal/industrial/warning/corner{ + dir = 8 + }, +/obj/effect/floor_decal/industrial/warning{ + dir = 1 + }, +/turf/simulated/floor/tiled, +/area/medical/paramedic) "xzd" = ( /obj/effect/floor_decal/corner/mauve/full, /turf/simulated/floor/tiled/white, @@ -50899,14 +50990,6 @@ }, /turf/simulated/open, /area/operations/office) -"xBN" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/closet/secure_closet/medical_para, -/obj/item/defibrillator/compact/loaded, -/turf/simulated/floor/tiled, -/area/medical/paramedic) "xBU" = ( /obj/effect/floor_decal/industrial/outline/engineering, /obj/structure/closet/secure_closet/atmos_personal, @@ -51554,14 +51637,6 @@ }, /turf/simulated/floor/plating, /area/engineering/engine_room) -"xQp" = ( -/obj/machinery/door/blast/regular{ - dir = 2; - id = "EngineEmitterPortWest"; - name = "Supermatter Reactor Waste Management Blast Door" - }, -/turf/simulated/floor/tiled/full, -/area/engineering/engine_waste) "xQz" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on, /turf/simulated/floor/tiled, @@ -51805,27 +51880,16 @@ }, /turf/simulated/floor/tiled, /area/operations/lobby) -"xWa" = ( -/obj/item/rig/medical/equipped{ - pixel_x = 4; - pixel_y = 5 +"xVW" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/hatch{ + locked = 1; + name = "INDRA Reactor Core Access"; + req_one_access = list(11,24) }, -/obj/item/rig/medical/equipped{ - pixel_x = -5; - pixel_y = 5 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/table/rack{ - pixel_y = 5 - }, -/obj/machinery/door/window/southleft, -/turf/simulated/floor/tiled, -/area/medical/paramedic) +/obj/effect/floor_decal/industrial/hatch/yellow, +/turf/simulated/floor/tiled/dark/full, +/area/engineering/engine_room/rust) "xWb" = ( /obj/effect/map_effect/window_spawner/full/reinforced/firedoor, /obj/machinery/door/blast/shutters/open{ @@ -51899,24 +51963,6 @@ }, /turf/simulated/floor/wood, /area/horizon/bar) -"xXM" = ( -/obj/effect/floor_decal/corner/mauve{ - dir = 5 - }, -/obj/effect/floor_decal/corner/white{ - dir = 10 - }, -/obj/structure/cable/green{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/table/standard, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 6 - }, -/turf/simulated/floor/tiled/dark, -/area/rnd/xenobiology/xenoflora) "xXN" = ( /obj/structure/platform{ dir = 8 @@ -52175,16 +52221,6 @@ /obj/effect/floor_decal/industrial/warning/corner, /turf/simulated/floor/plating, /area/maintenance/wing/starboard) -"yci" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on, -/obj/machinery/status_display{ - pixel_y = 32 - }, -/obj/effect/floor_decal/corner/dark_blue{ - dir = 5 - }, -/turf/simulated/floor/tiled, -/area/horizon/security/hallway) "yct" = ( /obj/random/pottedplant, /obj/machinery/light{ @@ -61487,7 +61523,7 @@ wRu quT pag tNq -llB +gnE cjX uBx xHq @@ -66712,7 +66748,7 @@ atK oXY axB dKR -jeY +jOC rTP xGM rTP @@ -66924,7 +66960,7 @@ pzr iNY jlQ bOV -kUc +wvZ nkK nIi iuP @@ -67352,7 +67388,7 @@ mwH dmD wUU hmK -aSd +pHd qqK hoZ blJ @@ -67924,7 +67960,7 @@ sMn vvh fsf xhj -quV +aSD oJL fHq fQV @@ -68328,7 +68364,7 @@ qek kxP lfF xhj -tSC +uMu nMp uUJ bYB @@ -68563,7 +68599,7 @@ fol bsM uEu oKE -jpf +rcC vYI lCF xVu @@ -69558,7 +69594,7 @@ kFD pVz aUh kFD -sxl +pnu wEc hEF hBL @@ -69916,13 +69952,13 @@ tNa gsz gsz gsz -rPY -xQp -xQp -jfp -xQp -xQp -jfp +qQm +ayO +ayO +jWL +ayO +ayO +jWL gsz gsz gsz @@ -70152,7 +70188,7 @@ jUB xQB vTY dLo -cGJ +xhu axJ pJt hQb @@ -70374,7 +70410,7 @@ vXs pef oMC oMC -akX +bId mIS gVn wmp @@ -71161,7 +71197,7 @@ aQp wyV bNF ptC -dPi +gbR jnO uRz wUs @@ -71358,12 +71394,12 @@ fKi xxi dpG sYl -oUt -oUt -oUt -oUt -oUt -uUT +eac +eac +eac +eac +eac +egQ ruV ruV ruV @@ -71560,17 +71596,17 @@ fKi xxi isH akn -oUt -xWa -auU -aIy -aOs -aTm +eac +pPV +apI +nIL +tdo +kgE ruV bZD tao xSU -oAy +cDC ruV vTJ taX @@ -71762,12 +71798,12 @@ mhj xxi isH amk -oUt -xBN -ohE -aME -aQu -aTt +eac +kMM +qGr +iOb +ptx +gHu ruV cua fAk @@ -71796,7 +71832,7 @@ pjQ wVT vNQ aib -vNL +ilq uZh nxI uws @@ -71964,12 +72000,12 @@ fKi nbJ isH akn -oUt -auj -axS -rXm -avl -aZR +eac +naR +rzw +qoc +mtl +vbY ruV jBw fAk @@ -72166,12 +72202,12 @@ wSp way vWt sYl -oUt -rEY -qZM -fdE -oXf -bdy +eac +nDI +xyt +mzN +sTw +tMt ruV kiJ jeP @@ -72368,12 +72404,12 @@ oWB nbJ uMn uKJ -oUt -oUt -uMM -oUt -okq -oUt +eac +eac +fta +eac +vzd +eac ruV ruV lOO @@ -73021,7 +73057,7 @@ oNv xtu hIq mOH -oCG +mvg ucY bTz srq @@ -73408,10 +73444,10 @@ hGj nVX cSi xOo -rAn +jDG nfN uSv -sBy +uaR dvw gmt buz @@ -73610,10 +73646,10 @@ mHh slm uZs vCa -xmt +aps wCt buG -eAX +kMf hPC euT gAP @@ -73812,10 +73848,10 @@ hTT slm sOu vCa -xmt +aps bCV jRO -xmt +aps hPC oTR giw @@ -73969,7 +74005,7 @@ jFu ulg fnn fnn -kyV +cLa pFx abR gAt @@ -74014,10 +74050,10 @@ tPJ oqN bQt xOo -gFc +oGW jqQ qnl -mBk +uoM dvw gsh jDa @@ -74216,10 +74252,10 @@ xuj gXb xOo xOo -fwE +arl bTM hTt -xmt +aps dvw mjl mXh @@ -74435,9 +74471,9 @@ lSH fMQ hLJ cUR -rxC +ugS dJV -qVw +dsc tIB tjS tjS @@ -74588,7 +74624,7 @@ hDr jdH aUB yjZ -qJr +rgy rCd dRN dJh @@ -75624,7 +75660,7 @@ tGX gMA sIR efA -eEr +cai tfL kFa vuo @@ -75985,7 +76021,7 @@ mPh wsL pbN fZI -uZt +pmY iwu xvZ wfD @@ -76786,9 +76822,9 @@ rkO uoY rkO tOr -lui -qPf -vgs +pva +pxA +dHo iHo ums gVl @@ -76828,7 +76864,7 @@ ayF ayF ayF hnD -msO +jjs upE fpQ drk @@ -76988,7 +77024,7 @@ aBY hdo gzr ubz -rbr +xVW cBq sSE tFH @@ -77208,10 +77244,10 @@ gcS tyd sVn xee -fan -iSn -fmV -fGi +cfB +jpT +clh +sQM ouk hKB aTd @@ -77392,7 +77428,7 @@ qZl uoY omA ubz -rbr +xVW wVn tbQ nzn @@ -77410,7 +77446,7 @@ nOJ lHx wZw jEM -jDU +eHt jim fnh vQd @@ -77594,9 +77630,9 @@ fJI hdo fJI uUa -lui -qPf -iKQ +pva +pxA +klk eoh aCU gVl @@ -78223,7 +78259,7 @@ hSU rRh eZp jim -kyR +sXa cer dEb upt @@ -78625,7 +78661,7 @@ uGW rAi rAi iUg -pPA +pQf jim jES jeb @@ -78852,7 +78888,7 @@ hps hps hps hps -yci +eGO vtf wLk qDh @@ -80028,7 +80064,7 @@ bqe bff bqe mHH -mHM +ciA iEB fyU aWs @@ -82059,8 +82095,8 @@ aAx yeY rFn rFn -lvl -xXM +tDw +iVf fZU nfK mPn @@ -83495,7 +83531,7 @@ qsw wgI qsw qsw -qDD +nZH iwo rkv tXR @@ -83691,13 +83727,13 @@ iwo qVH ool qsw -gmE +tbT vQJ -pPM +wOX aoD wye vht -uFm +vBf iwo lvq eXU @@ -83899,7 +83935,7 @@ qsw vmO qsw qsw -vXB +vVz iwo ryu aru @@ -84101,7 +84137,7 @@ sfr fPb aax sfr -cJU +qTK iwo ryu tch @@ -88339,7 +88375,7 @@ jsR nLg aPN aPN -hkt +sfG yjr aPN rdZ @@ -88755,7 +88791,7 @@ ozr qgr rCG aPN -ebm +bZc tFK ofb nOi