From 139d11a041ca6301a376d1b13d814f19a5c51520 Mon Sep 17 00:00:00 2001 From: Jerry <55355646+Jewelry-x@users.noreply.github.com> Date: Sat, 12 Oct 2024 18:15:45 +0300 Subject: [PATCH 001/103] Better ghost tray scan (#87143) ## About The Pull Request Partially improves: * #46002 Previously, the ghost's "t-ray view" acted as a toggle, even though the scan only occurred once. This PR changes it to function as an action rather than a toggle, removing the need to press the button twice. While the ideal solution would be for the t-ray scan to work on the process tick, my attempt to give ghosts their own t-ray scanner and to toggle it on upon using the verb did not work as expected because the scanner didn't recognize the ghost as its holder (`mob/viewer` in the code). This update serves as an improvement to the current behaviour, but in the future, the t-ray scan verb should function like a normal t-ray scanner, instead of just a one-time scan. ## Why It's Good For The Game Improves the t-ray verb, before it acted as a toggle even though it only worked once upon toggling on. Improves user experience using this verb. ## Changelog :cl: fix: the ghost "t-ray view" no longer requires a double press to activate a second time. qol: renamed "t-ray view" to "t-ray scan" for clarity. /:cl: --- code/modules/mob/dead/observer/observer.dm | 27 ++++------------------ 1 file changed, 5 insertions(+), 22 deletions(-) diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 52505b98866..995a9d0ea34 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -1075,31 +1075,14 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp /mob/dead/observer/proc/tray_view() set category = "Ghost" - set name = "T-ray view" - set desc = "Toggles a view of sub-floor objects" + set name = "T-ray scan" + set desc = "Perfom a scan to view sub-floor objects" - var/static/t_ray_view = FALSE - if(SSlag_switch.measures[DISABLE_GHOST_ZOOM_TRAY] && !client?.holder && !t_ray_view) + if(SSlag_switch.measures[DISABLE_GHOST_ZOOM_TRAY] && !client?.holder) to_chat(usr, span_notice("That verb is currently globally disabled.")) return - t_ray_view = !t_ray_view - - var/list/t_ray_images = list() - var/static/list/stored_t_ray_images = list() - for(var/obj/O in orange(client.view, src) ) - if(HAS_TRAIT(O, TRAIT_T_RAY_VISIBLE)) - var/image/I = new(loc = get_turf(O)) - var/mutable_appearance/MA = new(O) - MA.alpha = 128 - MA.dir = O.dir - I.appearance = MA - t_ray_images += I - stored_t_ray_images += t_ray_images - if(length(t_ray_images)) - if(t_ray_view) - client.images += t_ray_images - else - client.images -= stored_t_ray_images + + t_ray_scan(src) /mob/dead/observer/default_lighting_cutoff() var/datum/preferences/prefs = client?.prefs From 7cf014601abaa2b5c62f6f39b1550a5de153f6ea Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sat, 12 Oct 2024 15:16:05 +0000 Subject: [PATCH 002/103] Automatic changelog for PR #87143 [ci skip] --- html/changelogs/AutoChangeLog-pr-87143.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87143.yml diff --git a/html/changelogs/AutoChangeLog-pr-87143.yml b/html/changelogs/AutoChangeLog-pr-87143.yml new file mode 100644 index 00000000000..10696da59b6 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87143.yml @@ -0,0 +1,5 @@ +author: "Jewelry-x" +delete-after: True +changes: + - bugfix: "the ghost \"t-ray view\" no longer requires a double press to activate a second time." + - qol: "renamed \"t-ray view\" to \"t-ray scan\" for clarity." \ No newline at end of file From c5406afcd6f83c68f51b8002aab6d112d23c93dd Mon Sep 17 00:00:00 2001 From: Striders13 <53361823+Striders13@users.noreply.github.com> Date: Sat, 12 Oct 2024 22:26:59 +0530 Subject: [PATCH 003/103] Removes gas mask fov, pepperspray now applies tint to masks until washed off (#87102) Gas masks and all their subtypes no longer have fov. Using pepperspray on gas mask wearer applies 1 tint per 5u of spray. At 3 tint the wearer becomes fully blind. If you wanna use the mask again you'll have to wash off the pepperspray from it using soap or shower. Gas mask assistants are peak soul and removing it was a terrible disaster. FoV is too annoying to ever deal with, so it ends up with gas masks never being worn. Gas filter doesn't make up for it whatsoever, it's only use is shoving cigarettes in it to look cool. This PR makes it so pepperspray/tear gas is still useful against mask wearers, albeit less efficient. --- code/datums/components/clothing_dirt.dm | 88 +++++++++++++++++++ .../antagonists/ninja/ninja_clothing.dm | 3 +- code/modules/clothing/masks/gasmask.dm | 28 ++---- code/modules/clothing/masks/hailer.dm | 2 +- .../modules/mining/equipment/explorer_gear.dm | 1 - .../modules/clothing/masks/gasmask.dm | 2 - .../disable_worn_fov/code/worn_items.dm | 3 - tgstation.dme | 1 + 8 files changed, 98 insertions(+), 30 deletions(-) create mode 100644 code/datums/components/clothing_dirt.dm diff --git a/code/datums/components/clothing_dirt.dm b/code/datums/components/clothing_dirt.dm new file mode 100644 index 00000000000..40f0ddb07e2 --- /dev/null +++ b/code/datums/components/clothing_dirt.dm @@ -0,0 +1,88 @@ +/// This component applies tint to clothing when its exposed to pepperspray, used in /obj/item/clothing/mask/gas. + +/datum/component/clothing_dirt + /// Amount of dirt stacks on the clothing + var/dirtiness = 0 + +/datum/component/clothing_dirt/Initialize() + if(!isclothing(parent)) + return COMPONENT_INCOMPATIBLE + +/datum/component/clothing_dirt/RegisterWithParent() + RegisterSignal(parent, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine)) + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equip)) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(on_drop)) + RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(on_clean)) + RegisterSignal(parent, COMSIG_ATOM_EXPOSE_REAGENTS, PROC_REF(on_expose), TRUE) + +/datum/component/clothing_dirt/UnregisterFromParent() + var/obj/item/clothing/clothing = parent + clothing.tint -= dirtiness + if(iscarbon(clothing.loc)) + var/mob/living/carbon/wearer = clothing.loc + wearer.update_tint() + UnregisterSignal(wearer, COMSIG_ATOM_EXPOSE_REAGENTS) + else + UnregisterSignal(parent, COMSIG_ATOM_EXPOSE_REAGENTS) + UnregisterSignal(parent, list( + COMSIG_ATOM_EXAMINE, + COMSIG_ITEM_EQUIPPED, + COMSIG_MOB_UNEQUIPPED_ITEM, + COMSIG_COMPONENT_CLEAN_ACT, + )) + return ..() + +/datum/component/clothing_dirt/proc/on_equip(datum/source, mob/user, slot) + SIGNAL_HANDLER + var/obj/item/clothing/clothing = parent + if (!(slot & clothing.slot_flags)) + return + UnregisterSignal(parent, COMSIG_ATOM_EXPOSE_REAGENTS) + RegisterSignal(user, COMSIG_ATOM_EXPOSE_REAGENTS, PROC_REF(on_expose), TRUE) + +/datum/component/clothing_dirt/proc/on_drop(datum/source, mob/holder) + SIGNAL_HANDLER + UnregisterSignal(holder, COMSIG_ATOM_EXPOSE_REAGENTS) + RegisterSignal(parent, COMSIG_ATOM_EXPOSE_REAGENTS, PROC_REF(on_expose), TRUE) + +/datum/component/clothing_dirt/proc/on_examine(datum/source, mob/user, list/examine_list) + SIGNAL_HANDLER + if (dirtiness > 0) + examine_list += span_warning("It appears to be covered in some oily substance. Won't see much while wearing it until you wash it off.") + +/datum/component/clothing_dirt/proc/on_expose(atom/target, list/reagents, datum/reagents/source, methods) + SIGNAL_HANDLER + + var/mob/living/carbon/wearer + if(iscarbon(target)) + wearer = target + if(is_protected(wearer)) + return + + var/datum/reagent/consumable/condensedcapsaicin/pepper = locate() in reagents + if(isnull(pepper)) + return + + var/obj/item/clothing/clothing = parent + if (methods & (TOUCH | VAPOR)) + clothing.tint -= dirtiness + dirtiness = min(dirtiness + round(reagents[pepper] / 5), 3) + clothing.tint += dirtiness + if(!isnull(wearer)) + wearer.update_tint() + +/datum/component/clothing_dirt/proc/is_protected(mob/living/carbon/wearer) + return wearer.head && (wearer.head.flags_cover & PEPPERPROOF) + +/datum/component/clothing_dirt/proc/on_clean(datum/target, clean_types) + SIGNAL_HANDLER + var/obj/item/clothing/clothing = parent + var/mob/living/carbon/wearer + if(iscarbon(clothing.loc)) + wearer = clothing.loc + + if (clean_types & (CLEAN_WASH|CLEAN_SCRUB)) + clothing.tint -= dirtiness + dirtiness = 0 + if(!isnull(wearer)) + wearer.update_tint() diff --git a/code/modules/antagonists/ninja/ninja_clothing.dm b/code/modules/antagonists/ninja/ninja_clothing.dm index 54ed46c9c3e..4eaf40f9c79 100644 --- a/code/modules/antagonists/ninja/ninja_clothing.dm +++ b/code/modules/antagonists/ninja/ninja_clothing.dm @@ -15,7 +15,8 @@ resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF flags_inv = HIDEFACIALHAIR | HIDEFACE | HIDESNOUT flags_cover = MASKCOVERSMOUTH | PEPPERPROOF - has_fov = FALSE + pepper_tint = FALSE + /obj/item/clothing/under/syndicate/ninja name = "ninja suit" diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 92e61f59d30..82b6fb1b90d 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -25,19 +25,21 @@ GLOBAL_LIST_INIT(clown_mask_options, list( var/list/gas_filters ///Type of filter that spawns on roundstart var/starting_filter_type = /obj/item/gas_filter - ///Does the mask have an FOV? - var/has_fov = TRUE ///Cigarette in the mask var/obj/item/cigarette/cig ///How much does this mask affect fishing difficulty var/fishing_modifier = 2 + ///Applies clothing_dirt component to the pepperproof mask if true + var/pepper_tint = TRUE /datum/armor/mask_gas bio = 100 /obj/item/clothing/mask/gas/Initialize(mapload) . = ..() - init_fov() + + if((flags_cover & PEPPERPROOF) && pepper_tint) + AddComponent(/datum/component/clothing_dirt) if(fishing_modifier) AddComponent(/datum/component/adjust_fishing_difficulty, fishing_modifier) @@ -160,11 +162,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list( has_filter = FALSE return filtered_breath -/// Initializes the FoV component for the gas mask -/obj/item/clothing/mask/gas/proc/init_fov() - if (has_fov) - AddComponent(/datum/component/clothing_fov_visor, FOV_90_DEGREES) - /** * Getter for overall filter durability, takes into consideration all filters filter_status */ @@ -267,7 +264,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list( icon_state = "plaguedoctor" flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR|HIDESNOUT|HIDEHAIR inhand_icon_state = "gas_mask" - has_fov = FALSE clothing_flags = BLOCK_GAS_SMOKE_EFFECT|MASKINTERNALS /obj/item/clothing/mask/gas/syndicate @@ -278,8 +274,8 @@ GLOBAL_LIST_INIT(clown_mask_options, list( resistance_flags = FIRE_PROOF | ACID_PROOF strip_delay = 60 w_class = WEIGHT_CLASS_SMALL - has_fov = FALSE fishing_modifier = 0 + pepper_tint = FALSE /obj/item/clothing/mask/gas/clown_hat name = "clown wig and mask" @@ -296,7 +292,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list( resistance_flags = FLAMMABLE actions_types = list(/datum/action/item_action/adjust) dog_fashion = /datum/dog_fashion/head/clown - has_fov = FALSE var/list/clownmask_designs = list() voice_filter = null // performer masks expect to be talked through fishing_modifier = 0 @@ -341,7 +336,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list( righthand_file = 'icons/mob/inhands/clothing/hats_righthand.dmi' flags_cover = MASKCOVERSEYES resistance_flags = FLAMMABLE - has_fov = FALSE fishing_modifier = 0 /obj/item/clothing/mask/gas/mime @@ -355,7 +349,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list( resistance_flags = FLAMMABLE actions_types = list(/datum/action/item_action/adjust) species_exception = list(/datum/species/golem) - has_fov = FALSE fishing_modifier = 0 var/list/mimemask_designs = list() @@ -414,7 +407,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list( inhand_icon_state = "owl_mask" flags_cover = MASKCOVERSEYES resistance_flags = FLAMMABLE - has_fov = FALSE fishing_modifier = 0 /obj/item/clothing/mask/gas/sexymime @@ -426,7 +418,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list( flags_cover = MASKCOVERSEYES resistance_flags = FLAMMABLE species_exception = list(/datum/species/golem) - has_fov = FALSE fishing_modifier = 0 /obj/item/clothing/mask/gas/cyborg @@ -434,7 +425,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list( desc = "Beep boop." icon_state = "death" resistance_flags = FLAMMABLE - has_fov = FALSE flags_cover = MASKCOVERSEYES fishing_modifier = 0 @@ -446,7 +436,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list( clothing_flags = MASKINTERNALS flags_cover = MASKCOVERSEYES resistance_flags = FLAMMABLE - has_fov = FALSE fishing_modifier = -1 /obj/item/clothing/mask/gas/carp @@ -454,7 +443,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list( desc = "Gnash gnash." icon_state = "carp_mask" inhand_icon_state = null - has_fov = FALSE flags_cover = MASKCOVERSEYES fishing_modifier = -3 @@ -465,7 +453,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list( inhand_icon_state = null custom_materials = list(/datum/material/wood = SHEET_MATERIAL_AMOUNT * 1.25) resistance_flags = FLAMMABLE - has_fov = FALSE flags_cover = MASKCOVERSEYES max_integrity = 100 actions_types = list(/datum/action/item_action/adjust) @@ -512,7 +499,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list( inhand_icon_state = "gas_atmos" resistance_flags = FIRE_PROOF | ACID_PROOF flags_inv = HIDEFACIALHAIR|HIDEFACE|HIDEEYES|HIDEEARS|HIDEHAIR|HIDESNOUT - has_fov = FALSE fishing_modifier = -2 /obj/item/clothing/mask/gas/prop @@ -523,7 +509,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list( clothing_flags = NONE flags_cover = MASKCOVERSMOUTH resistance_flags = FLAMMABLE - has_fov = FALSE fishing_modifier = 0 /obj/item/clothing/mask/gas/atmosprop @@ -535,7 +520,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list( clothing_flags = NONE flags_cover = MASKCOVERSMOUTH resistance_flags = FLAMMABLE - has_fov = FALSE fishing_modifier = 0 /obj/item/clothing/mask/gas/driscoll diff --git a/code/modules/clothing/masks/hailer.dm b/code/modules/clothing/masks/hailer.dm index aee1ac17b1b..182bc3ace76 100644 --- a/code/modules/clothing/masks/hailer.dm +++ b/code/modules/clothing/masks/hailer.dm @@ -56,7 +56,6 @@ GLOBAL_LIST_INIT(hailer_phrases, list( flags_cover = MASKCOVERSMOUTH visor_flags_cover = MASKCOVERSMOUTH tint = 0 - has_fov = FALSE fishing_modifier = 0 unique_death = 'sound/items/sec_hailer/sec_death.ogg' COOLDOWN_DECLARE(hailer_cooldown) @@ -88,6 +87,7 @@ GLOBAL_LIST_INIT(hailer_phrases, list( flags_cover = MASKCOVERSMOUTH | MASKCOVERSEYES | PEPPERPROOF visor_flags_cover = MASKCOVERSMOUTH | MASKCOVERSEYES | PEPPERPROOF fishing_modifier = 2 + pepper_tint = FALSE /obj/item/clothing/mask/gas/sechailer/swat/spacepol name = "spacepol mask" diff --git a/code/modules/mining/equipment/explorer_gear.dm b/code/modules/mining/equipment/explorer_gear.dm index cc8cba654dd..c2dffd37ee5 100644 --- a/code/modules/mining/equipment/explorer_gear.dm +++ b/code/modules/mining/equipment/explorer_gear.dm @@ -61,7 +61,6 @@ actions_types = list(/datum/action/item_action/adjust) armor_type = /datum/armor/gas_explorer resistance_flags = FIRE_PROOF - has_fov = FALSE /datum/armor/gas_explorer melee = 10 diff --git a/modular_nova/modules/customization/modules/clothing/masks/gasmask.dm b/modular_nova/modules/customization/modules/clothing/masks/gasmask.dm index 3ee77992e0d..58024b8b8a1 100644 --- a/modular_nova/modules/customization/modules/clothing/masks/gasmask.dm +++ b/modular_nova/modules/customization/modules/clothing/masks/gasmask.dm @@ -55,7 +55,6 @@ clothing_flags = MASKINTERNALS flags_cover = MASKCOVERSEYES resistance_flags = FLAMMABLE - has_fov = FALSE greyscale_config = /datum/greyscale_config/clown_mask greyscale_config_worn = /datum/greyscale_config/clown_mask/worn greyscale_colors = "#FFFFFF#F20018#0000FF#00CC00" @@ -80,7 +79,6 @@ icon_state = "respirator" inhand_icon_state = "sechailer" w_class = WEIGHT_CLASS_SMALL - has_fov = FALSE clothing_flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS flags_inv = HIDEFACIALHAIR|HIDESNOUT flags_cover = MASKCOVERSMOUTH diff --git a/modular_nova/modules/disable_worn_fov/code/worn_items.dm b/modular_nova/modules/disable_worn_fov/code/worn_items.dm index 4739ecec29b..eeacbe869cd 100644 --- a/modular_nova/modules/disable_worn_fov/code/worn_items.dm +++ b/modular_nova/modules/disable_worn_fov/code/worn_items.dm @@ -1,6 +1,3 @@ /obj/item/clothing/head/bio_hood/Initialize(mapload) . = ..() qdel(GetComponent(/datum/component/clothing_fov_visor)) - -/obj/item/clothing/mask/gas/ - has_fov = FALSE diff --git a/tgstation.dme b/tgstation.dme index 0d0b62a9975..cd657c52be6 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1182,6 +1182,7 @@ #include "code\datums\components\chuunibyou.dm" #include "code\datums\components\cleaner.dm" #include "code\datums\components\clickbox.dm" +#include "code\datums\components\clothing_dirt.dm" #include "code\datums\components\clothing_fov_visor.dm" #include "code\datums\components\codeword_hearing.dm" #include "code\datums\components\combo_attacks.dm" From 1e6a32d54f7f488cf564af4ca8d725488ab85491 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sat, 12 Oct 2024 16:57:22 +0000 Subject: [PATCH 004/103] Automatic changelog for PR #87102 [ci skip] --- html/changelogs/AutoChangeLog-pr-87102.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87102.yml diff --git a/html/changelogs/AutoChangeLog-pr-87102.yml b/html/changelogs/AutoChangeLog-pr-87102.yml new file mode 100644 index 00000000000..e4e89d68206 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87102.yml @@ -0,0 +1,4 @@ +author: "Striders13" +delete-after: True +changes: + - balance: "replaced gas mask fov with pepperspray applying tint to gas masks, making the wearer blind until washed off." \ No newline at end of file From cbc2e6727020c27f894657363be97ee0bd21e3d9 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Sat, 12 Oct 2024 19:58:23 +0200 Subject: [PATCH 005/103] DNA Infusers now check for a datum trait instead of whether non-living objects are edible and have the GORE food type. (#87154) --- code/__DEFINES/traits/declarations.dm | 2 ++ code/_globalvars/traits/_traits.dm | 1 + code/datums/components/food/edible.dm | 9 +++++++++ code/game/machinery/dna_infuser/dna_infuser.dm | 8 ++------ code/modules/fishing/fish/_fish.dm | 3 +++ code/modules/fishing/fish/types/freshwater.dm | 2 +- code/modules/unit_tests/_unit_tests.dm | 2 +- .../{organ_set_bonus.dm => dna_infusion.dm} | 13 +++++++++++++ 8 files changed, 32 insertions(+), 8 deletions(-) rename code/modules/unit_tests/{organ_set_bonus.dm => dna_infusion.dm} (87%) diff --git a/code/__DEFINES/traits/declarations.dm b/code/__DEFINES/traits/declarations.dm index ae2dec14d16..36e3a281e1d 100644 --- a/code/__DEFINES/traits/declarations.dm +++ b/code/__DEFINES/traits/declarations.dm @@ -116,6 +116,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_RESISTHEAT "resist_heat" /// Trait for when you can no longer gain body heat #define TRAIT_HYPOTHERMIC "body_hypothermic" +/// This non-living object is valid to be used in dna infusers +#define TRAIT_VALID_DNA_INFUSION "valid_dna_infusion" ///For when you've gotten a power from a dna vault #define TRAIT_USED_DNA_VAULT "used_dna_vault" /// For when you want to be able to touch hot things, but still want fire to be an issue. diff --git a/code/_globalvars/traits/_traits.dm b/code/_globalvars/traits/_traits.dm index 8c2b86e2cbc..f22f3466770 100644 --- a/code/_globalvars/traits/_traits.dm +++ b/code/_globalvars/traits/_traits.dm @@ -43,6 +43,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_CHASM_STOPPER" = TRAIT_CHASM_STOPPER, "TRAIT_COMBAT_MODE_SKIP_INTERACTION" = TRAIT_COMBAT_MODE_SKIP_INTERACTION, "TRAIT_DEL_ON_SPACE_DUMP" = TRAIT_DEL_ON_SPACE_DUMP, + "TRAIT_VALID_DNA_INFUSION" = TRAIT_VALID_DNA_INFUSION, "TRAIT_FISH_CASE_COMPATIBILE" = TRAIT_FISH_CASE_COMPATIBILE, "TRAIT_FROZEN" = TRAIT_FROZEN, "TRAIT_HAS_LABEL" = TRAIT_HAS_LABEL, diff --git a/code/datums/components/food/edible.dm b/code/datums/components/food/edible.dm index 08002615ad0..22592a039aa 100644 --- a/code/datums/components/food/edible.dm +++ b/code/datums/components/food/edible.dm @@ -98,6 +98,9 @@ Behavior that's still missing from this component that original food items had t else if(isturf(parent) || isstructure(parent)) RegisterSignal(parent, COMSIG_ATOM_ATTACK_HAND, PROC_REF(TryToEatIt)) + if(foodtypes & GORE) + ADD_TRAIT(parent, TRAIT_VALID_DNA_INFUSION, REF(src)) + /datum/component/edible/UnregisterFromParent() UnregisterSignal(parent, list( COMSIG_ATOM_ATTACK_ANIMAL, @@ -114,6 +117,9 @@ Behavior that's still missing from this component that original food items had t qdel(GetComponent(/datum/component/connect_loc_behalf)) + if(foodtypes & GORE) + REMOVE_TRAIT(parent, TRAIT_VALID_DNA_INFUSION, REF(src)) + /datum/component/edible/InheritComponent( datum/component/edible/old_comp, i_am_original, @@ -138,6 +144,9 @@ Behavior that's still missing from this component that original food items had t tastes = old_comp.tastes eatverbs = old_comp.eatverbs + if(foodtypes & GORE) + ADD_TRAIT(parent, TRAIT_VALID_DNA_INFUSION, REF(src)) + // only edit if we're OG if(!i_am_original) return diff --git a/code/game/machinery/dna_infuser/dna_infuser.dm b/code/game/machinery/dna_infuser/dna_infuser.dm index 961092c635b..ccc24d44f6e 100644 --- a/code/game/machinery/dna_infuser/dna_infuser.dm +++ b/code/game/machinery/dna_infuser/dna_infuser.dm @@ -210,7 +210,6 @@ /// Verify that the given infusion source/mob is a dead creature. /obj/machinery/dna_infuser/proc/is_valid_infusion(atom/movable/target, mob/user) - var/datum/component/edible/food_comp = IS_EDIBLE(target) if(infusing_from) balloon_alert(user, "empty the machine first!") return FALSE @@ -219,11 +218,8 @@ if(living_target.stat != DEAD) balloon_alert(user, "only dead creatures!") return FALSE - else if(food_comp) - if(!(food_comp.foodtypes & GORE)) - balloon_alert(user, "only creatures!") - return FALSE - else + else if(!HAS_TRAIT(target, TRAIT_VALID_DNA_INFUSION)) + balloon_alert(user, "only creatures!") return FALSE return TRUE diff --git a/code/modules/fishing/fish/_fish.dm b/code/modules/fishing/fish/_fish.dm index 2a08f566347..4a8efadcbcc 100644 --- a/code/modules/fishing/fish/_fish.dm +++ b/code/modules/fishing/fish/_fish.dm @@ -173,6 +173,9 @@ ADD_TRAIT(src, TRAIT_UNCOMPOSTABLE, REF(src)) //Composting a food that is not real food wouldn't work anyway. START_PROCESSING(SSobj, src) + //Adding this because not all fish have the gore foodtype that makes them automatically eligible for dna infusion. + ADD_TRAIT(src, TRAIT_VALID_DNA_INFUSION, INNATE_TRAIT) + //stops new fish from being able to reproduce right away. breeding_wait = world.time + (breeding_timeout * NEW_FISH_BREEDING_TIMEOUT_MULT) last_feeding = world.time - (feeding_frequency * NEW_FISH_LAST_FEEDING_MULT) diff --git a/code/modules/fishing/fish/types/freshwater.dm b/code/modules/fishing/fish/types/freshwater.dm index fe0ff437c7d..75d4891b4f0 100644 --- a/code/modules/fishing/fish/types/freshwater.dm +++ b/code/modules/fishing/fish/types/freshwater.dm @@ -175,7 +175,7 @@ /obj/item/fish/tadpole/Initialize(mapload, apply_qualities = TRUE) . = ..() - AddComponent(/datum/component/fish_growth, /mob/living/basic/frog, rand(2.5, 3 MINUTES)) + AddComponent(/datum/component/fish_growth, /mob/living/basic/frog, rand(2 MINUTES, 3 MINUTES)) RegisterSignal(src, COMSIG_FISH_BEFORE_GROWING, PROC_REF(growth_checks)) RegisterSignal(src, COMSIG_FISH_FINISH_GROWING, PROC_REF(on_growth)) diff --git a/code/modules/unit_tests/_unit_tests.dm b/code/modules/unit_tests/_unit_tests.dm index 172a3b64181..820956a21a1 100644 --- a/code/modules/unit_tests/_unit_tests.dm +++ b/code/modules/unit_tests/_unit_tests.dm @@ -135,6 +135,7 @@ #include "dcs_get_id_from_elements.dm" #include "designs.dm" #include "dismemberment.dm" +#include "dna_infusion.dm" #include "door_access.dm" #include "dragon_expiration.dm" #include "drink_icons.dm" @@ -211,7 +212,6 @@ #include "operating_table.dm" #include "orderable_items.dm" #include "organ_bodypart_shuffle.dm" -#include "organ_set_bonus.dm" #include "organs.dm" #include "orphaned_genturf.dm" #include "outfit_sanity.dm" diff --git a/code/modules/unit_tests/organ_set_bonus.dm b/code/modules/unit_tests/dna_infusion.dm similarity index 87% rename from code/modules/unit_tests/organ_set_bonus.dm rename to code/modules/unit_tests/dna_infusion.dm index 67a88250665..fe545b3e29c 100644 --- a/code/modules/unit_tests/organ_set_bonus.dm +++ b/code/modules/unit_tests/dna_infusion.dm @@ -1,3 +1,16 @@ +///Check that input types that aren't living mobs have the TRAIT_VALID_DNA_INFUSION trait +/datum/unit_test/valid_dna_infusion + +/datum/unit_test/valid_dna_infusion/Run() + for(var/datum/infuser_entry/infuser_entry as anything in flatten_list(GLOB.infuser_entries)) + for(var/input_type as anything in infuser_entry.input_obj_or_mob) + if(ispath(input_type, /mob/living)) + continue + var/atom/movable/movable = allocate(input_type) + if(!HAS_TRAIT(movable, TRAIT_VALID_DNA_INFUSION)) + //TEST_FAIL() doesn't early return the unit test so we can keep checking. + TEST_FAIL("[input_type] is in the 'input_obj_or_mob' list for [infuser_entry.type] but doesn't have TRAIT_VALID_DNA_INFUSION.") + /// Checks that all "organ_set_bonus" status effects have unique "id" vars. /// Required to ensure that the status effects are treated as "unique". /datum/unit_test/organ_set_bonus_id From b0b1e0bc64d4fa5fef89f05307ad9fd48e5b6515 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sat, 12 Oct 2024 17:58:51 +0000 Subject: [PATCH 006/103] Automatic changelog for PR #87154 [ci skip] --- html/changelogs/AutoChangeLog-pr-87154.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87154.yml diff --git a/html/changelogs/AutoChangeLog-pr-87154.yml b/html/changelogs/AutoChangeLog-pr-87154.yml new file mode 100644 index 00000000000..00abf6ba498 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87154.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "Fish like slimefish, unmarine bonemass and deepfryer fish can now be used for DNA infusions." \ No newline at end of file From 7e9453b63fc275659271726ad1af5b917f909b0d Mon Sep 17 00:00:00 2001 From: grungussuss <96586172+Sadboysuss@users.noreply.github.com> Date: Sat, 12 Oct 2024 21:49:17 +0300 Subject: [PATCH 007/103] All chainsaws can behead (#87145) --- code/game/objects/items/chainsaw.dm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/code/game/objects/items/chainsaw.dm b/code/game/objects/items/chainsaw.dm index 00ca25985bf..dad44d69e7e 100644 --- a/code/game/objects/items/chainsaw.dm +++ b/code/game/objects/items/chainsaw.dm @@ -26,6 +26,8 @@ var/on = FALSE ///The looping sound for our chainsaw when running var/datum/looping_sound/chainsaw/chainsaw_loop + ///how long it takes to behead someone with this chainsaw. + var/behead_time = 15 SECONDS /obj/item/chainsaw/apply_fantasy_bonuses(bonus) . = ..() @@ -98,8 +100,9 @@ desc = span_warning("VRRRRRRR!!!") armour_penetration = 100 force_on = 30 + behead_time = 2 SECONDS -/obj/item/chainsaw/doomslayer/attack(mob/living/target_mob, mob/living/user, params) +/obj/item/chainsaw/attack(mob/living/target_mob, mob/living/user, params) if (target_mob.stat != DEAD) return ..() @@ -113,7 +116,7 @@ playsound(user, 'sound/items/weapons/slice.ogg', vol = 80, vary = TRUE) target_mob.balloon_alert(user, "cutting off head...") - if (!do_after(user, 2 SECONDS, target_mob, extra_checks = CALLBACK(src, PROC_REF(has_same_head), target_mob, head))) + if (!do_after(user, behead_time, target_mob, extra_checks = CALLBACK(src, PROC_REF(has_same_head), target_mob, head))) return TRUE head.dismember(silent = FALSE) @@ -128,7 +131,7 @@ return TRUE return FALSE -/obj/item/chainsaw/doomslayer/proc/has_same_head(mob/living/target_mob, obj/item/bodypart/head) +/obj/item/chainsaw/proc/has_same_head(mob/living/target_mob, obj/item/bodypart/head) return target_mob.get_bodypart(BODY_ZONE_HEAD) == head /obj/item/chainsaw/mounted_chainsaw From 8815a9baab1ae50bdc99f0c73df22c2faea2b18a Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sat, 12 Oct 2024 18:49:37 +0000 Subject: [PATCH 008/103] Automatic changelog for PR #87145 [ci skip] --- html/changelogs/AutoChangeLog-pr-87145.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87145.yml diff --git a/html/changelogs/AutoChangeLog-pr-87145.yml b/html/changelogs/AutoChangeLog-pr-87145.yml new file mode 100644 index 00000000000..70afb26c785 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87145.yml @@ -0,0 +1,4 @@ +author: "grungussuss" +delete-after: True +changes: + - balance: "all chainsaws can now behead people" \ No newline at end of file From 59ec61d7e32b69f973934e2e6b34c699300f9567 Mon Sep 17 00:00:00 2001 From: Jordan Dominion Date: Sat, 12 Oct 2024 15:08:59 -0400 Subject: [PATCH 009/103] Option to Offload non-technical PR discussion to a Discord Thread (#86068) This was discussed in #maintainerbus on the Discord. @tgstation/commit-access Result of this PR: - Add the `Discord Discussion` label to the PR. - The bot will create the thread, link it in the PR, and lock the PR. Slowmode set to 1 minute. Auto-archive duration set to max of 1 week. - The thread will be archived if the PR is merged or closed, unarchived if it's reopened. - You can also set a join link for the Discord to appear in the GitHub comment. I'll be setting it to our official link at https://tgstation13.org/phpBB/viewforum.php?f=60 ![image](https://github.com/user-attachments/assets/2cdbe762-2339-4467-8b80-d1bf939b43e4) ![image](https://github.com/user-attachments/assets/b5cb25a4-18ee-40a0-a3eb-c36cf38ca8dc) Let the bikeshed commence --- .github/workflows/discord_discussions.yml | 52 +++ .gitignore | 4 + .../DiscordForwardingResponder.cs | 28 ++ .../IDiscordResponders.cs | 9 + tools/Tgstation.DiscordDiscussions/Program.cs | 307 ++++++++++++++++++ .../PullRequestState.cs | 9 + .../Tgstation.DiscordDiscussions.csproj | 14 + .../Tgstation.DiscordDiscussions.sln | 25 ++ 8 files changed, 448 insertions(+) create mode 100644 .github/workflows/discord_discussions.yml create mode 100644 tools/Tgstation.DiscordDiscussions/DiscordForwardingResponder.cs create mode 100644 tools/Tgstation.DiscordDiscussions/IDiscordResponders.cs create mode 100644 tools/Tgstation.DiscordDiscussions/Program.cs create mode 100644 tools/Tgstation.DiscordDiscussions/PullRequestState.cs create mode 100644 tools/Tgstation.DiscordDiscussions/Tgstation.DiscordDiscussions.csproj create mode 100644 tools/Tgstation.DiscordDiscussions/Tgstation.DiscordDiscussions.sln diff --git a/.github/workflows/discord_discussions.yml b/.github/workflows/discord_discussions.yml new file mode 100644 index 00000000000..439315cbb95 --- /dev/null +++ b/.github/workflows/discord_discussions.yml @@ -0,0 +1,52 @@ +name: Discord Discussions + +on: + pull_request_target: + types: + - opened + - reopened + - edited + - labeled + - closed + branches: + - master + +concurrency: + group: "discord-discussions-${{ github.head_ref }}" + cancel-in-progress: true + +jobs: + manage-discord-discussion: + name: Manage Discord Discussion + runs-on: ubuntu-latest + if: contains(github.event.pull_request.labels.*.name, 'Discord Discussion') + steps: + - name: Fail if vars.DISCORD_DISCUSSIONS_CHANNEL_ID is unset + if: ${{ vars.DISCORD_DISCUSSIONS_CHANNEL_ID == '' }} + run: | + echo "vars.DISCORD_DISCUSSIONS_CHANNEL_ID (${{ vars.DISCORD_DISCUSSIONS_CHANNEL_ID }}) must be set to use this label!" + exit 1 + + - name: Setup dotnet + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 8.0.x + dotnet-quality: ga + + - name: Checkout + uses: actions/checkout@v4 + + - name: Build Tgstation.DiscordDiscussions + run: dotnet publish -c Release -o discord_discussions_bins tools/Tgstation.DiscordDiscussions/Tgstation.DiscordDiscussions.csproj + + - name: Generate App Token + id: app-token-generation + uses: getsentry/action-github-app-token@d4b5da6c5e37703f8c3b3e43abb5705b46e159cc + with: + app_id: ${{ secrets.APP_ID }} + private_key: ${{ secrets.APP_PRIVATE_KEY }} + + - name: Run Tgstation.DiscordDiscussions + run: dotnet discord_discussions_bins/Tgstation.DiscordDiscussions.dll ${{ steps.app-token-generation.outputs.token }} ${{ github.repository_owner }} ${{ github.event.repository.name }} ${{ github.event.pull_request.number }} ${{ github.event.pull_request.merged && 'merged' || github.event.pull_request.state }} ${{ secrets.DISCORD_DISCUSSIONS_TOKEN }} ${{ vars.DISCORD_DISCUSSIONS_CHANNEL_ID }} ${{ github.event.action == 'reopened' && 'true' || 'false' }} ${{ vars.DISCORD_JOIN_LINK }} + env: + GITHUB_PULL_REQUEST_TITLE: ${{ github.event.pull_request.title }} diff --git a/.gitignore b/.gitignore index 11db1399997..1abeb9c3d2d 100644 --- a/.gitignore +++ b/.gitignore @@ -180,6 +180,10 @@ Temporary Items /tools/MapAtmosFixer/MapAtmosFixer/bin/* /tools/CreditsTool/bin/* /tools/CreditsTool/obj/* +/tools/Tgstation.DiscordDiscussions/.vs/* +/tools/Tgstation.DiscordDiscussions/bin/* +/tools/Tgstation.DiscordDiscussions/obj/* +/tools/Tgstation.DiscordDiscussions/Properties/launchSettings.json #GitHub Atom .atom-build.json diff --git a/tools/Tgstation.DiscordDiscussions/DiscordForwardingResponder.cs b/tools/Tgstation.DiscordDiscussions/DiscordForwardingResponder.cs new file mode 100644 index 00000000000..4dab10fea27 --- /dev/null +++ b/tools/Tgstation.DiscordDiscussions/DiscordForwardingResponder.cs @@ -0,0 +1,28 @@ +using System; +using System.Threading; +using System.Threading.Tasks; + +using Remora.Discord.API.Abstractions.Gateway.Events; +using Remora.Discord.Gateway.Responders; +using Remora.Results; + +namespace Tgstation.DiscordDiscussions +{ + /// + /// An that forwards to another . + /// + /// + /// Initializes a new instance of the class. + /// + /// The value of . + sealed class DiscordForwardingResponder(IDiscordResponders targetResponder) : IDiscordResponders + { + /// + /// The to forward the event to. + /// + readonly IDiscordResponders targetResponder = targetResponder ?? throw new ArgumentNullException(nameof(targetResponder)); + + /// + public Task RespondAsync(IReady gatewayEvent, CancellationToken ct) => targetResponder.RespondAsync(gatewayEvent, ct); + } +} diff --git a/tools/Tgstation.DiscordDiscussions/IDiscordResponders.cs b/tools/Tgstation.DiscordDiscussions/IDiscordResponders.cs new file mode 100644 index 00000000000..41f22d5b6f3 --- /dev/null +++ b/tools/Tgstation.DiscordDiscussions/IDiscordResponders.cs @@ -0,0 +1,9 @@ +using Remora.Discord.API.Abstractions.Gateway.Events; +using Remora.Discord.Gateway.Responders; + +namespace Tgstation.DiscordDiscussions +{ + internal interface IDiscordResponders : IResponder + { + } +} diff --git a/tools/Tgstation.DiscordDiscussions/Program.cs b/tools/Tgstation.DiscordDiscussions/Program.cs new file mode 100644 index 00000000000..1989ef61450 --- /dev/null +++ b/tools/Tgstation.DiscordDiscussions/Program.cs @@ -0,0 +1,307 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading; +using System.Threading.Tasks; + +using Microsoft.Extensions.DependencyInjection; + +using Octokit; + +using Remora.Discord.API.Abstractions.Gateway.Events; +using Remora.Discord.API.Abstractions.Objects; +using Remora.Discord.API.Abstractions.Rest; +using Remora.Discord.API.Objects; +using Remora.Discord.Gateway; +using Remora.Discord.Gateway.Extensions; +using Remora.Rest.Core; +using Remora.Rest.Results; +using Remora.Results; + +namespace Tgstation.DiscordDiscussions +{ + public sealed partial class Program : IDiscordResponders + { + const bool LockPullRequest = true; + const int InitSlowModeSeconds = 60; + + [GeneratedRegex(@"https://discord.com/channels/[0-9]+/([0-9]+)")] + private static partial Regex ChannelLinkRegex(); + + readonly TaskCompletionSource gatewayReadyTcs; + + public static Task Main(string[] args) + => new Program().RunAsync(args); + + /// + /// Converts a given into a log entry . + /// + /// The to convert. + /// Used internally for nesting. + /// The formatted . + static string LogFormat(IResult result, uint level = 0) + { + ArgumentNullException.ThrowIfNull(result); + + if (result.IsSuccess) + return "SUCCESS?"; + + var stringBuilder = new StringBuilder(); + if (result.Error != null) + { + stringBuilder.Append(result.Error.Message); + if (result.Error is RestResultError restError) + { + stringBuilder.Append(" ("); + if (restError.Error != null) + { + stringBuilder.Append(restError.Error.Code); + stringBuilder.Append(": "); + stringBuilder.Append(restError.Error.Message); + stringBuilder.Append('|'); + } + + stringBuilder.Append(restError.Message); + if ((restError.Error?.Errors.HasValue ?? false) && restError.Error.Errors.Value.Count > 0) + { + stringBuilder.Append(" ("); + foreach (var error in restError.Error.Errors.Value) + { + stringBuilder.Append(error.Key); + stringBuilder.Append(':'); + if (error.Value.IsT0) + { + FormatErrorDetails(error.Value.AsT0, stringBuilder); + } + else + FormatErrorDetails(error.Value.AsT1, stringBuilder); + stringBuilder.Append(','); + } + + stringBuilder.Remove(stringBuilder.Length - 1, 1); + } + + stringBuilder.Append(')'); + } + } + + if (result.Inner != null) + { + stringBuilder.Append(Environment.NewLine); + ++level; + for (var i = 0; i < level; ++i) + stringBuilder.Append('\t'); + stringBuilder.Append(LogFormat(result.Inner, level)); + } + + return stringBuilder.ToString(); + } + + /// + /// Formats given into a given . + /// + /// The . + /// The to mutate. + static void FormatErrorDetails(IPropertyErrorDetails propertyErrorDetails, StringBuilder stringBuilder) + { + if (propertyErrorDetails == null) + return; + + FormatErrorDetails(propertyErrorDetails.Errors, stringBuilder); + + if (propertyErrorDetails.Errors != null && propertyErrorDetails.MemberErrors != null) + { + stringBuilder.Append(','); + } + + if (propertyErrorDetails.MemberErrors != null) + { + stringBuilder.Append('{'); + foreach (var error in propertyErrorDetails.MemberErrors) + { + stringBuilder.Append(error.Key); + stringBuilder.Append(':'); + FormatErrorDetails(error.Value, stringBuilder); + stringBuilder.Append(','); + } + + stringBuilder.Remove(stringBuilder.Length - 1, 1); + stringBuilder.Append('}'); + } + } + + /// + /// Formats given into a given . + /// + /// The of . + /// The to mutate. + static void FormatErrorDetails(IEnumerable? errorDetails, StringBuilder stringBuilder) + { + if (errorDetails == null) + return; + + stringBuilder.Append('['); + foreach (var error in errorDetails) + { + stringBuilder.Append(error.Code); + stringBuilder.Append(':'); + stringBuilder.Append(error.Message); + stringBuilder.Append(','); + } + + stringBuilder.Remove(stringBuilder.Length - 1, 1); + stringBuilder.Append(']'); + } + + Program() + { + gatewayReadyTcs = new TaskCompletionSource(); + } + + async Task RunAsync(string[] args) + { + try + { + var gitHubToken = args[0]; + var repoOwner = args[1]; + var repoName = args[2]; + var prNumber = Int32.Parse(args[3]); + var state = Enum.Parse(args[4]); + var discordToken = args[5]; + var discussionsChannelId = UInt64.Parse(args[6]); + var isReopen = Boolean.Parse(args[7]); + var joinLink = args.Length > 8 ? args[8] : null; + + var prTitle = Environment.GetEnvironmentVariable("GITHUB_PULL_REQUEST_TITLE"); + + var gitHubClient = new GitHubClient(new ProductHeaderValue("Tgstation.DiscordDiscussions")) + { + Credentials = new Credentials(gitHubToken), + }; + + const string GitHubCommentPrefix = "Maintainers have requested non-technical related discussion regarding this pull request be moved to the Discord."; + + async ValueTask FindThreadID() + { + var comments = await gitHubClient.Issue.Comment.GetAllForIssue(repoOwner, repoName, prNumber); + + var commentInQuestion = comments.FirstOrDefault(comment => comment.Body.StartsWith(GitHubCommentPrefix)); + if (commentInQuestion == null) + return null; + + // https://discord.com/channels// + var threadId = UInt64.Parse(ChannelLinkRegex().Match(commentInQuestion.Body).Groups[1].Value); + return threadId; + } + + var threadIdTask = FindThreadID(); + + await using var serviceProvider = new ServiceCollection() + .AddDiscordGateway(serviceProvider => discordToken) + .AddSingleton(serviceProvider => (IDiscordResponders)this) + .AddResponder() + .BuildServiceProvider(); + + var gatewayClient = serviceProvider.GetRequiredService(); + using var gatewayCts = new CancellationTokenSource(); + var localGatewayTask = gatewayClient.RunAsync(gatewayCts.Token); + try + { + await gatewayReadyTcs.Task.WaitAsync(TimeSpan.FromMinutes(5)); + + var prLink = $"https://github.com/{repoOwner}/{repoName}/pull/{prNumber}"; + var messageContent = $"#{prNumber} - {prTitle}"; + + var channelsClient = serviceProvider.GetRequiredService(); + + var channelId = new Snowflake(discussionsChannelId); + + var threadId = await threadIdTask; + Snowflake messageId; + if (!threadId.HasValue) + { + var channel = await channelsClient.GetChannelAsync(channelId); + if (!channel.IsSuccess) + throw new Exception(LogFormat(channel)); + + var threadMessage = await channelsClient.StartThreadInForumChannelAsync(channelId, messageContent, AutoArchiveDuration.Week, InitSlowModeSeconds, $"Maintainers have requested that discussion for [this pull request]({prLink}) be moved here."); + if (!threadMessage.IsSuccess) + throw new Exception(LogFormat(threadMessage)); + + messageId = threadMessage.Entity.ID; + + var gitHubComment = $"{GitHubCommentPrefix}\nClick [here](https://discord.com/channels/{channel.Entity.GuildID.Value}/{messageId.Value}) to view the discussion."; + if (joinLink != null) + gitHubComment += $"\nClick [here]({joinLink}) to join the Discord!"; + + await gitHubClient.Issue.Comment.Create(repoOwner, repoName, prNumber, gitHubComment); + } + else + { + messageId = new Snowflake(threadId.Value); + + // open/close thread + if (state != PullRequestState.open) + { + var archiveMessage = await channelsClient.CreateMessageAsync(messageId, $"The associated pull request for this thread has been {state.ToString().ToLowerInvariant()}. This thread will now be archived."); + if (!archiveMessage.IsSuccess) + throw new Exception(LogFormat(archiveMessage)); + + var archiveAction = await channelsClient.ModifyThreadChannelAsync(messageId, messageContent, autoArchiveDuration: AutoArchiveDuration.Hour, isArchived: true); + if (!archiveAction.IsSuccess) + throw new Exception(LogFormat(archiveAction)); + } + else if (isReopen) + { + var unarchiveMessage = await channelsClient.CreateMessageAsync(messageId, "The associated pull request for this thread has been reopened. This thread will now be reopened."); + if (!unarchiveMessage.IsSuccess) + throw new Exception(LogFormat(unarchiveMessage)); + + var unarchiveAction = await channelsClient.ModifyThreadChannelAsync(messageId, messageContent, autoArchiveDuration: AutoArchiveDuration.Week, isArchived: false); + if (!unarchiveMessage.IsSuccess) + throw new Exception(LogFormat(unarchiveMessage)); + } + else + { + var response = await channelsClient.ModifyThreadChannelAsync(messageId, messageContent); + if (!response.IsSuccess) + throw new Exception(LogFormat(response)); + } + } + + // ensure the PR is locked + if (LockPullRequest) + { + await gitHubClient.PullRequest.LockUnlock.Lock(repoOwner, repoName, prNumber); + } + + return 0; + } + finally + { + gatewayCts.Cancel(); + try + { + await localGatewayTask.WaitAsync(TimeSpan.FromSeconds(10)); + } + catch (OperationCanceledException) + { + } + } + } + catch (Exception ex) + { + Console.WriteLine(ex.ToString()); + return 1; + } + } + + public Task RespondAsync(IReady gatewayEvent, CancellationToken ct = default) + { + gatewayReadyTcs.TrySetResult(); + return Task.FromResult(Result.FromSuccess()); + } + } +} diff --git a/tools/Tgstation.DiscordDiscussions/PullRequestState.cs b/tools/Tgstation.DiscordDiscussions/PullRequestState.cs new file mode 100644 index 00000000000..1420d3a4e9f --- /dev/null +++ b/tools/Tgstation.DiscordDiscussions/PullRequestState.cs @@ -0,0 +1,9 @@ +namespace Tgstation.DiscordDiscussions +{ + enum PullRequestState + { + closed, + open, + merged + } +} diff --git a/tools/Tgstation.DiscordDiscussions/Tgstation.DiscordDiscussions.csproj b/tools/Tgstation.DiscordDiscussions/Tgstation.DiscordDiscussions.csproj new file mode 100644 index 00000000000..8f8fa8d2f58 --- /dev/null +++ b/tools/Tgstation.DiscordDiscussions/Tgstation.DiscordDiscussions.csproj @@ -0,0 +1,14 @@ + + + + Exe + net8.0 + enable + + + + + + + + diff --git a/tools/Tgstation.DiscordDiscussions/Tgstation.DiscordDiscussions.sln b/tools/Tgstation.DiscordDiscussions/Tgstation.DiscordDiscussions.sln new file mode 100644 index 00000000000..978f2901c3c --- /dev/null +++ b/tools/Tgstation.DiscordDiscussions/Tgstation.DiscordDiscussions.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.9.34728.123 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tgstation.DiscordDiscussions", "Tgstation.DiscordDiscussions.csproj", "{345EAB82-40E0-4F20-A4A6-8052CB8D1A01}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {345EAB82-40E0-4F20-A4A6-8052CB8D1A01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {345EAB82-40E0-4F20-A4A6-8052CB8D1A01}.Debug|Any CPU.Build.0 = Debug|Any CPU + {345EAB82-40E0-4F20-A4A6-8052CB8D1A01}.Release|Any CPU.ActiveCfg = Release|Any CPU + {345EAB82-40E0-4F20-A4A6-8052CB8D1A01}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {CBA935A0-8BBA-40CB-BC53-C339683858F4} + EndGlobalSection +EndGlobal From 084d473a9f6f48a09df7aa655d1bbe21adf0cea6 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Sat, 12 Oct 2024 21:39:51 +0200 Subject: [PATCH 010/103] Fish feed to the Library vending machine, rescue hook to the mining order console (and paramed heirloom) (#87110) Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> --- .../computer/orders/order_items/mining/order_consumables.dm | 6 ++++++ code/modules/fishing/fishing_rod.dm | 5 +++++ code/modules/jobs/job_types/paramedic.dm | 2 +- code/modules/vending/games.dm | 3 ++- 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/code/game/machinery/computer/orders/order_items/mining/order_consumables.dm b/code/game/machinery/computer/orders/order_items/mining/order_consumables.dm index c8cfa12f9ab..a91a34b46f2 100644 --- a/code/game/machinery/computer/orders/order_items/mining/order_consumables.dm +++ b/code/game/machinery/computer/orders/order_items/mining/order_consumables.dm @@ -46,3 +46,9 @@ item_path = /obj/item/stack/spacecash/c1000 desc = "A stack of space cash worth 1000 credits." cost_per_order = 2000 + +/datum/orderable_item/consumables/rescue_hook + name = "Rescue Fishing Rod" + item_path = /obj/item/fishing_rod/rescue + desc = "For when your fellow miner has inevitably fallen into a chasm, and it's up to you to save them." + cost_per_order = 600 diff --git a/code/modules/fishing/fishing_rod.dm b/code/modules/fishing/fishing_rod.dm index 62d0cdf80a2..bfa701d36eb 100644 --- a/code/modules/fishing/fishing_rod.dm +++ b/code/modules/fishing/fishing_rod.dm @@ -521,6 +521,11 @@ line = null show_in_wiki = FALSE +///From the mining order console, meant to help miners rescue their fallen brethren +/obj/item/fishing_rod/rescue + hook = /obj/item/fishing_hook/rescue + show_in_wiki = FALSE + /obj/item/fishing_rod/bone name = "bone fishing rod" desc = "A humble rod, made with whatever happened to be on hand." diff --git a/code/modules/jobs/job_types/paramedic.dm b/code/modules/jobs/job_types/paramedic.dm index 2fd4f3a93a6..80936dce293 100644 --- a/code/modules/jobs/job_types/paramedic.dm +++ b/code/modules/jobs/job_types/paramedic.dm @@ -24,7 +24,7 @@ /datum/job_department/medical, ) - family_heirlooms = list(/obj/item/storage/medkit/ancient/heirloom) + family_heirlooms = list(/obj/item/storage/medkit/ancient/heirloom, /obj/item/fishing_hook/rescue) mail_goodies = list( /obj/item/reagent_containers/hypospray/medipen = 20, diff --git a/code/modules/vending/games.dm b/code/modules/vending/games.dm index 98a77c7f40c..4989b174982 100644 --- a/code/modules/vending/games.dm +++ b/code/modules/vending/games.dm @@ -45,7 +45,7 @@ /obj/item/stack/pipe_cleaner_coil/random = 10, ), ), - list( + list( "name" = "Fishing", "icon" = "fish", "products" = list( @@ -54,6 +54,7 @@ /obj/item/storage/box/fishing_lines = 2, /obj/item/storage/box/fishing_lures = 2, /obj/item/book/manual/fish_catalog = 5, + /obj/item/fish_feed = 4, /obj/item/fish_analyzer = 2, /obj/item/fishing_rod/telescopic = 1, ), From 4a962a9ed5e1dc573a26e977ac611bb18d5a28e6 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sat, 12 Oct 2024 19:40:21 +0000 Subject: [PATCH 011/103] Automatic changelog for PR #87110 [ci skip] --- html/changelogs/AutoChangeLog-pr-87110.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87110.yml diff --git a/html/changelogs/AutoChangeLog-pr-87110.yml b/html/changelogs/AutoChangeLog-pr-87110.yml new file mode 100644 index 00000000000..6db52e7bde4 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87110.yml @@ -0,0 +1,5 @@ +author: "Ghommie" +delete-after: True +changes: + - rscadd: "You can buy a fishing rod pre-equipped with a rescue hook from the mining order console." + - balance: "Paramedics can get a rescue fishing hook as a heirloom." \ No newline at end of file From 9af7ffb85d3d05517aa7bd253b39fa6aa0ad4f55 Mon Sep 17 00:00:00 2001 From: necromanceranne <40847847+necromanceranne@users.noreply.github.com> Date: Sun, 13 Oct 2024 08:47:45 +1100 Subject: [PATCH 012/103] Pyro/Cryokinesis cast range is the same as the projectile's range. Pyro and ash mutations are no longer subtypes (#87144) --- code/datums/components/heart_eater.dm | 4 ++-- code/datums/mutations/_combined.dm | 4 ++-- code/datums/mutations/cold.dm | 1 + code/datums/mutations/hot.dm | 30 +++++++++++++++++++++------ 4 files changed, 29 insertions(+), 10 deletions(-) diff --git a/code/datums/components/heart_eater.dm b/code/datums/components/heart_eater.dm index 507090b9452..722c4b1636d 100644 --- a/code/datums/components/heart_eater.dm +++ b/code/datums/components/heart_eater.dm @@ -13,9 +13,9 @@ /datum/mutation/human/adaptation/thermal, /datum/mutation/human/chameleon, /datum/mutation/human/cryokinesis, - /datum/mutation/human/cryokinesis/pyrokinesis, + /datum/mutation/human/pyrokinesis, /datum/mutation/human/dwarfism, - /datum/mutation/human/geladikinesis/ash, + /datum/mutation/human/cindikinesis, /datum/mutation/human/insulated, /datum/mutation/human/telekinesis, /datum/mutation/human/telepathy, diff --git a/code/datums/mutations/_combined.dm b/code/datums/mutations/_combined.dm index 5b7b5d42901..399cbec53ed 100644 --- a/code/datums/mutations/_combined.dm +++ b/code/datums/mutations/_combined.dm @@ -27,11 +27,11 @@ /datum/generecipe/cindikinesis required = "/datum/mutation/human/geladikinesis; /datum/mutation/human/fire_breath" - result = /datum/mutation/human/geladikinesis/ash + result = /datum/mutation/human/cindikinesis /datum/generecipe/pyrokinesis required = "/datum/mutation/human/cryokinesis; /datum/mutation/human/fire_breath" - result = /datum/mutation/human/cryokinesis/pyrokinesis + result = /datum/mutation/human/pyrokinesis /datum/generecipe/thermal_adaptation required = "/datum/mutation/human/adaptation/cold; /datum/mutation/human/adaptation/heat" diff --git a/code/datums/mutations/cold.dm b/code/datums/mutations/cold.dm index fd060bc8ca5..7916b413723 100644 --- a/code/datums/mutations/cold.dm +++ b/code/datums/mutations/cold.dm @@ -37,6 +37,7 @@ button_icon_state = "icebeam" base_icon_state = "icebeam" active_overlay_icon_state = "bg_spell_border_active_blue" + cast_range = 9 cooldown_time = 16 SECONDS spell_requirements = NONE antimagic_flags = NONE diff --git a/code/datums/mutations/hot.dm b/code/datums/mutations/hot.dm index 574bc95d1e4..74fa42e1edd 100644 --- a/code/datums/mutations/hot.dm +++ b/code/datums/mutations/hot.dm @@ -1,30 +1,48 @@ -/datum/mutation/human/geladikinesis/ash +/datum/mutation/human/cindikinesis name = "Cindikinesis" desc = "Allows the user to concentrate nearby heat into a pile of ash. Wow. Very interesting." + quality = POSITIVE text_gain_indication = span_notice("Your hand feels warm.") + instability = POSITIVE_INSTABILITY_MINOR + difficulty = 10 + synchronizer_coeff = 1 locked = TRUE - power_path = /datum/action/cooldown/spell/conjure_item/snow/ash + power_path = /datum/action/cooldown/spell/conjure_item/ash -/datum/action/cooldown/spell/conjure_item/snow/ash +/datum/action/cooldown/spell/conjure_item/ash name = "Create Ash" desc = "Concentrates pyrokinetic forces to create ash, useful for basically nothing." button_icon_state = "ash" + cooldown_time = 5 SECONDS + spell_requirements = NONE + item_type = /obj/effect/decal/cleanable/ash + delete_old = FALSE + delete_on_failure = FALSE -/datum/mutation/human/cryokinesis/pyrokinesis +/datum/mutation/human/pyrokinesis name = "Pyrokinesis" desc = "Draws positive energy from the surroundings to heat surrounding temperatures at subject's will." + quality = POSITIVE text_gain_indication = span_notice("Your hand feels hot!") + instability = POSITIVE_INSTABILITY_MODERATE + difficulty = 12 + synchronizer_coeff = 1 + energy_coeff = 1 locked = TRUE - power_path = /datum/action/cooldown/spell/pointed/projectile/cryo/pyro + power_path = /datum/action/cooldown/spell/pointed/projectile/pyro -/datum/action/cooldown/spell/pointed/projectile/cryo/pyro +/datum/action/cooldown/spell/pointed/projectile/pyro name = "Pyrobeam" desc = "This power fires a heated bolt at a target." button_icon_state = "firebeam" base_icon_state = "firebeam" + active_overlay_icon_state = "bg_spell_border_active_blue" + cast_range = 9 cooldown_time = 30 SECONDS + spell_requirements = NONE + antimagic_flags = NONE active_msg = "You focus your pyrokinesis!" deactive_msg = "You cool down." From fc0a3e9decee6f56f7a1a5ad84fb719af4214388 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sat, 12 Oct 2024 21:50:00 +0000 Subject: [PATCH 013/103] Automatic changelog for PR #87144 [ci skip] --- html/changelogs/AutoChangeLog-pr-87144.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87144.yml diff --git a/html/changelogs/AutoChangeLog-pr-87144.yml b/html/changelogs/AutoChangeLog-pr-87144.yml new file mode 100644 index 00000000000..b98c0d1c189 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87144.yml @@ -0,0 +1,5 @@ +author: "necromanceranne" +delete-after: True +changes: + - bugfix: "Pyrokinesis/Cryokinesis cast range matches its projectile range." + - code_imp: "Pyrokinesis and Cindikinesis are now their own types and not subtypes of Cryokinesis and Geladikinesis. This allows you to not have to mutate yourself in a specific order to not lock yourself out of the other mutation." \ No newline at end of file From 716f67289c4d894198a46d055d33853a3c6e1420 Mon Sep 17 00:00:00 2001 From: grungussuss <96586172+Sadboysuss@users.noreply.github.com> Date: Sun, 13 Oct 2024 17:43:53 +0300 Subject: [PATCH 014/103] Helmet and visor sounds (#87165) --- code/__DEFINES/sound.dm | 2 + .../crates_lockers/closets/fitness.dm | 4 +- code/game/sound.dm | 11 +++ .../abductor/equipment/gear/abductor_items.dm | 4 + code/modules/cargo/packs/costumes_toys.dm | 4 +- code/modules/clothing/clothing.dm | 10 ++ code/modules/clothing/head/helmet.dm | 86 ++++++++++++++---- code/modules/clothing/outfits/standard.dm | 4 +- .../clothing/spacesuits/_spacesuits.dm | 4 + .../job_types/assistant/gimmick_assistants.dm | 4 +- sound/items/handling/helmet/attribution.txt | 8 ++ sound/items/handling/helmet/helmet_drop1.ogg | Bin 0 -> 13153 bytes sound/items/handling/helmet/helmet_equip1.ogg | Bin 0 -> 15646 bytes .../items/handling/helmet/helmet_pickup1.ogg | Bin 0 -> 10434 bytes sound/items/handling/helmet/visor_down1.ogg | Bin 0 -> 8628 bytes sound/items/handling/helmet/visor_down2.ogg | Bin 0 -> 7995 bytes sound/items/handling/helmet/visor_down3.ogg | Bin 0 -> 9896 bytes sound/items/handling/helmet/visor_up1.ogg | Bin 0 -> 8991 bytes sound/items/handling/helmet/visor_up2.ogg | Bin 0 -> 8847 bytes 19 files changed, 113 insertions(+), 28 deletions(-) create mode 100644 sound/items/handling/helmet/attribution.txt create mode 100644 sound/items/handling/helmet/helmet_drop1.ogg create mode 100644 sound/items/handling/helmet/helmet_equip1.ogg create mode 100644 sound/items/handling/helmet/helmet_pickup1.ogg create mode 100644 sound/items/handling/helmet/visor_down1.ogg create mode 100644 sound/items/handling/helmet/visor_down2.ogg create mode 100644 sound/items/handling/helmet/visor_down3.ogg create mode 100644 sound/items/handling/helmet/visor_up1.ogg create mode 100644 sound/items/handling/helmet/visor_up2.ogg diff --git a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm index 1bd3a191f76..ee7a5952444 100644 --- a/code/__DEFINES/sound.dm +++ b/code/__DEFINES/sound.dm @@ -252,3 +252,5 @@ GLOBAL_LIST_INIT(announcer_keys, list( #define SFX_DEFAULT_LIQUID_SLOSH "default_liquid_slosh" #define SFX_PLATE_ARMOR_RUSTLE "plate_armor_rustle" #define SFX_PIG_OINK "pig_oink" +#define SFX_VISOR_UP "visor_up" +#define SFX_VISOR_DOWN "visor_down" diff --git a/code/game/objects/structures/crates_lockers/closets/fitness.dm b/code/game/objects/structures/crates_lockers/closets/fitness.dm index 7b4f2d2ee2c..4e43ea2ce10 100644 --- a/code/game/objects/structures/crates_lockers/closets/fitness.dm +++ b/code/game/objects/structures/crates_lockers/closets/fitness.dm @@ -50,7 +50,7 @@ new /obj/item/gun/energy/laser/redtag(src) for(var/i in 1 to 3) new /obj/item/clothing/suit/redtag(src) - new /obj/item/clothing/head/helmet/redtaghelm(src) + new /obj/item/clothing/head/helmet/taghelm/red(src) /obj/structure/closet/lasertag/blue @@ -65,4 +65,4 @@ new /obj/item/gun/energy/laser/bluetag(src) for(var/i in 1 to 3) new /obj/item/clothing/suit/bluetag(src) - new /obj/item/clothing/head/helmet/bluetaghelm(src) + new /obj/item/clothing/head/helmet/taghelm/blue(src) diff --git a/code/game/sound.dm b/code/game/sound.dm index f77a2aebf35..380aa6c9e23 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -585,4 +585,15 @@ 'sound/mobs/non-humanoids/pig/pig1.ogg', 'sound/mobs/non-humanoids/pig/pig2.ogg', ) + if(SFX_VISOR_DOWN) + soundin = pick( + 'sound/items/handling/helmet/visor_down1.ogg', + 'sound/items/handling/helmet/visor_down2.ogg', + 'sound/items/handling/helmet/visor_down3.ogg', + ) + if(SFX_VISOR_UP) + soundin = pick( + 'sound/items/handling/helmet/visor_up1.ogg', + 'sound/items/handling/helmet/visor_up2.ogg', + ) return soundin diff --git a/code/modules/antagonists/abductor/equipment/gear/abductor_items.dm b/code/modules/antagonists/abductor/equipment/gear/abductor_items.dm index 91107529721..9f6d10677d1 100644 --- a/code/modules/antagonists/abductor/equipment/gear/abductor_items.dm +++ b/code/modules/antagonists/abductor/equipment/gear/abductor_items.dm @@ -594,6 +594,10 @@ Congratulations! You are now trained for invasive xenobiology research!"} icon_state = "alienhelmet" inhand_icon_state = null flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT + sound_vary = TRUE + equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg' + pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg' + drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg' /obj/item/clothing/head/helmet/abductor/equipped(mob/living/user, slot) . = ..() diff --git a/code/modules/cargo/packs/costumes_toys.dm b/code/modules/cargo/packs/costumes_toys.dm index a25c47c5d9f..ac60417e783 100644 --- a/code/modules/cargo/packs/costumes_toys.dm +++ b/code/modules/cargo/packs/costumes_toys.dm @@ -82,8 +82,8 @@ /obj/item/gun/energy/laser/bluetag = 3, /obj/item/clothing/suit/redtag = 3, /obj/item/clothing/suit/bluetag = 3, - /obj/item/clothing/head/helmet/redtaghelm = 3, - /obj/item/clothing/head/helmet/bluetaghelm = 3, + /obj/item/clothing/head/helmet/taghelm/blue = 3, + /obj/item/clothing/head/helmet/taghelm/red = 3, ) crate_name = "laser tag crate" diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index e24f80e3642..e78ba4ceb24 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -14,6 +14,10 @@ var/visor_flags_cover = NONE //same as above, but for flags_cover ///What to toggle when toggled with adjust_visor() var/visor_vars_to_toggle = VISOR_FLASHPROTECT | VISOR_TINT | VISOR_VISIONFLAGS | VISOR_INVISVIEW + ///Sound this item makes when its visor is flipped down + var/visor_toggle_down_sound = null + ///Sound this item makes when its visor is flipped up + var/visor_toggle_up_sound = null var/clothing_flags = NONE ///List of items that can be equipped in the suit storage slot while we're worn. @@ -533,6 +537,12 @@ BLIND // can't see anything to_chat(user, span_notice("You push [src] [up ? "out of the way" : "back into place"].")) + //play sounds when toggling the visor up or down (if there is any) + if(visor_toggle_up_sound && up) + playsound(src, visor_toggle_up_sound, 20, TRUE, -1) + if(visor_toggle_down_sound && !up) + playsound(src, visor_toggle_down_sound, 20, TRUE, -1) + update_item_action_buttons() if(user.is_holding(src)) diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index b9b371d498c..b8e6bfa7ada 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -33,6 +33,12 @@ /obj/item/clothing/head/helmet/sec var/flipped_visor = FALSE + sound_vary = TRUE + equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg' + pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg' + drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg' + visor_toggle_up_sound = SFX_VISOR_UP + visor_toggle_down_sound = SFX_VISOR_DOWN /obj/item/clothing/head/helmet/sec/Initialize(mapload) . = ..() @@ -70,8 +76,10 @@ icon_state = base_icon_state if (flipped_visor) flags_cover &= ~HEADCOVERSEYES + playsound(src, SFX_VISOR_DOWN, 20, TRUE, -1) else flags_cover |= HEADCOVERSEYES + playsound(src, SFX_VISOR_UP, 20, TRUE, -1) update_appearance() return CLICK_ACTION_SUCCESS @@ -79,6 +87,10 @@ name = "press helmet" desc = "A blue helmet used to distinguish non-combatant \"PRESS\" members, like if anyone cares." icon_state = "helmet_press" + sound_vary = TRUE + equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg' + pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg' + drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg' /obj/item/clothing/head/helmet/press/worn_overlays(mutable_appearance/standing, isinhands, icon_file) . = ..() @@ -92,6 +104,10 @@ inhand_icon_state = "helmet" armor_type = /datum/armor/helmet_alt dog_fashion = null + sound_vary = TRUE + equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg' + pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg' + drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg' /datum/armor/helmet_alt melee = 15 @@ -118,6 +134,10 @@ clothing_flags = STOPSPRESSUREDAMAGE | STACKABLE_HELMET_EXEMPT resistance_flags = FIRE_PROOF | ACID_PROOF dog_fashion = null + sound_vary = TRUE + equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg' + pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg' + drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg' /datum/armor/helmet_marine melee = 50 @@ -161,6 +181,10 @@ name = "degrading helmet" desc = "Standard issue security helmet. Due to degradation the helmet's visor obstructs the users ability to see long distances." tint = 2 + sound_vary = TRUE + equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg' + pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg' + drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg' /obj/item/clothing/head/helmet/blueshirt name = "blue helmet" @@ -168,6 +192,10 @@ icon_state = "blueshift" inhand_icon_state = "blueshift_helmet" custom_premium_price = PAYCHECK_COMMAND + sound_vary = TRUE + equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg' + pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg' + drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg' /obj/item/clothing/head/helmet/toggleable @@ -200,6 +228,12 @@ flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF visor_flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF clothing_traits = list(TRAIT_HEAD_INJURY_BLOCKED) + sound_vary = TRUE + equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg' + pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg' + drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg' + visor_toggle_up_sound = SFX_VISOR_UP + visor_toggle_down_sound = SFX_VISOR_DOWN /obj/item/clothing/head/helmet/toggleable/riot/Initialize(mapload) . = ..() @@ -241,6 +275,12 @@ COOLDOWN_DECLARE(visor_toggle_cooldown) ///Looping sound datum for the siren helmet var/datum/looping_sound/siren/weewooloop + sound_vary = TRUE + equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg' + pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg' + drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg' + visor_toggle_up_sound = SFX_VISOR_UP + visor_toggle_down_sound = SFX_VISOR_DOWN /obj/item/clothing/head/helmet/toggleable/justice/adjust_visor(mob/living/user) if(!COOLDOWN_FINISHED(src, visor_toggle_cooldown)) @@ -283,6 +323,10 @@ resistance_flags = FIRE_PROOF | ACID_PROOF dog_fashion = null clothing_traits = list(TRAIT_HEAD_INJURY_BLOCKED) + sound_vary = TRUE + equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg' + pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg' + drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg' /obj/item/clothing/head/helmet/swat/Initialize(mapload) . = ..() @@ -388,17 +432,17 @@ flags_cover = HEADCOVERSEYES dog_fashion = null -/obj/item/clothing/head/helmet/redtaghelm - name = "red laser tag helmet" - desc = "They have chosen their own end." - icon_state = "redtaghelm" +/obj/item/clothing/head/helmet/taghelm flags_cover = HEADCOVERSEYES - inhand_icon_state = "redtag_helmet" - armor_type = /datum/armor/helmet_redtaghelm // Offer about the same protection as a hardhat. + armor_type = /datum/armor/helmet_taghelm dog_fashion = null + sound_vary = TRUE + equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg' + pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg' + drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg' -/datum/armor/helmet_redtaghelm +/datum/armor/helmet_taghelm melee = 15 bullet = 10 laser = 20 @@ -406,23 +450,17 @@ bomb = 20 acid = 50 -/obj/item/clothing/head/helmet/bluetaghelm +/obj/item/clothing/head/helmet/taghelm/red + name = "red laser tag helmet" + desc = "They have chosen their own end." + icon_state = "redtaghelm" + inhand_icon_state = "redtag_helmet" + +/obj/item/clothing/head/helmet/taghelm/blue name = "blue laser tag helmet" desc = "They'll need more men." icon_state = "bluetaghelm" - flags_cover = HEADCOVERSEYES inhand_icon_state = "bluetag_helmet" - armor_type = /datum/armor/helmet_bluetaghelm - // Offer about the same protection as a hardhat. - dog_fashion = null - -/datum/armor/helmet_bluetaghelm - melee = 15 - bullet = 10 - laser = 20 - energy = 10 - bomb = 20 - acid = 50 /obj/item/clothing/head/helmet/knight name = "medieval helmet" @@ -491,6 +529,10 @@ icon_state = "rus_helmet" inhand_icon_state = "rus_helmet" armor_type = /datum/armor/helmet_rus_helmet + sound_vary = TRUE + equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg' + pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg' + drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg' /datum/armor/helmet_rus_helmet melee = 25 @@ -559,6 +601,10 @@ strip_delay = 80 dog_fashion = null armor_type = /datum/armor/helmet_military + sound_vary = TRUE + equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg' + pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg' + drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg' /datum/armor/helmet_military melee = 45 diff --git a/code/modules/clothing/outfits/standard.dm b/code/modules/clothing/outfits/standard.dm index 422cb34fa09..46bdd0742bb 100644 --- a/code/modules/clothing/outfits/standard.dm +++ b/code/modules/clothing/outfits/standard.dm @@ -98,7 +98,7 @@ box = /obj/item/storage/box ears = /obj/item/radio/headset gloves = /obj/item/clothing/gloves/color/red - head = /obj/item/clothing/head/helmet/redtaghelm + head = /obj/item/clothing/head/helmet/taghelm/red shoes = /obj/item/clothing/shoes/sneakers/red /datum/outfit/traitor_cutout @@ -141,7 +141,7 @@ suit = /obj/item/clothing/suit/bluetag suit_store = /obj/item/gun/energy/laser/bluetag gloves = /obj/item/clothing/gloves/color/blue - head = /obj/item/clothing/head/helmet/bluetaghelm + head = /obj/item/clothing/head/helmet/taghelm/blue shoes = /obj/item/clothing/shoes/sneakers/blue /datum/outfit/tunnel_clown diff --git a/code/modules/clothing/spacesuits/_spacesuits.dm b/code/modules/clothing/spacesuits/_spacesuits.dm index a9def021b96..506a4d9d9e4 100644 --- a/code/modules/clothing/spacesuits/_spacesuits.dm +++ b/code/modules/clothing/spacesuits/_spacesuits.dm @@ -25,6 +25,10 @@ resistance_flags = NONE dog_fashion = null slowdown = 0.5 + sound_vary = TRUE + equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg' + pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg' + drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg' ///How much this helmet affects fishing difficulty var/fishing_modifier = 3 diff --git a/code/modules/jobs/job_types/assistant/gimmick_assistants.dm b/code/modules/jobs/job_types/assistant/gimmick_assistants.dm index 23fd9616ee3..e86698c8720 100644 --- a/code/modules/jobs/job_types/assistant/gimmick_assistants.dm +++ b/code/modules/jobs/job_types/assistant/gimmick_assistants.dm @@ -54,7 +54,7 @@ /datum/outfit/job/assistant/gimmick/skater name = "Gimmick Assistant - Skater" - head = /obj/item/clothing/head/helmet/redtaghelm + head = /obj/item/clothing/head/helmet/taghelm/red suit = /obj/item/clothing/suit/redtag l_hand = /obj/item/melee/skateboard @@ -65,7 +65,7 @@ /datum/outfit/job/assistant/gimmick/rollerskater name = "Gimmick Assistant - Rollerskater" - head = /obj/item/clothing/head/helmet/bluetaghelm + head = /obj/item/clothing/head/helmet/taghelm/blue suit = /obj/item/clothing/suit/bluetag shoes = /obj/item/clothing/shoes/wheelys/rollerskates diff --git a/sound/items/handling/helmet/attribution.txt b/sound/items/handling/helmet/attribution.txt new file mode 100644 index 00000000000..78383b32fa3 --- /dev/null +++ b/sound/items/handling/helmet/attribution.txt @@ -0,0 +1,8 @@ +visor_up and visor_down are: +Bike helmet visor.wav by Didi0508 -- https://freesound.org/s/541921/ -- License: Attribution NonCommercial 4.0 + +helmet drop and equip: +helmet motorbike put on a head by cupido-1 -- https://freesound.org/s/614199/ -- License: Creative Commons 0 + +helmet pickup: +helmet_grabbing_and_handling_sound by Artninja -- https://freesound.org/s/725314/ -- License: Attribution 4.0 diff --git a/sound/items/handling/helmet/helmet_drop1.ogg b/sound/items/handling/helmet/helmet_drop1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..8892e120e039e68b52d83453d905efdd1cc953cf GIT binary patch literal 13153 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 literal 0 HcmV?d00001 diff --git a/sound/items/handling/helmet/helmet_pickup1.ogg b/sound/items/handling/helmet/helmet_pickup1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..b28def3a51ecf458ad65504658c1069644647fdd GIT binary patch literal 10434 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 literal 0 HcmV?d00001 diff --git a/sound/items/handling/helmet/visor_down1.ogg b/sound/items/handling/helmet/visor_down1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..df93db6b7cfb8e7ee9e4523706462812a8caa761 GIT binary patch literal 8628 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 literal 0 HcmV?d00001 diff --git a/sound/items/handling/helmet/visor_down2.ogg b/sound/items/handling/helmet/visor_down2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..1662f7cfbfecf262f0919772a9d039a8b43dd6c5 GIT binary patch literal 7995 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 tKX%E zpYES7)OKX|@TJ&*+(v6{ccWi$4E^cQ#Btf)LaFk{fe(kD;TaBrp)1!d6#rmbRA1?l zRr4oIT%v;;irNS$B&=QHQ>DH9OmL|LrfgXp|Df zOX9C@8b{%;p!#ID(lfs(-tuvd{pnn$Nact0%MJUqu_fo05zCEV&fZR?ZQrH1?5zsF z!tt`B%n&qZr1m#Xw)XOd&~xl?M7#M&1(__{@vYWx0u)#7^Is-qwTALI{<7ZoWQ#gH zh~bOL@Qyk>x|JWmOp&@H!>k-^!aQ>3y`H?<$#lOyA}tc*`N|1HhffS{8;d5b+gy8E z4SN<}#}$T>Sfl{MkP};0ck=h{xMdjEsB~#&%Ka2kcV=&h*ADgG8vBMsR7B+y?zJ`u@zjGBXc*`|1su=R%!6A=*ScnthHTK=s0yvWvo3`rgP!+vH<0c>fYe))NM+Zg%bD@y_R4UE5lEQ z&e9d@5hzzn8vZoZ?hA#{bsG#=cT-}v*Au#gVc2}?&O$+rTn7~j z%L;AMtmQnjW&2TL(B56PlRI;Uq+&mW zxoVVlr7?aC;W2%7L)}sPh4Nv?NiX!o>7o;6Q{UNZ$KP3b{^EhJ_1AuPDE7r_Xlv)f I_>|&*06_J4MF0Q* literal 0 HcmV?d00001 diff --git a/sound/items/handling/helmet/visor_down3.ogg b/sound/items/handling/helmet/visor_down3.ogg new file mode 100644 index 0000000000000000000000000000000000000000..7d2d2b2a6ae985dbd63b0656bd0dba86b2292564 GIT binary patch literal 9896 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 literal 0 HcmV?d00001 diff --git a/sound/items/handling/helmet/visor_up1.ogg b/sound/items/handling/helmet/visor_up1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..bb498d6d66368679edc862cef7b4e0ad4701649a GIT binary patch literal 8991 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 literal 0 HcmV?d00001 diff --git a/sound/items/handling/helmet/visor_up2.ogg b/sound/items/handling/helmet/visor_up2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..ffa485833e32524c5b455ec7aa95e0cafa7b1d60 GIT binary patch literal 8847 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 literal 0 HcmV?d00001 From dbd3c2f15f51d2b940ef569857ea078fb62befb4 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sun, 13 Oct 2024 14:44:13 +0000 Subject: [PATCH 015/103] Automatic changelog for PR #87165 [ci skip] --- html/changelogs/AutoChangeLog-pr-87165.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87165.yml diff --git a/html/changelogs/AutoChangeLog-pr-87165.yml b/html/changelogs/AutoChangeLog-pr-87165.yml new file mode 100644 index 00000000000..a6926fda74a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87165.yml @@ -0,0 +1,5 @@ +author: "grungussuss" +delete-after: True +changes: + - sound: "helmets and their visors make sounds now" + - code_imp: "cleaned up laser tag helmet code a bit" \ No newline at end of file From 1b0fbf5ba6c2b119cf7f6a36d2962c3c16c1bb14 Mon Sep 17 00:00:00 2001 From: grungussuss <96586172+Sadboysuss@users.noreply.github.com> Date: Sun, 13 Oct 2024 17:44:29 +0300 Subject: [PATCH 016/103] fix merge skew with cat folder [no gbp] (#87186) --- code/game/sound.dm | 16 ++++++++-------- .../non-humanoids}/cat/attribution.txt | 0 .../non-humanoids}/cat/cat_meow1.ogg | Bin .../non-humanoids}/cat/cat_meow2.ogg | Bin .../non-humanoids}/cat/cat_meow3.ogg | Bin .../non-humanoids}/cat/cat_purr1.ogg | Bin .../non-humanoids}/cat/cat_purr2.ogg | Bin .../non-humanoids}/cat/cat_purr3.ogg | Bin .../non-humanoids}/cat/cat_purr4.ogg | Bin .../non-humanoids}/cat/oranges_meow1.ogg | Bin 10 files changed, 8 insertions(+), 8 deletions(-) rename sound/{creatures => mobs/non-humanoids}/cat/attribution.txt (100%) rename sound/{creatures => mobs/non-humanoids}/cat/cat_meow1.ogg (100%) rename sound/{creatures => mobs/non-humanoids}/cat/cat_meow2.ogg (100%) rename sound/{creatures => mobs/non-humanoids}/cat/cat_meow3.ogg (100%) rename sound/{creatures => mobs/non-humanoids}/cat/cat_purr1.ogg (100%) rename sound/{creatures => mobs/non-humanoids}/cat/cat_purr2.ogg (100%) rename sound/{creatures => mobs/non-humanoids}/cat/cat_purr3.ogg (100%) rename sound/{creatures => mobs/non-humanoids}/cat/cat_purr4.ogg (100%) rename sound/{creatures => mobs/non-humanoids}/cat/oranges_meow1.ogg (100%) diff --git a/code/game/sound.dm b/code/game/sound.dm index 380aa6c9e23..23568b72bba 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -547,17 +547,17 @@ )) if(SFX_CAT_MEOW) soundin = pick_weight(list( - 'sound/creatures/cat/cat_meow1.ogg' = 33, - 'sound/creatures/cat/cat_meow2.ogg' = 33, - 'sound/creatures/cat/cat_meow3.ogg' = 33, - 'sound/creatures/cat/oranges_meow1.ogg' = 1, + 'sound/mobs/non-humanoids/cat/cat_meow1.ogg' = 33, + 'sound/mobs/non-humanoids/cat/cat_meow2.ogg' = 33, + 'sound/mobs/non-humanoids/cat/cat_meow3.ogg' = 33, + 'sound/mobs/non-humanoids/cat/oranges_meow1.ogg' = 1, )) if(SFX_CAT_PURR) soundin = pick( - 'sound/creatures/cat/cat_purr1.ogg', - 'sound/creatures/cat/cat_purr2.ogg', - 'sound/creatures/cat/cat_purr3.ogg', - 'sound/creatures/cat/cat_purr4.ogg', + 'sound/mobs/non-humanoids/cat/cat_purr1.ogg', + 'sound/mobs/non-humanoids/cat/cat_purr2.ogg', + 'sound/mobs/non-humanoids/cat/cat_purr3.ogg', + 'sound/mobs/non-humanoids/cat/cat_purr4.ogg', ) if(SFX_DEFAULT_LIQUID_SLOSH) soundin = pick( diff --git a/sound/creatures/cat/attribution.txt b/sound/mobs/non-humanoids/cat/attribution.txt similarity index 100% rename from sound/creatures/cat/attribution.txt rename to sound/mobs/non-humanoids/cat/attribution.txt diff --git a/sound/creatures/cat/cat_meow1.ogg b/sound/mobs/non-humanoids/cat/cat_meow1.ogg similarity index 100% rename from sound/creatures/cat/cat_meow1.ogg rename to sound/mobs/non-humanoids/cat/cat_meow1.ogg diff --git a/sound/creatures/cat/cat_meow2.ogg b/sound/mobs/non-humanoids/cat/cat_meow2.ogg similarity index 100% rename from sound/creatures/cat/cat_meow2.ogg rename to sound/mobs/non-humanoids/cat/cat_meow2.ogg diff --git a/sound/creatures/cat/cat_meow3.ogg b/sound/mobs/non-humanoids/cat/cat_meow3.ogg similarity index 100% rename from sound/creatures/cat/cat_meow3.ogg rename to sound/mobs/non-humanoids/cat/cat_meow3.ogg diff --git a/sound/creatures/cat/cat_purr1.ogg b/sound/mobs/non-humanoids/cat/cat_purr1.ogg similarity index 100% rename from sound/creatures/cat/cat_purr1.ogg rename to sound/mobs/non-humanoids/cat/cat_purr1.ogg diff --git a/sound/creatures/cat/cat_purr2.ogg b/sound/mobs/non-humanoids/cat/cat_purr2.ogg similarity index 100% rename from sound/creatures/cat/cat_purr2.ogg rename to sound/mobs/non-humanoids/cat/cat_purr2.ogg diff --git a/sound/creatures/cat/cat_purr3.ogg b/sound/mobs/non-humanoids/cat/cat_purr3.ogg similarity index 100% rename from sound/creatures/cat/cat_purr3.ogg rename to sound/mobs/non-humanoids/cat/cat_purr3.ogg diff --git a/sound/creatures/cat/cat_purr4.ogg b/sound/mobs/non-humanoids/cat/cat_purr4.ogg similarity index 100% rename from sound/creatures/cat/cat_purr4.ogg rename to sound/mobs/non-humanoids/cat/cat_purr4.ogg diff --git a/sound/creatures/cat/oranges_meow1.ogg b/sound/mobs/non-humanoids/cat/oranges_meow1.ogg similarity index 100% rename from sound/creatures/cat/oranges_meow1.ogg rename to sound/mobs/non-humanoids/cat/oranges_meow1.ogg From 4c5bd6c2e7c4f14b8ea0017efefbb5f16ead73c2 Mon Sep 17 00:00:00 2001 From: SmArtKar <44720187+SmArtKar@users.noreply.github.com> Date: Sun, 13 Oct 2024 17:03:35 +0200 Subject: [PATCH 017/103] Fixes incorrect use of pronoun macros in multiple lives component (#87185) ## About The Pull Request p_Theyve is not suited for this. ## Changelog :cl: spellcheck: Fixed a typo in multiple lives component /:cl: --- code/datums/components/multiple_lives.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/components/multiple_lives.dm b/code/datums/components/multiple_lives.dm index 13c3282605b..ce2c4a5053f 100644 --- a/code/datums/components/multiple_lives.dm +++ b/code/datums/components/multiple_lives.dm @@ -46,7 +46,7 @@ /datum/component/multiple_lives/proc/on_examine(mob/living/source, mob/user, list/examine_list) SIGNAL_HANDLER if(isobserver(user) || source == user) - examine_list += "[source.p_Theyve()] [lives_left] extra lives left." + examine_list += "[source.p_They()] [source.p_have()] [lives_left] extra lives left." /datum/component/multiple_lives/InheritComponent(datum/component/multiple_lives/new_comp , lives_left) src.lives_left += new_comp ? new_comp.lives_left : lives_left From 101a888946d651a6b5ff1fa2823c72e04fe8a9db Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sun, 13 Oct 2024 15:04:25 +0000 Subject: [PATCH 018/103] Automatic changelog for PR #87185 [ci skip] --- html/changelogs/AutoChangeLog-pr-87185.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87185.yml diff --git a/html/changelogs/AutoChangeLog-pr-87185.yml b/html/changelogs/AutoChangeLog-pr-87185.yml new file mode 100644 index 00000000000..81c0acb5f0e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87185.yml @@ -0,0 +1,4 @@ +author: "SmArtKar" +delete-after: True +changes: + - spellcheck: "Fixed a typo in multiple lives component" \ No newline at end of file From a2381f0022f8f527b7666a75f696f5839b821480 Mon Sep 17 00:00:00 2001 From: grungussuss <96586172+Sadboysuss@users.noreply.github.com> Date: Sun, 13 Oct 2024 18:18:47 +0300 Subject: [PATCH 019/103] Offering an item displays a balloon alert to viewers (#87174) Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> --- code/modules/mob/living/carbon/inventory.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/mob/living/carbon/inventory.dm b/code/modules/mob/living/carbon/inventory.dm index 10af8d53c80..b60c9dedb3a 100644 --- a/code/modules/mob/living/carbon/inventory.dm +++ b/code/modules/mob/living/carbon/inventory.dm @@ -441,6 +441,7 @@ if(offered_item.on_offered(src)) // see if the item interrupts with its own behavior return + balloon_alert_to_viewers("offers something") visible_message(span_notice("[src] is offering [offered ? "[offered] " : ""][offered_item]."), \ span_notice("You offer [offered ? "[offered] " : ""][offered_item]."), null, 2) From ef1b5974865c3e8d02f2757801d62a193c858cf2 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sun, 13 Oct 2024 15:19:34 +0000 Subject: [PATCH 020/103] Automatic changelog for PR #87174 [ci skip] --- html/changelogs/AutoChangeLog-pr-87174.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87174.yml diff --git a/html/changelogs/AutoChangeLog-pr-87174.yml b/html/changelogs/AutoChangeLog-pr-87174.yml new file mode 100644 index 00000000000..859787ef775 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87174.yml @@ -0,0 +1,4 @@ +author: "grungussuss" +delete-after: True +changes: + - qol: "offering an item displays a balloon alert" \ No newline at end of file From 488c2189c4ab237c140c3843e20ced55c15c47bf Mon Sep 17 00:00:00 2001 From: SmArtKar <44720187+SmArtKar@users.noreply.github.com> Date: Sun, 13 Oct 2024 19:06:51 +0200 Subject: [PATCH 021/103] Prevents ghosts from cutting tethers (#87194) ## About The Pull Request Closes #87192 ## Changelog :cl: fix: Ghosts can no longer cut people's tethers /:cl: --------- Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com> --- code/datums/components/tether.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/datums/components/tether.dm b/code/datums/components/tether.dm index d5e00ddb398..1e8313fa53b 100644 --- a/code/datums/components/tether.dm +++ b/code/datums/components/tether.dm @@ -142,6 +142,8 @@ INVOKE_ASYNC(src, PROC_REF(process_beam_click), source, location, params, user) /datum/component/tether/proc/process_beam_click(atom/source, atom/location, params, mob/user) + if (!location.can_interact(user)) + return var/list/modifiers = params2list(params) if(LAZYACCESS(modifiers, CTRL_CLICK)) location.balloon_alert(user, "cutting the tether...") From 3da0bf4b36bdf728b7cfa8bb7e339860217b423a Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sun, 13 Oct 2024 17:13:19 +0000 Subject: [PATCH 022/103] Automatic changelog for PR #87194 [ci skip] --- html/changelogs/AutoChangeLog-pr-87194.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87194.yml diff --git a/html/changelogs/AutoChangeLog-pr-87194.yml b/html/changelogs/AutoChangeLog-pr-87194.yml new file mode 100644 index 00000000000..66f4fc00b48 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87194.yml @@ -0,0 +1,4 @@ +author: "SmArtKar" +delete-after: True +changes: + - bugfix: "Ghosts can no longer cut people's tethers" \ No newline at end of file From ccde80b94314948dd03330463e5fd4e0da4bacff Mon Sep 17 00:00:00 2001 From: grungussuss <96586172+Sadboysuss@users.noreply.github.com> Date: Sun, 13 Oct 2024 23:15:46 +0300 Subject: [PATCH 023/103] gas analyzer handling sounds (#87190) ## About The Pull Request https://github.com/user-attachments/assets/2452d573-ad7b-4cef-bc70-ef4aeefcb0fe https://github.com/user-attachments/assets/e5df7d93-c2c8-408a-8437-80e4abee88d9 ## Why It's Good For The Game more handling sounds ## Changelog :cl: grungussuss sound: gas analyzer now has handling sounds /:cl: --- .../items/devices/scanners/gas_analyzer.dm | 2 ++ .../items/handling/gas_analyzer/attribution.txt | 2 ++ .../handling/gas_analyzer/gas_analyzer_drop.ogg | Bin 0 -> 7653 bytes .../gas_analyzer/gas_analyzer_pickup.ogg | Bin 0 -> 8024 bytes 4 files changed, 4 insertions(+) create mode 100644 sound/items/handling/gas_analyzer/attribution.txt create mode 100644 sound/items/handling/gas_analyzer/gas_analyzer_drop.ogg create mode 100644 sound/items/handling/gas_analyzer/gas_analyzer_pickup.ogg diff --git a/code/game/objects/items/devices/scanners/gas_analyzer.dm b/code/game/objects/items/devices/scanners/gas_analyzer.dm index d5324b4df0d..9f42643a439 100644 --- a/code/game/objects/items/devices/scanners/gas_analyzer.dm +++ b/code/game/objects/items/devices/scanners/gas_analyzer.dm @@ -18,6 +18,8 @@ custom_materials = list(/datum/material/iron=SMALL_MATERIAL_AMOUNT * 0.3, /datum/material/glass=SMALL_MATERIAL_AMOUNT * 0.2) grind_results = list(/datum/reagent/mercury = 5, /datum/reagent/iron = 5, /datum/reagent/silicon = 5) interaction_flags_click = NEED_LITERACY|NEED_LIGHT|ALLOW_RESTING + pickup_sound = 'sound/items/handling/gas_analyzer/gas_analyzer_pickup.ogg' + drop_sound = 'sound/items/handling/gas_analyzer/gas_analyzer_drop.ogg' /// Boolean whether this has a CD var/cooldown = FALSE /// The time in deciseconds diff --git a/sound/items/handling/gas_analyzer/attribution.txt b/sound/items/handling/gas_analyzer/attribution.txt new file mode 100644 index 00000000000..a2960bacfbb --- /dev/null +++ b/sound/items/handling/gas_analyzer/attribution.txt @@ -0,0 +1,2 @@ +gas_analyzer handling sounds made by sadboysuss +license: CC-BY-SA \ No newline at end of file diff --git a/sound/items/handling/gas_analyzer/gas_analyzer_drop.ogg b/sound/items/handling/gas_analyzer/gas_analyzer_drop.ogg new file mode 100644 index 0000000000000000000000000000000000000000..779a600dee956e81b2f0249cd761d4b6bfd5f0bc GIT binary patch literal 7653 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 literal 0 HcmV?d00001 diff --git a/sound/items/handling/gas_analyzer/gas_analyzer_pickup.ogg b/sound/items/handling/gas_analyzer/gas_analyzer_pickup.ogg new file mode 100644 index 0000000000000000000000000000000000000000..dc3f5988ae8693709d22026c51c7ab1a6cb0b9d4 GIT binary patch literal 8024 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 Kfk6jG;Qs;I6XDzd literal 0 HcmV?d00001 From ba0da2fdea80af13a96c557295264b674ab29df6 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sun, 13 Oct 2024 20:16:07 +0000 Subject: [PATCH 024/103] Automatic changelog for PR #87190 [ci skip] --- html/changelogs/AutoChangeLog-pr-87190.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87190.yml diff --git a/html/changelogs/AutoChangeLog-pr-87190.yml b/html/changelogs/AutoChangeLog-pr-87190.yml new file mode 100644 index 00000000000..820b128f4fa --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87190.yml @@ -0,0 +1,4 @@ +author: "grungussuss" +delete-after: True +changes: + - sound: "gas analyzer now has handling sounds" \ No newline at end of file From 0bf6baab8da1cb076a22e98532c629b213301d8b Mon Sep 17 00:00:00 2001 From: carlarctg <53100513+carlarctg@users.noreply.github.com> Date: Sun, 13 Oct 2024 17:17:46 -0300 Subject: [PATCH 025/103] you can use lizards to get lizard organs in the dna infuser (#87204) ## About The Pull Request title, adds a infusion entry for lizard basic mobs. ## Why It's Good For The Game it is a glaring oversight lizards dont give lizard stuff. i mean come on. moths do, cats do, the same reasons apply. ## Changelog :cl: add: you can use lizards to get lizard organs in the dna infuser /:cl: --- .../infuser_tier_zero_entries.dm | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/code/game/machinery/dna_infuser/infuser_entries/infuser_tier_zero_entries.dm b/code/game/machinery/dna_infuser/infuser_entries/infuser_tier_zero_entries.dm index 670abc2d87b..e93cffd5143 100644 --- a/code/game/machinery/dna_infuser/infuser_entries/infuser_tier_zero_entries.dm +++ b/code/game/machinery/dna_infuser/infuser_entries/infuser_tier_zero_entries.dm @@ -69,6 +69,30 @@ infusion_desc = "fluffy" tier = DNA_MUTANT_TIER_ZERO +/datum/infuser_entry/lizard + name = "Lizard" + infuse_mob_name = "lacertilia" + desc = "Turns out infusing most humanoids with lizard DNA creates features remarkably similar to those of lizardpeople. What a strange coincidence." + threshold_desc = DNA_INFUSION_NO_THRESHOLD + qualities = list( + "long tails", + "decorative horns", + "aesthetic snouts", + "not much honestly", + ) + input_obj_or_mob = list( + /mob/living/basic/lizard, + ) + output_organs = list( + /obj/item/organ/external/horns, + /obj/item/organ/external/frills, + /obj/item/organ/external/snout, + /obj/item/organ/external/tail/lizard, + /obj/item/organ/internal/tongue/lizard, + ) + infusion_desc = "scaly" + tier = DNA_MUTANT_TIER_ZERO + /datum/infuser_entry/felinid name = "Cat" infuse_mob_name = "feline" From fee5781aeb0cce100641400c2511e3c7d41a0910 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sun, 13 Oct 2024 20:18:23 +0000 Subject: [PATCH 026/103] Automatic changelog for PR #87204 [ci skip] --- html/changelogs/AutoChangeLog-pr-87204.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87204.yml diff --git a/html/changelogs/AutoChangeLog-pr-87204.yml b/html/changelogs/AutoChangeLog-pr-87204.yml new file mode 100644 index 00000000000..a94eb3b7373 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87204.yml @@ -0,0 +1,4 @@ +author: "carlarctg" +delete-after: True +changes: + - rscadd: "you can use lizards to get lizard organs in the dna infuser" \ No newline at end of file From 91d3c8c682d916ad824ceca42f272a6aa7bb8f5c Mon Sep 17 00:00:00 2001 From: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Date: Sun, 13 Oct 2024 19:15:20 -0500 Subject: [PATCH 027/103] Makes the 1643 error more explicit (#87172) I wrote this expecting that there would be more broken versions in the distant future, so we could simply re-use this block for those But I forgot this will most likely be seen by fresh contributors or people who don't even contribute and are just testing things So I'm just making the message as explicit as possible --- code/__byond_version_compat.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/__byond_version_compat.dm b/code/__byond_version_compat.dm index 6680e655551..769f3984cf1 100644 --- a/code/__byond_version_compat.dm +++ b/code/__byond_version_compat.dm @@ -11,7 +11,9 @@ // Unable to compile this version thanks to mutable appearance changes #if (DM_VERSION == 515 && DM_BUILD == 1643) -#error This version of BYOND cannot compile this project. Visit www.byond.com/download/build to download an older version or update (if possible). +#error This specific version of BYOND (515.1643) cannot compile this project. +#error If 515.1643 IS NOT the latest version of BYOND, then you should simply update as normal. +#error But if 515.1643 IS the latest version of BYOND, i.e. you can't update, then you MUST visit www.byond.com/download/build and downgrade to 515.1642. #endif // Keep savefile compatibilty at minimum supported level From d051ee18d9aa20aa387d8f54e23d0c9f1f3c65c9 Mon Sep 17 00:00:00 2001 From: Hardly3D <66234359+Hardly3D@users.noreply.github.com> Date: Sun, 13 Oct 2024 21:31:45 -0300 Subject: [PATCH 028/103] Fixes a small typo for adjusting kitsune masks (#87195) ## About The Pull Request I copied bandana's examine text and didn't really think much about it, whoops. ## Why It's Good For The Game Fixes a minor spelling oversight ## Changelog :cl: Hardly3D spellcheck: fixes a small error in text when adjusting kitsune masks /:cl: --- code/modules/clothing/masks/costume.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/clothing/masks/costume.dm b/code/modules/clothing/masks/costume.dm index ff980442565..37a3fc7ccb5 100644 --- a/code/modules/clothing/masks/costume.dm +++ b/code/modules/clothing/masks/costume.dm @@ -52,7 +52,7 @@ . += "Use in-hand to wear as a mask!" return else - . += "Use in-hand to tie it up to wear as a hat!" + . += "Use in-hand to wear as a hat!" /obj/item/clothing/mask/kitsune/attack_self(mob/user) adjust_visor(user) From 5a640c70d514c541da1220f85ac89ba31ddcd98e Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 00:32:20 +0000 Subject: [PATCH 029/103] Automatic changelog for PR #87195 [ci skip] --- html/changelogs/AutoChangeLog-pr-87195.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87195.yml diff --git a/html/changelogs/AutoChangeLog-pr-87195.yml b/html/changelogs/AutoChangeLog-pr-87195.yml new file mode 100644 index 00000000000..b4bbda75eda --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87195.yml @@ -0,0 +1,4 @@ +author: "Hardly3D" +delete-after: True +changes: + - spellcheck: "fixes a small error in text when adjusting kitsune masks" \ No newline at end of file From 8efd775f2e9faaddcf2d6c7483a450414e2533be Mon Sep 17 00:00:00 2001 From: Jerry <55355646+Jewelry-x@users.noreply.github.com> Date: Mon, 14 Oct 2024 03:45:38 +0300 Subject: [PATCH 030/103] Improvements to mech sound logic (#87184) ## About The Pull Request This PR makes it so mechs don't play footsteps twice diagonally, and also play the turn sound only when the sprite turns. No more ear blasting when walking diagonally! ## Why It's Good For The Game It enhances the sound design by ensuring mechs no longer play footsteps twice when moving diagonally and that the turn sound only plays when the sprite actually turns. ## Changelog :cl: fix: fixed mech step sound playing twice diagonally fix: fixed turn sound playing every time you move diagonally, now only plays when the sprite turns /:cl: --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> --- code/modules/vehicles/mecha/mecha_movement.dm | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/code/modules/vehicles/mecha/mecha_movement.dm b/code/modules/vehicles/mecha/mecha_movement.dm index dcd6f47c4fc..a4b21190a1e 100644 --- a/code/modules/vehicles/mecha/mecha_movement.dm +++ b/code/modules/vehicles/mecha/mecha_movement.dm @@ -29,6 +29,11 @@ /obj/vehicle/sealed/mecha/proc/play_stepsound() if(mecha_flags & QUIET_STEPS) return + + // if we are on the second step of the diagonal movement, don't play step sound + if(src.moving_diagonally == SECOND_DIAG_STEP) + return + playsound(src, stepsound, 40, TRUE) // Do whatever you do to mobs to these fuckers too @@ -131,9 +136,8 @@ break //if we're not facing the way we're going rotate us + // if we're not strafing or if we are forced to rotate or if we are holding down the key if(dir != direction && (!strafe || forcerotate || keyheld)) - if(dir != direction && !(mecha_flags & QUIET_TURNS) && !step_silent) - playsound(src,turnsound,40,TRUE) setDir(direction) if(keyheld || !pivot_step) //If we pivot step, we don't return here so we don't just come to a stop return TRUE @@ -141,6 +145,11 @@ set_glide_size(DELAY_TO_GLIDE_SIZE(movedelay)) //Otherwise just walk normally . = try_step_multiz(direction) + + //dir and olddir are the current direction of the sprite and the old direction of the sprite respectively + if (dir != olddir && !(mecha_flags & QUIET_TURNS)) + playsound(src, turnsound, 40, TRUE) + if(phasing) use_energy(phasing_energy_drain) if(strafe) From f30dbcff0f5ef33ea5a304af89c36d72a85bf2df Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 00:45:59 +0000 Subject: [PATCH 031/103] Automatic changelog for PR #87184 [ci skip] --- html/changelogs/AutoChangeLog-pr-87184.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87184.yml diff --git a/html/changelogs/AutoChangeLog-pr-87184.yml b/html/changelogs/AutoChangeLog-pr-87184.yml new file mode 100644 index 00000000000..a48f9591b21 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87184.yml @@ -0,0 +1,5 @@ +author: "Jewelry-x" +delete-after: True +changes: + - bugfix: "fixed mech step sound playing twice diagonally" + - bugfix: "fixed turn sound playing every time you move diagonally, now only plays when the sprite turns" \ No newline at end of file From e8dad2f2b302076c7ec46451e1353c13c3770af8 Mon Sep 17 00:00:00 2001 From: carlarctg <53100513+carlarctg@users.noreply.github.com> Date: Mon, 14 Oct 2024 05:47:43 -0300 Subject: [PATCH 032/103] Adds a flipping skillchip, the Chipped quirk, a chip connector implant, and a quirk to spawn with it. (#87082) Added the FOSBURY skillchip, found in hacked toy vendors. This skillchip allows you to bypass the emote cooldown when flipping or spinning. However, if used too often, it will lower the chip's integrity. At first, this is harmless, emitting sparks only, but at a certain point, your head starts smoking, your brain begins short-circuiting, and once the chip has lost all integrity your head will explode in a shower of gore, giving you a cranial fissure! Added the Chipped quirk. It allows you to spawn with one skillchip. Of note here is that the only chips you can spawn with are the 'default' skillchips found in the toy vendor, you can NOT spawn in with the fosbury chip or with the musical one. Added the Chip Connector quirk. It contains a new implant, the chip connector, which allows you to install and take out skillchips at any time. Being EMPed will cause it to drop one random skillchip, and if you try using it while it's malfunctioning you'll take out a bit of your brain instead. It can also be made at the exosuit fabricator after basic research. Renamed the organ slots for brain implants and made the connector implant take the CNS slot. > Added the FOSBURY skillchip, found in hacked toy vendors. This skillchip allows you to bypass the emote cooldown when flipping or spinning. However, if used too often, it will lower the chip's integrity. At first, this is harmless, emitting sparks only, but at a certain point, your head starts smoking, your brain begins short-circuiting, and once the chip has lost all integrity your head will explode in a shower of gore, giving you a cranial fissure! During the time flipping was bugged to have no cooldown or delay, it was really funny seeing people flip at increasingly higher speeds. Many people miss it, and to be honest, so do I. But everything needs limits or it stops being funny and ends up being overdone. To this end this skillchip lets people relive those days of glory, until they go out in a beautiful explosion. The chip will last a very long while if well taken care of, and there are plenty of warning signs before it gets too risky to use, but we know what players are actually gonna do, and I am looking forward to it. > Added the Chipped quirk. It allows you to spawn with one skillchip. Of note here is that the only chips you can spawn with are the 'default' skillchips found in the toy vendor, you can NOT spawn in with the fosbury chip or with the musical one. Chips can be kind of neat sometimes, and I think always having one as part of your character can make for some fun things as the consistency of it makes it more likely to stick in your mind to do stuff with. > 'but can't you just go to the vendor at the start of every shift?' Sure. But we have loadouts. We have tagger, musician, and many other things that are 'roundstart bloat', and while that by itself is not an excuse, it's part of the design of character setup: Minimizing the time spent running around the station for things your character is supposed to have for their personality/roleplay/gimmick. They're paying the cost of quirk points for it, anyways. > Added the Chip Connector quirk. It contains a new implant, the chip connector, which allows you to install and take out skillchips at any time. Being EMPed will cause it to drop one random skillchip, and if you try using it while it's malfunctioning you'll take out a bit of your brain instead. It can also be made at the exosuit fabricator after basic research. I like the idea of having a gross usb drive on the back of your brain that you shove chips into and out of, especially if it drops pieces of your brain when malfunctioning. It also adds a little bit of extra relevance to skillchips now that you don't need to spend 15 (!!!) seconds inside a skillstation to add one. The cost is, as stated, quite literally losing your brain on EMP's and the moderately expensive sum of 4 points. > Renamed the organ slots for brain implants and made the connector implant take the CNS slot. It annoys me that there were organ slots for 'anti drop implant'. Now they're just slots for anything meant to connect to the cerebellum/central nervous system, making it less brute forcey and also adding the start of some fun exclusivity between brain implants. :cl: add: Added the FOSBURY skillchip, found in hacked toy vendors. This skillchip allows you to bypass the emote cooldown when flipping or spinning. However, if used too often, it will lower the chip's integrity and cause malfunctions. add: Added the Chipped quirk. It allows you to spawn with one base skillchip. (not the one above) add: Added the Chip Connector quirk. It contains a new implant, the chip connector, which allows you to install and take out skillchips at any time. code: Renamed the organ slots for brain implants and made the connector implant take the CNS slot. --------- Co-Authored-By: Ghom <42542238+Ghommie@users.noreply.github.com> --- code/__DEFINES/DNA.dm | 8 +- code/__DEFINES/combat.dm | 2 +- .../signals/signals_mob/signals_mob_main.dm | 4 + code/_globalvars/lists/quirks.dm | 16 ++ code/datums/emotes.dm | 9 +- .../quirks/positive_quirks/chip_connector.dm | 28 +++ code/datums/quirks/positive_quirks/chipped.dm | 57 ++++++ code/datums/station_traits/positive_traits.dm | 2 +- .../debuffs/temperature_over_time.dm | 88 +++++++++ .../objects/effects/spawners/gibspawner.dm | 2 - code/modules/client/preferences/chipped.dm | 20 ++ .../generic_skillchips/acrobatics.dm | 171 ++++++++++++++++++ code/modules/religion/rites.dm | 3 +- .../research/designs/medical_designs.dm | 17 ++ .../research/techweb/nodes/cyborg_nodes.dm | 1 + .../internal/cyberimp/augments_internal.dm | 105 ++++++++++- code/modules/vending/games.dm | 1 + icons/obj/medical/organs/organs.dmi | Bin 40412 -> 42255 bytes .../modules/implants/code/augments_head.dm | 4 +- .../implants/code/augments_internal.dm | 2 +- tgstation.dme | 5 + .../character_preferences/chipped.tsx | 6 + 22 files changed, 534 insertions(+), 17 deletions(-) create mode 100644 code/datums/quirks/positive_quirks/chip_connector.dm create mode 100644 code/datums/quirks/positive_quirks/chipped.dm create mode 100644 code/datums/status_effects/debuffs/temperature_over_time.dm create mode 100644 code/modules/client/preferences/chipped.dm create mode 100644 code/modules/library/skill_learning/generic_skillchips/acrobatics.dm create mode 100644 tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/character_preferences/chipped.tsx diff --git a/code/__DEFINES/DNA.dm b/code/__DEFINES/DNA.dm index 99a47f7c4e5..56b7f8698ff 100644 --- a/code/__DEFINES/DNA.dm +++ b/code/__DEFINES/DNA.dm @@ -92,8 +92,8 @@ #define ORGAN_SLOT_ADAMANTINE_RESONATOR "adamantine_resonator" #define ORGAN_SLOT_APPENDIX "appendix" #define ORGAN_SLOT_BRAIN "brain" -#define ORGAN_SLOT_BRAIN_ANTIDROP "brain_antidrop" -#define ORGAN_SLOT_BRAIN_ANTISTUN "brain_antistun" +#define ORGAN_SLOT_BRAIN_CEREBELLUM "brain_antidrop" +#define ORGAN_SLOT_BRAIN_CNS "brain_antistun" #define ORGAN_SLOT_BREATHING_TUBE "breathing_tube" #define ORGAN_SLOT_EARS "ears" #define ORGAN_SLOT_EYES "eye_sight" @@ -176,8 +176,8 @@ GLOBAL_LIST_INIT(organ_process_order, list( ORGAN_SLOT_VOICE, ORGAN_SLOT_ADAMANTINE_RESONATOR, ORGAN_SLOT_HEART_AID, - ORGAN_SLOT_BRAIN_ANTIDROP, - ORGAN_SLOT_BRAIN_ANTISTUN, + ORGAN_SLOT_BRAIN_CEREBELLUM, + ORGAN_SLOT_BRAIN_CNS, ORGAN_SLOT_PARASITE_EGG, ORGAN_SLOT_MONSTER_CORE, ORGAN_SLOT_XENO_PLASMAVESSEL, diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm index 439d803fb94..fbdb630174f 100644 --- a/code/__DEFINES/combat.dm +++ b/code/__DEFINES/combat.dm @@ -239,8 +239,8 @@ GLOBAL_LIST_INIT(shove_disarming_types, typecacheof(list( /// ex_act() with EXPLODE_DEVASTATE severity will gib mobs with less than this much bomb armor #define EXPLODE_GIB_THRESHOLD 50 -#define EMP_HEAVY 1 #define EMP_LIGHT 2 +#define EMP_HEAVY 1 #define GRENADE_CLUMSY_FUMBLE 1 #define GRENADE_NONCLUMSY_FUMBLE 2 diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm index 4a558c5fa7e..51240110062 100644 --- a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm +++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm @@ -150,6 +150,10 @@ ///from /mob/say_dead(): (mob/speaker, message) #define COMSIG_MOB_DEADSAY "mob_deadsay" #define MOB_DEADSAY_SIGNAL_INTERCEPT (1<<0) +///from /mob/living/check_cooldown(): () +#define COMSIG_MOB_EMOTE_COOLDOWN_CHECK "mob_emote_cd" + /// make a wild guess + #define COMPONENT_EMOTE_COOLDOWN_BYPASS (1<<0) ///from /mob/living/emote(): () #define COMSIG_MOB_EMOTE "mob_emote" ///from base of mob/swap_hand(): (obj/item/currently_held_item) diff --git a/code/_globalvars/lists/quirks.dm b/code/_globalvars/lists/quirks.dm index 83c15f6ea9c..3be9266a87c 100644 --- a/code/_globalvars/lists/quirks.dm +++ b/code/_globalvars/lists/quirks.dm @@ -100,3 +100,19 @@ GLOBAL_LIST_INIT(paraplegic_choice, list( "Default" = FALSE, "Amputee" = TRUE, )) + +///chipped Quirk +GLOBAL_LIST_INIT(quirk_chipped_choice, list( + "Basketsoft 3000" = /obj/item/skillchip/basketweaving, + "WINE" = /obj/item/skillchip/wine_taster, + "Hedge 3" = /obj/item/skillchip/bonsai, + "Skillchip adapter" = /obj/item/skillchip/useless_adapter, + "N16H7M4R3" = /obj/item/skillchip/light_remover, + "3NTR41LS" = /obj/item/skillchip/entrails_reader, + "GENUINE ID Appraisal Now!" = /obj/item/skillchip/appraiser, + "Le S48R4G3" = /obj/item/skillchip/sabrage, + "Integrated Intuitive Thinking and Judging" = /obj/item/skillchip/intj, + "F0RC3 4DD1CT10N" = /obj/item/skillchip/drunken_brawler, + "\"Space Station 13: The Musical\"" = /obj/item/skillchip/musical, + "Mast-Angl-Er skillchip" = /obj/item/skillchip/master_angler, +)) diff --git a/code/datums/emotes.dm b/code/datums/emotes.dm index 011ca29d8cc..2832cef8ffb 100644 --- a/code/datums/emotes.dm +++ b/code/datums/emotes.dm @@ -251,11 +251,14 @@ * Returns FALSE if the cooldown is not over, TRUE if the cooldown is over. */ /datum/emote/proc/check_cooldown(mob/user, intentional) + + if(SEND_SIGNAL(user, COMSIG_MOB_EMOTE_COOLDOWN_CHECK, src.key, intentional) & COMPONENT_EMOTE_COOLDOWN_BYPASS) + intentional = FALSE + if(!intentional) return TRUE - //NOVA EDIT CHANGE BEGIN - EMOTES - GLOBAL COOLDOWN - //if(user.emotes_used && user.emotes_used[src] + cooldown > world.time) - NOVA EDIT - ORIGINAL - if(user.nextsoundemote > world.time) + + if(user.nextsoundemote > world.time) // NOVA EDIT CHANGE - ORIGINAL: if(user.emotes_used && user.emotes_used[src] + cooldown > world.time) var/datum/emote/default_emote = /datum/emote if(cooldown > initial(default_emote.cooldown)) // only worry about longer-than-normal emotes to_chat(user, span_danger("You must wait another [DisplayTimeText(user.nextsoundemote - world.time)] before using that emote.")) diff --git a/code/datums/quirks/positive_quirks/chip_connector.dm b/code/datums/quirks/positive_quirks/chip_connector.dm new file mode 100644 index 00000000000..c12809bbfd2 --- /dev/null +++ b/code/datums/quirks/positive_quirks/chip_connector.dm @@ -0,0 +1,28 @@ +/datum/quirk/chip_connector + name = "Chip Connector" + desc = "You had a device installed that lets you manually add and remove skillchips! Just try not to get near any electromagnetic pulses." + icon = FA_ICON_PLUG + value = 4 + gain_text = span_notice("You feel CONNECTED.") + lose_text = span_danger("You don't feel so CONNECTED anymore.") + medical_record_text = "Patient has a cybernetic implant on their back of their head that lets them install and remove skillchips at will. Gross." + mail_goodies = list() + var/obj/item/organ/internal/cyberimp/brain/connector/connector + +/datum/quirk/chip_connector/New() + . = ..() + mail_goodies = assoc_to_keys(GLOB.quirk_chipped_choice) + /datum/quirk/chipped::mail_goodies + +/datum/quirk/chip_connector/add_unique(client/client_source) + . = ..() + var/mob/living/carbon/carbon_holder = quirk_holder + if(!iscarbon(quirk_holder)) + return + connector = new() + connector.Insert(carbon_holder, special = TRUE) + +/datum/quirk/chip_connector/post_add() + to_chat(quirk_holder, span_boldannounce(desc)) // efficiency is clever laziness + +/datum/quirk/chip_connector/remove() + qdel(connector) diff --git a/code/datums/quirks/positive_quirks/chipped.dm b/code/datums/quirks/positive_quirks/chipped.dm new file mode 100644 index 00000000000..30c226c1300 --- /dev/null +++ b/code/datums/quirks/positive_quirks/chipped.dm @@ -0,0 +1,57 @@ +/datum/quirk/chipped + name = "Chipped" + desc = "You got caught up in the skillchip craze a few years back, and had one of the commercially available chips implanted into yourself." + icon = FA_ICON_MICROCHIP + value = 2 + gain_text = span_notice("The chip in your head itches a bit.") + lose_text = span_danger("You don't feel so chipped anymore..") + medical_record_text = "Patient explained how they got caught up in 'the skillchip chase' recently, and now the chip in they head itches every so often. Dumbass." + mail_goodies = list( + /obj/item/skillchip/matrix_taunt, + /obj/item/skillchip/big_pointer, + /obj/item/skillchip/acrobatics, + /obj/item/storage/pill_bottle/mannitol/braintumor, + ) + /// Variable that holds the chip, used on removal. + var/obj/item/skillchip/installed_chip + var/datum/callback/itchy_timer + +/datum/quirk_constant_data/chipped + associated_typepath = /datum/quirk/chipped + customization_options = list(/datum/preference/choiced/chipped) + +/datum/quirk/chipped/add_to_holder(mob/living/new_holder, quirk_transfer, client/client_source) + var/obj/item/skillchip/chip_pref = GLOB.quirk_chipped_choice[client_source?.prefs?.read_preference(/datum/preference/choiced/chipped)] + + if(!chip_pref) + return ..() + + gain_text = span_notice("The [chip_pref] in your head itches a bit.") + lose_text = span_notice("Your head stops itching so much.") + return ..() + +/datum/quirk/chipped/add_unique(client/client_source) + + var/preferred_chip = GLOB.quirk_chipped_choice[client_source?.prefs?.read_preference(/datum/preference/choiced/chipped)] + if(isnull(preferred_chip)) //Client is gone or they chose a random chip + preferred_chip = GLOB.quirk_chipped_choice[pick(GLOB.quirk_chipped_choice)] + + var/mob/living/carbon/quirk_holder_carbon = quirk_holder + if(iscarbon(quirk_holder)) + installed_chip = new preferred_chip() + quirk_holder_carbon.implant_skillchip(installed_chip, force = TRUE) + installed_chip.try_activate_skillchip(silent = FALSE, force = TRUE) + + var/obj/item/organ/internal/brain/itchy_brain = quirk_holder.get_organ_by_type(ORGAN_SLOT_BRAIN) + itchy_timer = addtimer(CALLBACK(src, PROC_REF(cause_itchy), itchy_brain), rand(5 SECONDS, 10 MINUTES)) // they get The Itch from a poor quality install every so often + +/datum/quirk/chipped/remove() + qdel(installed_chip) + deltimer(itchy_timer) + . = ..() + +/datum/quirk/chipped/proc/cause_itchy(obj/item/organ/internal/brain/itchy_brain) + + itchy_brain.apply_organ_damage(rand(1, 5), maximum = itchy_brain.maxHealth * 0.3) + to_chat(itchy_brain.owner, span_warning("Your [itchy_brain] itches.")) + itchy_timer = addtimer(CALLBACK(itchy_brain, PROC_REF(cause_itchy)), rand(5 SECONDS, 10 MINUTES)) // it will never end diff --git a/code/datums/station_traits/positive_traits.dm b/code/datums/station_traits/positive_traits.dm index a963803dd76..8e3c7e55616 100644 --- a/code/datums/station_traits/positive_traits.dm +++ b/code/datums/station_traits/positive_traits.dm @@ -272,7 +272,7 @@ /datum/job/clown = /obj/item/organ/internal/cyberimp/brain/anti_stun, //HONK! /datum/job/cook = /obj/item/organ/internal/cyberimp/chest/nutriment/plus, /datum/job/coroner = /obj/item/organ/internal/tongue/bone, //hes got a bone to pick with you - /datum/job/curator = /obj/item/organ/internal/eyes/robotic/glow, + /datum/job/curator = /obj/item/organ/internal/cyberimp/brain/connector, /datum/job/detective = /obj/item/organ/internal/lungs/cybernetic/tier3, /datum/job/doctor = /obj/item/organ/internal/cyberimp/arm/surgery, /datum/job/geneticist = /obj/item/organ/internal/fly, //we don't care about implants, we have cancer. diff --git a/code/datums/status_effects/debuffs/temperature_over_time.dm b/code/datums/status_effects/debuffs/temperature_over_time.dm new file mode 100644 index 00000000000..cb1a73cc2ae --- /dev/null +++ b/code/datums/status_effects/debuffs/temperature_over_time.dm @@ -0,0 +1,88 @@ +/** + * Affects temperature over time. + * I don't know how this wasn't a thing already. + + * Incidentally: Thermal insulation is actually really bad for this, since it traps the temperature inside. + * If you're going to use this in a situation where it'd make sense for insulation to hinder its effects, + * you should to check for it manually. + */ + +/datum/status_effect/temperature_over_time + id = "temp_ot" + alert_type = null // no alert. you do the sprite + remove_on_fullheal = TRUE + on_remove_on_mob_delete = TRUE + tick_interval = 1 SECONDS + + duration = 60 SECONDS + + /// How much to change temperature per second. + var/temperature_value = 10 + /// How much to remove from above variable per second. + var/temperature_decay = 1 + /// Cap of temperature, won't apply the effect above this. + var/capped_temperature_hot = BODYTEMP_HEAT_WARNING_2 + /// Cap of temperature, won't apply the effect below this. + var/capped_temperature_cold = BODYTEMP_COLD_WARNING_2 + /// Effect removed outright at this temperature or above. + var/removal_temperature_hot = BODYTEMP_HEAT_WARNING_3 + /// Effect removed outright at this temperature or below. + var/removal_temperature_cold = BODYTEMP_COLD_WARNING_3 + +/datum/status_effect/temperature_over_time/on_creation(mob/living/new_owner, duration = 10 SECONDS) + src.duration = duration + return ..() + +/datum/status_effect/temperature_over_time/on_apply() + . = ..() + if((HAS_TRAIT(owner, TRAIT_RESISTHEAT) && temperature_value > 1)) + qdel(src) // git out + else if((HAS_TRAIT(owner, TRAIT_RESISTCOLD) && temperature_value < 1)) + qdel(src) // git out + +/datum/status_effect/temperature_over_time/on_remove() + return ..() + +/datum/status_effect/temperature_over_time/get_examine_text() + + if(temperature_value > 0) + return "[owner.p_They()] [owner.p_are()] sweating bullets!" + + return "[owner.p_They()] [owner.p_are()] shivering!" + +/datum/status_effect/temperature_over_time/tick(seconds_between_ticks) + if((TRAIT_RESISTHEAT && temperature_value > 1) || (TRAIT_RESISTCOLD && temperature_value < 1)) + qdel(src) // git out + return + temperaturetion(seconds_between_ticks) + +/datum/status_effect/temperature_over_time/proc/temperaturetion(seconds_per_tick) + + // I feel like there should be an easier way to do this but I am a fool + if(capped_temperature_hot && owner.bodytemperature > capped_temperature_hot) + return + if(capped_temperature_cold && owner.bodytemperature < capped_temperature_cold) + return + + owner.adjust_bodytemperature(temperature_value * seconds_per_tick) // note that this has no softcap reduction, unlike fire + temperature_value += temperature_decay + if(temperature_value == 0) + qdel(src) + + if(removal_temperature_hot && owner.bodytemperature > removal_temperature_hot) + qdel(src) + return + if(removal_temperature_cold && owner.bodytemperature < removal_temperature_cold) + qdel(src) + return + +/datum/status_effect/temperature_over_time/chip_overheat + id = "temp_ot_chip" + temperature_value = 15 + temperature_decay = -0.5 + duration = 15 SECONDS + capped_temperature_hot = BODYTEMP_HEAT_WARNING_3 + removal_temperature_cold = BODYTEMP_COLD_WARNING_1 // internal cooling... + + removal_temperature_hot = null + capped_temperature_cold = null diff --git a/code/game/objects/effects/spawners/gibspawner.dm b/code/game/objects/effects/spawners/gibspawner.dm index d05d5f03925..92343d91d21 100644 --- a/code/game/objects/effects/spawners/gibspawner.dm +++ b/code/game/objects/effects/spawners/gibspawner.dm @@ -71,8 +71,6 @@ /obj/effect/gibspawner/generic/animal gib_mob_type = /mob/living/basic/pet - - /obj/effect/gibspawner/human gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/up, /obj/effect/decal/cleanable/blood/gibs/down, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/body, /obj/effect/decal/cleanable/blood/gibs/limb, /obj/effect/decal/cleanable/blood/gibs/core) gibamounts = list(1, 1, 1, 1, 1, 1, 1) diff --git a/code/modules/client/preferences/chipped.dm b/code/modules/client/preferences/chipped.dm new file mode 100644 index 00000000000..2ce73dbbb0d --- /dev/null +++ b/code/modules/client/preferences/chipped.dm @@ -0,0 +1,20 @@ +/datum/preference/choiced/chipped + category = PREFERENCE_CATEGORY_MANUALLY_RENDERED + savefile_key = "chipped" + savefile_identifier = PREFERENCE_CHARACTER + +/datum/preference/choiced/chipped/create_default_value() + return "Random" + +/datum/preference/choiced/chipped/init_possible_values() + return list("Random") + assoc_to_keys(GLOB.quirk_chipped_choice) + +/datum/preference/choiced/chipped/is_accessible(datum/preferences/preferences) + . = ..() + if (!.) + return FALSE + + return /datum/quirk/chipped::name in preferences.all_quirks + +/datum/preference/choiced/chipped/apply_to_human(mob/living/carbon/human/target, value) + return diff --git a/code/modules/library/skill_learning/generic_skillchips/acrobatics.dm b/code/modules/library/skill_learning/generic_skillchips/acrobatics.dm new file mode 100644 index 00000000000..75705aca97a --- /dev/null +++ b/code/modules/library/skill_learning/generic_skillchips/acrobatics.dm @@ -0,0 +1,171 @@ +/obj/item/skillchip/acrobatics + name = "old F058UR7 skillchip" + desc = "A formerly cutting-edge skillchip that granted the user an advanced, Olympian-level degree of kinesthesics for flipping, spinning, and absolutely nothing else. \ + It was pulled off the markets shortly after release due to users damaging the chip's integrity from excessive acrobatics, causing deadly malfunctions. It really puts the 'flop' in 'Fosbury Flop'!" + skill_name = "Spinesthetics" + skill_description = "Allows you to flip and spin at an illegal and dangerous rate." + skill_icon = FA_ICON_WHEELCHAIR_ALT + activate_message = span_notice("You suddenly have an extremely advanced and complex sense of how to spin and flip with grace.") + deactivate_message = span_notice("Your divine grasp of Spinesthesics disappears entirely.") + custom_premium_price = PAYCHECK_CREW * 4 + /// set integrity to 1 when mapping for !!FUN!! + max_integrity = 100 + /// list of emotes whose cd is overridden by this skillchip. can be edited in mapping or ingame + var/list/affected_emotes = list("spin", "flip") + var/datum/effect_system/spark_spread/sparks + // you can use this without lowering integrity! let's be honest. nobody's doing that + var/allowed_usage = 3 + var/reload_charge = 10 SECONDS + // current particle effect used for smoking brain + var/obj/effect/abstract/particle_holder/particle_effect + +/obj/item/skillchip/acrobatics/on_activate(mob/living/carbon/user, silent = FALSE) + . = ..() + RegisterSignal(user, COMSIG_MOB_EMOTE_COOLDOWN_CHECK, PROC_REF(whowee)) + +/obj/item/skillchip/acrobatics/on_deactivate(mob/living/carbon/user, silent) + . = ..() + UnregisterSignal(user, COMSIG_MOB_EMOTE_COOLDOWN_CHECK) + +/obj/item/skillchip/acrobatics/Destroy(force) + QDEL_NULL(sparks) + QDEL_NULL(particle_effect) + return ..() + +/obj/item/skillchip/acrobatics/proc/whowee(mob/living/carbon/bozo, emote_key, emote_intentional) + SIGNAL_HANDLER + + if(!(emote_key in affected_emotes)) + return + + if(allowed_usage) + allowed_usage-- + addtimer(CALLBACK(src, PROC_REF(charge)), reload_charge) + else + take_damage(1, sound_effect = FALSE) + + if(!sparks) + sparks = new(src) + + // minimum roll is by default capped at 50, with the min value lowering as integrity is reduced. + var/mintegrity = clamp(50 - (100 - get_integrity()), 1, 100) + switch(rand(mintegrity, get_integrity())) // 1 to 100 but gets worse every time + // CRIT FAIL + if(1) + bozo.visible_message(span_userdanger("[bozo]'s head suddenly explodes outwards!")) + + explosion(bozo, light_impact_range = 2, adminlog = TRUE, explosion_cause = src) + // WITNESS THE GORE + for(var/mob/living/splashed in view(2, bozo)) + if(bozo.has_status_effect(/datum/status_effect/grouped/blindness)) + to_chat(splashed, span_userdanger("You're splashed with something")) + else + to_chat(splashed, span_userdanger("You are blinded by a shower of blood!")) + splashed.Stun(1 SECONDS) + splashed.Knockdown(2 SECONDS) + splashed.set_eye_blur_if_lower(15 SECONDS) + splashed.adjust_confusion(4 SECONDS) + + // GORE + var/obj/item/bodypart/bozopart = bozo.get_bodypart(BODY_ZONE_HEAD) + if(bozopart) + var/datum/wound/cranial_fissure/crit_wound = new() + crit_wound.apply_wound(bozopart) + /* + var/list/droppage_candidates = bozo.get_organs_for_zone(BODY_ZONE_HEAD, include_children = TRUE) + if(droppage_candidates) + var/obj/thing_to_drop = pick(droppage_candidates) + thing_to_drop.forceMove(bozo.drop_location()) + */ //WHY DOESNTY IT OWRK + + // does not necessarily kill you directly. instead it causes cranial fissure + something to drop from your head. could be eyes, tongue, ears, brain, even implants + new /obj/effect/gibspawner/generic(get_turf(bozo), bozo) + + sparks.set_up(15, cardinals_only = FALSE, location = get_turf(src)) + sparks.start() + + qdel(src) + // last chance to stop + if(7 to 9) + bozo.visible_message( + span_danger("[bozo] seems to short circuit!"), + span_userdanger("Your brain short circuits!"), + ) + // if they're susceptible to electrocution, confuse them + if(bozo.electrocute_act(15, bozo, 1, SHOCK_NOGLOVES|SHOCK_NOSTUN)) + bozo.adjust_confusion(15 SECONDS) + bozo.set_eye_blur_if_lower(10 SECONDS) + // but the rest of the effects will happen either way + bozo.adjustOrganLoss(ORGAN_SLOT_BRAIN, 20 - get_integrity()) + + sparks.set_up(5, cardinals_only = FALSE, location = get_turf(src)) + sparks.start() + + // brain Smoking. you should probably stop now + if(13 to 15) + // if already hot, light 'em up + var/particle_path = /particles/smoke/steam/mild + if(bozo.has_status_effect(/datum/status_effect/temperature_over_time/chip_overheat)) + bozo.adjust_fire_stacks(11 - get_integrity()) + bozo.ignite_mob() + bozo.visible_message( + span_danger("[bozo]'s head lights up!"), + span_userdanger("Your head hurts so much, it feels like it's on fire!"), + ) + ASYNC + bozo.emote("scream") + if(particle_effect?.type == particle_path) + return + particle_path = /particles/smoke/steam/bad + else + bozo.visible_message( + span_danger("[bozo]'s head starts smoking!"), + span_userdanger("Your brain feels like it's on fire!"), + ) + + // increase smokiness if already smoking + if(particle_effect?.type == /particles/smoke/steam/mild) + particle_path = /particles/smoke/steam + else + particle_path = /particles/smoke/steam/mild + + bozo.adjust_confusion(4 SECONDS) + bozo.set_eye_blur_if_lower(3 SECONDS) + + particle_effect = new(bozo, particle_path) + // roughly head position. + // dont know how to make this not hardcoded + particle_effect.set_particle_position(-2, 12, 0) + bozo.apply_status_effect(/datum/status_effect/temperature_over_time/chip_overheat, 15 SECONDS) + QDEL_IN(particle_effect, 15 SECONDS) + + sparks.set_up(10, cardinals_only = FALSE, location = get_turf(src)) + sparks.start() + + // hey, something isn't right... + if(16 to 50) + bozo.visible_message( + span_warning("[bozo]'s head sparks."), + ) + + sparks.set_up(rand(1,2), cardinals_only = TRUE, location = get_turf(src)) + sparks.start() + + return COMPONENT_EMOTE_COOLDOWN_BYPASS + +/obj/item/skillchip/acrobatics/proc/charge() + allowed_usage++ + +/obj/item/skillchip/acrobatics/kiss + name = "prototype N. 807 - K1SS skillchip" + desc = "An idle experiment when developing skillchips led to this catastrophe. Everyone involved swore to keep it a secret until death, but it looks like someone has let loose this mistake into the world." + skill_name = "ERROERERROROROEROEORROER" + skill_description = "NULL DESCRIPTION NOT FOUND" + skill_icon = FA_ICON_KISS_BEAM + activate_message = span_userdanger("This was a mistake.") + deactivate_message = span_userdanger("The mistake is over.") + custom_premium_price = PAYCHECK_CREW * 500 + max_integrity = 25 + affected_emotes = list("kiss") + allowed_usage = 1 + reload_charge = 30 SECONDS diff --git a/code/modules/religion/rites.dm b/code/modules/religion/rites.dm index d7d0fa81844..b54c4e09b29 100644 --- a/code/modules/religion/rites.dm +++ b/code/modules/religion/rites.dm @@ -150,7 +150,8 @@ ) = 9, // Brain / Head list( - /obj/item/organ/internal/cyberimp/brain/anti_drop = 100, + /obj/item/organ/internal/cyberimp/brain/anti_drop = 50, + /obj/item/organ/internal/cyberimp/brain/connector = 50, /obj/item/organ/internal/cyberimp/brain/anti_stun = 10, ) = 10, // Misc diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 5daf9361190..c34411fff61 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -592,6 +592,23 @@ ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL +/datum/design/cyberimp_connector + name = "CNS Skillchip Connector Implant" + desc = "This cybernetic adds a port to the back of your head, where you can remove or add skillchips at will." + id = "ci-connector" + build_type = PROTOLATHE | AWAY_LATHE | MECHFAB + construction_time = 6 SECONDS + materials = list( + /datum/material/iron = SMALL_MATERIAL_AMOUNT*6, + /datum/material/glass = SMALL_MATERIAL_AMOUNT*6, + /datum/material/titanium = SMALL_MATERIAL_AMOUNT*3, + ) + build_path = /obj/item/organ/internal/cyberimp/brain/connector + category = list( + RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_IMPLANTS_MISC + ) + departmental_flags = DEPARTMENT_BITFLAG_MEDICAL + /datum/design/cyberimp_nutriment name = "Nutriment Pump Implant" desc = "This implant will synthesize and pump into your bloodstream a small amount of nutriment when you are starving." diff --git a/code/modules/research/techweb/nodes/cyborg_nodes.dm b/code/modules/research/techweb/nodes/cyborg_nodes.dm index eeeed268be5..580b5380bb1 100644 --- a/code/modules/research/techweb/nodes/cyborg_nodes.dm +++ b/code/modules/research/techweb/nodes/cyborg_nodes.dm @@ -162,6 +162,7 @@ "ci-nutriment", "ci-thrusters", "ci-herculean", + "ci-connector", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS) announce_channels = list(RADIO_CHANNEL_SCIENCE, RADIO_CHANNEL_MEDICAL) diff --git a/code/modules/surgery/organs/internal/cyberimp/augments_internal.dm b/code/modules/surgery/organs/internal/cyberimp/augments_internal.dm index f71e29631b3..e9f3a88f481 100644 --- a/code/modules/surgery/organs/internal/cyberimp/augments_internal.dm +++ b/code/modules/surgery/organs/internal/cyberimp/augments_internal.dm @@ -40,7 +40,7 @@ icon_state = "brain_implant_antidrop" var/active = FALSE var/list/stored_items = list() - slot = ORGAN_SLOT_BRAIN_ANTIDROP + slot = ORGAN_SLOT_BRAIN_CEREBELLUM actions_types = list(/datum/action/item_action/organ_action/toggle) /obj/item/organ/internal/cyberimp/brain/anti_drop/ui_action_click() @@ -100,7 +100,7 @@ name = "CNS rebooter implant" desc = "This implant will automatically give you back control over your central nervous system, reducing downtime when stunned." icon_state = "brain_implant_rebooter" - slot = ORGAN_SLOT_BRAIN_ANTISTUN + slot = ORGAN_SLOT_BRAIN_CNS var/static/list/signalCache = list( COMSIG_LIVING_STATUS_STUN, @@ -179,6 +179,107 @@ organ_flags &= ~ORGAN_FAILING implant_ready() +/obj/item/organ/internal/cyberimp/brain/connector + name = "CNS skillchip connector implant" + desc = "This cybernetic adds a port to the back of your head, where you can remove or add skillchips at will." + icon_state = "brain_implant_connector" + slot = ORGAN_SLOT_BRAIN_CNS + actions_types = list(/datum/action/item_action/organ_action/use) + +/obj/item/organ/internal/cyberimp/brain/connector/ui_action_click() + + to_chat(owner, span_warning("You start fiddling around with [src]...")) + playsound(owner, 'sound/items/taperecorder/tape_flip.ogg', 20, vary = TRUE) // asmr + + if(!do_after(owner, 1.5 SECONDS, owner)) // othwerwise it doesnt appear + to_chat(owner, span_warning("You were interrupted!")) + return + + if(organ_flags & ORGAN_FAILING) + var/holy_shit_my_brain = remove_brain() + if(holy_shit_my_brain) + to_chat(owner, span_warning("You take [holy_shit_my_brain] out of [src]. You stare at it for a moment in confusion.")) + return + + var/obj/item/skillchip/skillchip = owner.get_active_held_item() + if(skillchip) + if(istype(skillchip, /obj/item/skillchip)) + insert_skillchip(skillchip) + else + to_chat(owner, span_warning("You try to insert [owner.get_active_held_item()] into [src], but it won't fit!")) // make it kill you if you shove a crayon inside or something + else // no inhand item, assume removal + var/obj/item/organ/internal/brain/chippy_brain = owner.get_organ_by_type(/obj/item/organ/internal/brain) + if(!chippy_brain) + CRASH("we using a brain implant wit no brain") + remove_skillchip(chippy_brain) + +/obj/item/organ/internal/cyberimp/brain/connector/proc/insert_skillchip(obj/item/skillchip/skillchip) + var/fail_string = owner.implant_skillchip(skillchip, force = FALSE) + if(fail_string) + to_chat(owner, span_warning(fail_string)) + playsound(owner, 'sound/machines/buzz/buzz-sigh.ogg', 10, vary = TRUE) + return + + var/refail_string = skillchip.try_activate_skillchip(silent = FALSE, force = FALSE) + if(refail_string) + to_chat(owner, span_warning(fail_string)) + playsound(owner, 'sound/machines/buzz/buzz-two.ogg', 10, vary = TRUE) + return + + // success! + playsound(owner, 'sound/machines/chime.ogg', 10, vary = TRUE) + +/obj/item/organ/internal/cyberimp/brain/connector/proc/remove_skillchip(obj/item/organ/internal/brain/chippy_brain) + var/obj/item/skillchip/skillchip = show_radial_menu(owner, owner, chippy_brain.skillchips) + if(skillchip) + owner.remove_skillchip(skillchip, silent = FALSE) + skillchip.forceMove(owner.drop_location()) + owner.put_in_hands(skillchip, del_on_fail = FALSE) + playsound(owner, 'sound/machines/click.ogg', 10, vary = TRUE) + to_chat(owner, span_warning("You take [skillchip] out of [src].")) + return + + to_chat(owner, span_warning("Your brain is empty!")) // heh + +/obj/item/organ/internal/cyberimp/brain/connector/emp_act(severity) + . = ..() + if((organ_flags & ORGAN_FAILING) || . & EMP_PROTECT_SELF) + return + organ_flags |= ORGAN_FAILING + var/loops = 1 + if(severity != EMP_LIGHT) + loops = 2 + for(var/i in 1 to loops) + // you either lose a chip or a bit of your brain + owner.visible_message(span_warning("Something falls to the ground from behind [owner]'s head."),\ + span_boldwarning("You feel something fall off from behind your head.")) + var/obj/item/organ/internal/brain/chippy_brain = owner.get_organ_by_type(ORGAN_SLOT_BRAIN) + var/obj/item/skillchip/skillchip = chippy_brain?.skillchips[1] + if(skillchip) + owner.remove_skillchip(skillchip, silent = TRUE) + skillchip.forceMove(owner.drop_location()) + playsound(owner, 'sound/machines/terminal/terminal_eject.ogg', 25, TRUE) + else + remove_brain() + addtimer(CALLBACK(src, PROC_REF(reboot)), 90 / severity) + +/obj/item/organ/internal/cyberimp/brain/connector/proc/remove_brain(obj/item/organ/internal/brain/chippy_brain, severity = 1) + playsound(owner, 'sound/effects/meatslap.ogg', 25, TRUE) + if(!chippy_brain) + return + chippy_brain.apply_organ_damage(20 * severity) + chippy_brain.maxHealth -= 15 * severity // a bit of your brain fell off. again. + if(chippy_brain.damage >= chippy_brain.maxHealth) + chippy_brain.forceMove(owner.drop_location()) + owner.visible_message(span_userdanger("[owner]'s brain falls off the back of [owner.p_their()] head!!!"), span_boldwarning("You feel like you're missing something.")) + return chippy_brain + + new /obj/effect/decal/cleanable/blood/gibs/up(get_turf(owner)) + return FALSE + +/obj/item/organ/internal/cyberimp/brain/connector/proc/reboot() + organ_flags &= ~ORGAN_FAILING + //[[[[MOUTH]]]] /obj/item/organ/internal/cyberimp/mouth zone = BODY_ZONE_PRECISE_MOUTH diff --git a/code/modules/vending/games.dm b/code/modules/vending/games.dm index 4989b174982..ce51c196746 100644 --- a/code/modules/vending/games.dm +++ b/code/modules/vending/games.dm @@ -97,6 +97,7 @@ /obj/item/clothing/shoes/wheelys/skishoes = 4, /obj/item/instrument/musicalmoth = 1, /obj/item/gun/ballistic/revolver/russian = 1, //the most dangerous game + /obj/item/skillchip/acrobatics = 1, ) premium = list( /obj/item/disk/holodisk = 5, diff --git a/icons/obj/medical/organs/organs.dmi b/icons/obj/medical/organs/organs.dmi index a9366894d7bf39fa204a699a80faa3b6034ed3d9..06ed0e7058d1dbd5fb5473ae5dbd1207394ca272 100644 GIT binary patch literal 42255 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

+UQil;RM;ryqn!NDG$be$gcM#X2~s zZG)&Nx=J|30UNOOJbMEnSD9ft`urt_Es#`20ZjGNv=>QA9g%;+U

;I$5r&p1_K zndr&dJxrM%$(J6r=K5z2!Y7hqGpxjW&Er<@!SSx-Qg%FSPKC*+?SLbwuJ6p=^(r!C z*^ggm^<9>Uy>^IoakHcYf4$o#?{l@WB_acHQeoKQt7jP+Oh%_)3YjbP6Mh<>+9VF{isP}?5*3*gbl(zm8&&4V=AgDEDXydF;GR}Im;u-&g3(PwQ z!E;!M_%r6GFow7|8hY@bg@u`RaLLuu|~+*cyIwKyhc1N|Jp=jN3$KPPRR1 zS(pM>^@R-gx)B6z;u0bzsRaZ*>_?66^XerFmqhbtZ=0|eB#jsZ*b)U0d_6I>>@gQc z%v}R#(yPkkUhOu}RY#81r~^uD8CON*0N%?$WpeBxxP%n*eHn7>v`7Ef4#oeq4EP{# zM3cZ4-0E9zBVnZS3j2RsNxYLGH;N%=-8n5&>_~Kf3dfgmg~+!wnh5A8w7x&td}`x0 zx%z^QT`KYZZ^d#jzp;XxCRfrsH`?--f_&d zuz~z*Qc=b*;vnaqKeuF8guUFsL`%DR$|-7Qe5Ui@_I9oSLU3|f?+d70Q2(_Y20;hB zlIh-);^FBj7(c9%ToC8R86wJ1xCaH^y=k=e(rF-ZduQ3UR9 za?bny&}+RMh#~O6&tj9v1b=)!FBlYOfE2styr`R-x_b0OxYT(2Uywnv!$Gogi~m}Q zi#sKxtEa~ttiT|c$Ev5SOau%?nVXy6=g_89cJfapi8Q;aGBG6$yw7EJ`TY(3_vBz4 zA}6-uYM3ZDnrU8K)7xoW!Dz35`u9zsgZlo>k<>^t<-tR&x%w@ejr{^~?%RnqgqjkBtEnG7K>jVi(dr%d$+8FJX|9uy(kkZ zxZzs^mfD`+KpN6Cx8E#ALynSvpUcLaW6(qVy*3i?^q5+ZJlw+dN-740)JS z<^Kg#wl*;IvY0oaJF(iXJ+`shY_#5LLVQc$U1L&Uc?}KHVH(%AnH6WU9{cU3Gh+Wm zx(;+T$Y3sP^C$t@gES6|<1gOOfoZ5aPq)==KBv@{41WxTH@Colhba8dDoklQ!fda{;$-t=0Y?T*!BL_TbFa14rZ(l5i(?Vmo&Q3gc2=%Yh_N)Mkij+Zs zKci9}o!sqVKc1K?Sv0U+;| ze9qm2V?Qp1EfoU?0pYRJcr(XB2Zy~^uZ?@eE zp9Tfq8nBCmy5Dk`7=Q>_qG?-K-V9Q+E~&;E zZJvb#3(CsAZ~u+VCpPpC&!nEe9{stBz>-`GzJx|{HYSApo124xr(3z+dx$(>Q|wM4 zlhYxb^D%mF=oSHy2J7%mX!zj#A0R2qirSXz@_-4e4Wi6@iT#~(g< zWlX9@urFfS^AK(4-Sp2zo{8npG6f&M@x>t{Set~=i0Yw0MM3()H%2+dU2DFlZ+}_K zwSqI3>A8Rx(wWoxk-W2tP>mFL2I>oCO5mo(kOR=tttI+(a4sen!5jhS8^`By@nyc= zce;JMBBq7)5!ST3Nh4oPQQ~<_=jh;fSf+NyJimpa5ri9W)t|CUY7HoaKi@U0OYZ;Z zT=h$KNXk({P^)s7Y)-D#TE1C=ByG$(#mIo=`s0z7(6ys*`MG6E-j_Qhz=!WW_eTn4 zX?dTWGP1+r&7HWOkN}&ffFsNCw;a4!*v}p%BnOgi^Qofd9I`c*XL~0=!gDY@saT(D zaeIm(p|IfKP>O`} z2LO+)8~9HUM|FMk)FPwAF^Ntd2H;rpKPQ- z{&9KDeE&=LxjynNt-h|+x?$H*c+nST;+cAOP wE7Hd%{3IZHLiRzCGc=p3?Ee+H{EdP5W2;$fF&qYg2f+hM@~U!0vL=522WBlTzW@LL literal 31227 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 Z^D Date: Tue, 15 Oct 2024 17:56:59 +0000 Subject: [PATCH 056/103] Automatic changelog for PR #87159 [ci skip] --- html/changelogs/AutoChangeLog-pr-87159.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87159.yml diff --git a/html/changelogs/AutoChangeLog-pr-87159.yml b/html/changelogs/AutoChangeLog-pr-87159.yml new file mode 100644 index 00000000000..b9b7e795532 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87159.yml @@ -0,0 +1,5 @@ +author: "junkgle01" +delete-after: True +changes: + - rscadd: "the Honkmother has decided to bless Her children with a new form!" + - image: "resprited the optional clown mask styles" \ No newline at end of file From 7f12f794d1d2054e23009475a859b4577d3ea86b Mon Sep 17 00:00:00 2001 From: junkgle <133079191+junkgle01@users.noreply.github.com> Date: Tue, 15 Oct 2024 12:58:05 -0500 Subject: [PATCH 057/103] metastation cargo fixes (#87122) ## About The Pull Request -fixes random test tube racks in the hallways next to cargo -fixes a bunch of decals -fixes some item offsets -moves a table so you can actually push a crate into the medical chute without using the alt-menu or dismantling a table -removes random destination tagger on the floor of the new security outpost ## Why It's Good For The Game fixes ## Changelog :cl: fix: fixed up Metastation's cargo delivery office. /:cl: --- _maps/map_files/MetaStation/MetaStation.dmm | 122 ++++++++------------ 1 file changed, 49 insertions(+), 73 deletions(-) diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 64fe3288fba..f6792840a51 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -8621,7 +8621,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 }, -/obj/item/storage/test_tube_rack/full, /turf/open/floor/iron, /area/station/hallway/primary/central) "dfh" = ( @@ -11724,29 +11723,10 @@ /turf/open/floor/iron/dark, /area/station/medical/medbay/central) "ejD" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/structure/table, -/obj/item/stack/wrapping_paper, -/obj/item/paper_bin/carbon{ - pixel_y = 8; - pixel_x = 6 - }, -/obj/item/pen/fourcolor{ - pixel_y = 8; - pixel_x = 6 - }, /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/effect/decal/cleanable/wrapping, -/obj/item/sales_tagger{ - pixel_x = -5; - pixel_y = 4 - }, -/obj/item/dest_tagger{ - pixel_x = -2; - pixel_y = 4 - }, /turf/open/floor/iron, /area/station/cargo/sorting) "ejF" = ( @@ -12272,9 +12252,10 @@ /obj/effect/turf_decal/tile/brown/anticorner/contrasted{ dir = 8 }, -/obj/machinery/computer/cargo/request{ +/obj/structure/chair{ dir = 1 }, +/obj/effect/landmark/start/assistant, /turf/open/floor/iron, /area/station/cargo/lobby) "esd" = ( @@ -16791,20 +16772,9 @@ /area/station/science/ordnance/storage) "gav" = ( /obj/structure/disposalpipe/segment, -/obj/structure/table, -/obj/machinery/photocopier{ - pixel_y = 9 - }, -/obj/item/paper/fluff{ - pixel_y = 8; - pixel_x = 4; - default_raw_text = "Next CT to photocopy their ass is getting thrown under the shuttle. I'm serious here.
- QM"; - name = "note" - }, /obj/machinery/newscaster/directional/east, -/obj/item/pen/screwdriver{ - pixel_x = 1; - pixel_y = 11 +/obj/machinery/modular_computer/preset/cargochat/cargo{ + dir = 8 }, /turf/open/floor/iron, /area/station/cargo/sorting) @@ -30340,14 +30310,6 @@ dir = 8 }, /obj/machinery/camera/directional/west, -/obj/item/dest_tagger{ - pixel_x = -9; - pixel_y = 12 - }, -/obj/item/hand_labeler_refill{ - pixel_x = -11; - pixel_y = -3 - }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, @@ -31446,9 +31408,6 @@ /turf/open/floor/iron/dark, /area/station/command/gateway) "lcI" = ( -/obj/effect/turf_decal/trimline/red/filled/corner{ - dir = 1 - }, /obj/structure/extinguisher_cabinet/directional/north, /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 4 @@ -38067,9 +38026,6 @@ /turf/open/floor/wood, /area/station/service/bar/backroom) "nxI" = ( -/obj/effect/turf_decal/trimline/red/filled/corner{ - dir = 4 - }, /obj/structure/railing{ dir = 4 }, @@ -39507,6 +39463,23 @@ }, /turf/open/floor/engine, /area/station/science/ordnance/burnchamber) +"nZW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/table, +/obj/item/paper_bin/carbon{ + pixel_y = 8; + pixel_x = 6 + }, +/obj/item/pen/fourcolor{ + pixel_y = 8; + pixel_x = 6 + }, +/obj/item/stack/wrapping_paper, +/obj/effect/turf_decal/tile/brown/opposingcorners, +/turf/open/floor/iron, +/area/station/cargo/sorting) "oac" = ( /obj/structure/cable, /turf/open/floor/iron, @@ -41858,9 +41831,6 @@ /turf/open/floor/iron/cafeteria, /area/station/service/kitchen) "oRx" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 1 - }, /obj/effect/turf_decal/siding/white{ dir = 9 }, @@ -42828,8 +42798,8 @@ }, /obj/machinery/light/small/directional/north, /obj/structure/disposalpipe/segment, -/obj/structure/tank_holder/extinguisher, /obj/structure/sign/clock/directional/north, +/obj/machinery/photocopier, /turf/open/floor/iron, /area/station/cargo/sorting) "pke" = ( @@ -45828,7 +45798,6 @@ /area/station/construction/storage_wing) "qme" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/item/storage/test_tube_rack/full, /turf/open/floor/iron, /area/station/construction/storage_wing) "qmf" = ( @@ -49105,10 +49074,6 @@ /obj/effect/turf_decal/trimline/brown/line{ dir = 6 }, -/obj/effect/landmark/start/assistant, -/obj/structure/chair{ - dir = 1 - }, /obj/machinery/firealarm/directional/south, /turf/open/floor/iron, /area/station/cargo/lobby) @@ -49884,8 +49849,12 @@ /obj/machinery/light/directional/north, /obj/machinery/airalarm/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/modular_computer/preset/cargochat/cargo, /obj/structure/cable, +/obj/structure/table, +/obj/machinery/fax{ + fax_name = "Cargo Office"; + name = "Cargo Office Fax Machine" + }, /turf/open/floor/iron, /area/station/cargo/sorting) "rGm" = ( @@ -50312,6 +50281,7 @@ /area/station/ai_monitored/turret_protected/aisat_interior) "rNA" = ( /obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/brown/opposingcorners, /turf/open/floor/iron, /area/station/cargo/sorting) "rNI" = ( @@ -50649,6 +50619,8 @@ "rUd" = ( /obj/machinery/power/apc/auto_name/directional/east, /obj/structure/cable, +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/effect/turf_decal/trimline/brown/filled/warning, /turf/open/floor/iron, /area/station/cargo/sorting) "rUo" = ( @@ -51382,7 +51354,10 @@ "sgZ" = ( /obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, -/obj/effect/spawner/structure/window, +/obj/machinery/computer/cargo/request{ + dir = 1 + }, +/obj/structure/window/spawner/directional/south, /turf/open/floor/plating, /area/station/cargo/sorting) "shl" = ( @@ -57887,13 +57862,13 @@ /area/station/security/mechbay) "uuW" = ( /obj/structure/table, -/obj/machinery/fax{ - fax_name = "Cargo Office"; - name = "Cargo Office Fax Machine" - }, /obj/item/papercutter{ - pixel_x = 8; - pixel_y = 8 + pixel_x = -1; + pixel_y = 5 + }, +/obj/item/dest_tagger{ + pixel_x = 9; + pixel_y = 4 }, /turf/open/floor/iron, /area/station/cargo/sorting) @@ -58082,28 +58057,27 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/tile/brown/opposingcorners, /obj/structure/table, /obj/machinery/light/directional/east, /obj/item/radio/intercom/directional/east, /obj/structure/disposalpipe/segment{ dir = 9 }, -/obj/item/stamp/granted{ +/obj/item/stamp/denied{ pixel_x = -7; - pixel_y = 4 + pixel_y = 10 }, -/obj/item/stamp/denied{ +/obj/item/stamp/granted{ pixel_x = -7; - pixel_y = 15 + pixel_y = -1 }, /obj/item/storage/box/lights/mixed{ pixel_x = 5; - pixel_y = 12 + pixel_y = 5 }, /obj/item/storage/box/lights/mixed{ pixel_x = 5; - pixel_y = 24 + pixel_y = 16 }, /turf/open/floor/iron, /area/station/cargo/sorting) @@ -62962,6 +62936,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/effect/turf_decal/tile/brown/opposingcorners, /turf/open/floor/iron, /area/station/cargo/sorting) "wcf" = ( @@ -67906,6 +67881,7 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 }, +/obj/effect/turf_decal/tile/brown/opposingcorners, /turf/open/floor/iron, /area/station/cargo/sorting) "xRR" = ( @@ -89489,7 +89465,7 @@ ryV mhM qCx cap -wbW +nZW wbW ygk hld From 3f4bb68fb14284b235810f62ea8edd59ed5b1f3e Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 17:58:31 +0000 Subject: [PATCH 058/103] Automatic changelog for PR #87122 [ci skip] --- html/changelogs/AutoChangeLog-pr-87122.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87122.yml diff --git a/html/changelogs/AutoChangeLog-pr-87122.yml b/html/changelogs/AutoChangeLog-pr-87122.yml new file mode 100644 index 00000000000..c09a7ca4308 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87122.yml @@ -0,0 +1,4 @@ +author: "junkgle01" +delete-after: True +changes: + - bugfix: "fixed up Metastation's cargo delivery office." \ No newline at end of file From 4c4850375ba2f7beccef9668ea064087090f53e0 Mon Sep 17 00:00:00 2001 From: jimmyl <70376633+mc-oofert@users.noreply.github.com> Date: Tue, 15 Oct 2024 20:00:20 +0200 Subject: [PATCH 059/103] you cant roll appendicitis if youre a bitrunner avatar or deathmatch player (#87212) ## About The Pull Request fixes #87206 ## Changelog :cl: fix: you may no longer roll appendicitis in deathmatch or as a bitrunner avatar /:cl: --- code/modules/deathmatch/deathmatch_lobby.dm | 2 +- code/modules/surgery/organs/internal/appendix/_appendix.dm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/deathmatch/deathmatch_lobby.dm b/code/modules/deathmatch/deathmatch_lobby.dm index 98465be9b03..a79bd3aa21d 100644 --- a/code/modules/deathmatch/deathmatch_lobby.dm +++ b/code/modules/deathmatch/deathmatch_lobby.dm @@ -139,7 +139,7 @@ observer.client?.prefs.safe_transfer_prefs_to(new_player) new_player.dna.update_dna_identity() new_player.updateappearance(icon_update = TRUE, mutcolor_update = TRUE, mutations_overlay_update = TRUE) - new_player.add_traits(list(TRAIT_CANNOT_CRYSTALIZE, TRAIT_PERMANENTLY_MORTAL), INNATE_TRAIT) + new_player.add_traits(list(TRAIT_CANNOT_CRYSTALIZE, TRAIT_PERMANENTLY_MORTAL, TRAIT_TEMPORARY_BODY), INNATE_TRAIT) if(!isnull(observer.mind) && observer.mind?.current) new_player.AddComponent( \ /datum/component/temporary_body, \ diff --git a/code/modules/surgery/organs/internal/appendix/_appendix.dm b/code/modules/surgery/organs/internal/appendix/_appendix.dm index f4fb4e3e49e..4a6d3ddaa8b 100644 --- a/code/modules/surgery/organs/internal/appendix/_appendix.dm +++ b/code/modules/surgery/organs/internal/appendix/_appendix.dm @@ -37,7 +37,7 @@ owner.adjustToxLoss(2 * seconds_per_tick, forced = TRUE) else if(inflamation_stage) inflamation(seconds_per_tick) - else if(SPT_PROB(APPENDICITIS_PROB, seconds_per_tick)) + else if(SPT_PROB(APPENDICITIS_PROB, seconds_per_tick) && !HAS_TRAIT(owner, TRAIT_TEMPORARY_BODY)) become_inflamed() /obj/item/organ/internal/appendix/proc/become_inflamed() From 1b46ffa611873bb7cbdfc395e3058cf17f9c4ac5 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 18:00:42 +0000 Subject: [PATCH 060/103] Automatic changelog for PR #87212 [ci skip] --- html/changelogs/AutoChangeLog-pr-87212.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87212.yml diff --git a/html/changelogs/AutoChangeLog-pr-87212.yml b/html/changelogs/AutoChangeLog-pr-87212.yml new file mode 100644 index 00000000000..dd5a17bbc93 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87212.yml @@ -0,0 +1,4 @@ +author: "mc-oofert" +delete-after: True +changes: + - bugfix: "you may no longer roll appendicitis in deathmatch or as a bitrunner avatar" \ No newline at end of file From c9f3477dcb0267650a51daa304cbb30f8a320459 Mon Sep 17 00:00:00 2001 From: Soupy <140170895+Soupfgc@users.noreply.github.com> Date: Tue, 15 Oct 2024 20:02:06 +0200 Subject: [PATCH 061/103] Fixes oversight of the Springlock MOD module and its interaction with water vapor (#87169) ## About The Pull Request Adds the interaction between the Springlock MOD module and the Gas Water Vapor so that it snaps shut upon being exposed to the Gas. Fixes #85666. Specifically the oversight mentioned in the comments. ## Why It's Good For The Game Adds consistency to the Springlock MOD module so it properly interacts with water as intended. ## Changelog :cl: fix: Springlock MOD module properly interacts with Water Vapor /:cl: --- code/modules/mod/modules/modules_maint.dm | 33 ++++++++++++++++++----- 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/code/modules/mod/modules/modules_maint.dm b/code/modules/mod/modules/modules_maint.dm index f59076fa4b5..d2f1ceaef74 100644 --- a/code/modules/mod/modules/modules_maint.dm +++ b/code/modules/mod/modules/modules_maint.dm @@ -11,6 +11,9 @@ complexity = 3 // it is inside every part of your suit, so incompatible_modules = list(/obj/item/mod/module/springlock) var/set_off = FALSE + var/static/list/gas_connections = list( + COMSIG_TURF_EXPOSE = PROC_REF(on_wearer_exposed_gas), + ) /obj/item/mod/module/springlock/on_install() mod.activation_step_time *= 0.5 @@ -20,22 +23,40 @@ /obj/item/mod/module/springlock/on_suit_activation() RegisterSignal(mod.wearer, COMSIG_ATOM_EXPOSE_REAGENTS, PROC_REF(on_wearer_exposed)) + AddComponent(/datum/component/connect_loc_behalf, mod.wearer, gas_connections) /obj/item/mod/module/springlock/on_suit_deactivation(deleting = FALSE) UnregisterSignal(mod.wearer, COMSIG_ATOM_EXPOSE_REAGENTS) + qdel(GetComponent(/datum/component/connect_loc_behalf)) -///Signal fired when wearer is exposed to reagents -/obj/item/mod/module/springlock/proc/on_wearer_exposed(atom/source, list/reagents, datum/reagents/source_reagents, methods, volume_modifier, show_message) - SIGNAL_HANDLER - - if(!(methods & (VAPOR|PATCH|TOUCH)) || set_off || mod.wearer.stat == DEAD) - return //remove non-touch reagent exposure +///Registers the signal COMSIG_MOD_ACTIVATE and calls the proc snap_shut() after a timer +/obj/item/mod/module/springlock/proc/snap_signal() + if(set_off || mod.wearer.stat == DEAD) + return to_chat(mod.wearer, span_danger("[src] makes an ominous click sound...")) playsound(src, 'sound/items/modsuit/springlock.ogg', 75, TRUE) addtimer(CALLBACK(src, PROC_REF(snap_shut)), rand(3 SECONDS, 5 SECONDS)) RegisterSignal(mod, COMSIG_MOD_ACTIVATE, PROC_REF(on_activate_spring_block)) set_off = TRUE +///Calls snap_signal() when exposed to a reagent via VAPOR, PATCH or TOUCH +/obj/item/mod/module/springlock/proc/on_wearer_exposed(atom/source, list/reagents, datum/reagents/source_reagents, methods, volume_modifier, show_message) + SIGNAL_HANDLER + + if(!(methods & (VAPOR|PATCH|TOUCH))) + return //remove non-touch reagent exposure + snap_signal() + +///Calls snap_signal() when exposed to water vapor +/obj/item/mod/module/springlock/proc/on_wearer_exposed_gas() + SIGNAL_HANDLER + + var/turf/wearer_turf = get_turf(src) + var/datum/gas_mixture/air = wearer_turf.return_air() + if(!(air.gases[/datum/gas/water_vapor] && (air.gases[/datum/gas/water_vapor][MOLES]) >= 5)) + return //return if there aren't more than 5 Moles of Water Vapor in the air + snap_signal() + ///Signal fired when wearer attempts to activate/deactivate suits /obj/item/mod/module/springlock/proc/on_activate_spring_block(datum/source, user) SIGNAL_HANDLER From c4823d30b7e532d0310f5a4fcb30230a8185b6d2 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 18:02:30 +0000 Subject: [PATCH 062/103] Automatic changelog for PR #87169 [ci skip] --- html/changelogs/AutoChangeLog-pr-87169.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87169.yml diff --git a/html/changelogs/AutoChangeLog-pr-87169.yml b/html/changelogs/AutoChangeLog-pr-87169.yml new file mode 100644 index 00000000000..c18f14e2f29 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87169.yml @@ -0,0 +1,4 @@ +author: "Soupfgc" +delete-after: True +changes: + - bugfix: "Springlock MOD module properly interacts with Water Vapor" \ No newline at end of file From 217d11711ee41287f4d85df22bf376a2aa55e1c7 Mon Sep 17 00:00:00 2001 From: SmArtKar <44720187+SmArtKar@users.noreply.github.com> Date: Tue, 15 Oct 2024 20:23:08 +0200 Subject: [PATCH 063/103] Fixes master not compiling because of gamers (#87245) --- code/modules/clothing/masks/gasmask.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index f76d5d6a394..2e6ddeb6835 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -348,7 +348,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list( inhand_icon_state = null flags_cover = MASKCOVERSEYES resistance_flags = FLAMMABLE - has_fov = FALSE /obj/item/clothing/mask/gas/mime name = "mime mask" From 3d4072ac27c1f8ccc311edd02f80cf6b89afd1c7 Mon Sep 17 00:00:00 2001 From: DATA <44149906+DATA-xPUNGED@users.noreply.github.com> Date: Tue, 15 Oct 2024 16:46:25 -0300 Subject: [PATCH 064/103] Fixes server hop fade out (#87170) ## About The Pull Request Turns out that if you don't test if you fix works, it probably won't! I've actually managed to test this one, and even though it gave me a handshake error when joining the other server, at least the fade in worked! The fadeout is set up in the same way, so it should be fine ## Why It's Good For The Game ACTUALLY fixes #29496 ## Changelog :cl: fix: ACTUALLY fixes server hop fade in /:cl: --- code/controllers/subsystem/ticker.dm | 4 ++-- code/modules/mob/dead/dead.dm | 12 ++++++------ code/modules/mob/dead/new_player/new_player.dm | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index 72e9652cbbb..3c3cc5ce1ee 100644 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -499,8 +499,8 @@ SUBSYSTEM_DEF(ticker) qdel(player) ADD_TRAIT(living, TRAIT_NO_TRANSFORM, SS_TICKER_TRAIT) if(living.client) - var/atom/movable/screen/splash/S = new(null, living.client, TRUE) - S.Fade(TRUE) + var/atom/movable/screen/splash/fade_out = new(null, living.client, TRUE) + fade_out.Fade(TRUE) living.client.init_verbs() livings += living if(livings.len) diff --git a/code/modules/mob/dead/dead.dm b/code/modules/mob/dead/dead.dm index 17591d93d52..aec19662d3a 100644 --- a/code/modules/mob/dead/dead.dm +++ b/code/modules/mob/dead/dead.dm @@ -74,21 +74,21 @@ INITIALIZE_IMMEDIATE(/mob/dead) if(tgui_alert(usr, "Jump to server [pick] ([addr])?", "Server Hop", list("Yes", "No")) != "Yes") return - var/client/C = client - to_chat(C, span_notice("Sending you to [pick].")) - var/atom/movable/screen/splash/S = new(null, null, C) - S.Fade(FALSE) + var/client/hopper = client + to_chat(hopper, span_notice("Sending you to [pick].")) + var/atom/movable/screen/splash/fade_in = new(null, src, hopper, FALSE) + fade_in.Fade(FALSE) ADD_TRAIT(src, TRAIT_NO_TRANSFORM, SERVER_HOPPER_TRAIT) sleep(2.9 SECONDS) //let the animation play REMOVE_TRAIT(src, TRAIT_NO_TRANSFORM, SERVER_HOPPER_TRAIT) - if(!C) + if(!hopper) return winset(src, null, "command=.options") //other wise the user never knows if byond is downloading resources - C << link("[addr]") + hopper << link("[addr]") #undef SERVER_HOPPER_TRAIT diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index 39051b29fc0..834c4fa9915 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -22,8 +22,8 @@ /mob/dead/new_player/Initialize(mapload) if(client && SSticker.state == GAME_STATE_STARTUP) - var/atom/movable/screen/splash/S = new(null, client, TRUE, TRUE) - S.Fade(TRUE) + var/atom/movable/screen/splash/fade_out = new(null, null, client, TRUE) + fade_out.Fade(TRUE) if(length(GLOB.newplayer_start)) forceMove(pick(GLOB.newplayer_start)) From dc288800a776543ab7ee86d323829cc5b9916ab8 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 19:49:40 +0000 Subject: [PATCH 065/103] Automatic changelog for PR #87170 [ci skip] --- html/changelogs/AutoChangeLog-pr-87170.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87170.yml diff --git a/html/changelogs/AutoChangeLog-pr-87170.yml b/html/changelogs/AutoChangeLog-pr-87170.yml new file mode 100644 index 00000000000..71d30e1eaea --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87170.yml @@ -0,0 +1,4 @@ +author: "DATA-xPUNGED" +delete-after: True +changes: + - bugfix: "ACTUALLY fixes server hop fade in" \ No newline at end of file From 31c63b5149a544da89fdc98b2d923da7ff33a623 Mon Sep 17 00:00:00 2001 From: larentoun <31931237+larentoun@users.noreply.github.com> Date: Tue, 15 Oct 2024 22:54:18 +0300 Subject: [PATCH 066/103] Removing self-vore message from aliens + minor attack verb fixes (#87226) ## About The Pull Request Fixes self-vore message when you get devoured by an alien. Fixes some simple attack verbs being continuous ## Why It's Good For The Game Bug fixes good ## Changelog :cl: spellcheck: Correct message is shown when YOU get devoured by an alien spellcheck: Fixed a few typos on some simple attack verbs being continuous /:cl: --- code/game/objects/items/plushes.dm | 2 +- code/game/objects/items/toys.dm | 2 +- code/modules/antagonists/wizard/equipment/artefact.dm | 2 +- code/modules/library/bibles.dm | 2 +- code/modules/mob/living/basic/lavaland/hivelord/hivelord.dm | 2 +- code/modules/mob/living/basic/lavaland/raptor/_raptor.dm | 2 +- code/modules/mob/living/carbon/alien/adult/adult.dm | 2 +- .../simple_animal/hostile/megafauna/demonic_frost_miner.dm | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/code/game/objects/items/plushes.dm b/code/game/objects/items/plushes.dm index 7c7f998251c..cec45a404ab 100644 --- a/code/game/objects/items/plushes.dm +++ b/code/game/objects/items/plushes.dm @@ -544,7 +544,7 @@ greyscale_config = /datum/greyscale_config/plush_spacelizard // space lizards can't hit people with their tail, it's stuck in their suit attack_verb_continuous = list("claws", "hisses", "bops") - attack_verb_simple = list("claw", "hiss", "bops") + attack_verb_simple = list("claw", "hiss", "bop") /obj/item/toy/plush/lizard_plushie/space/green desc = "An adorable stuffed toy that resembles a very determined spacefaring green lizardperson. To infinity and beyond, little guy. This one fills you with nostalgia and soul." diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index c9270b1f67e..b622a761c42 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -1815,6 +1815,6 @@ GLOBAL_LIST_EMPTY(intento_players) icon = 'icons/obj/weapons/guns/magic.dmi' slot_flags = ITEM_SLOT_BACK attack_verb_continuous = list("smacks", "clubs", "wacks", "vendors") - attack_verb_simple = list("smack", "club", "wacks", "vendor") + attack_verb_simple = list("smack", "club", "wack", "vendor") w_class = WEIGHT_CLASS_SMALL resistance_flags = FLAMMABLE diff --git a/code/modules/antagonists/wizard/equipment/artefact.dm b/code/modules/antagonists/wizard/equipment/artefact.dm index 1036abc2495..446825779e2 100644 --- a/code/modules/antagonists/wizard/equipment/artefact.dm +++ b/code/modules/antagonists/wizard/equipment/artefact.dm @@ -410,7 +410,7 @@ damtype = BRUTE resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF attack_verb_continuous = list("smacks", "clubs", "wacks") - attack_verb_simple = list("smack", "club", "wacks") + attack_verb_simple = list("smack", "club", "wack") /// Range cap on where you can summon vendors. var/max_summon_range = RUNIC_SCEPTER_MAX_RANGE diff --git a/code/modules/library/bibles.dm b/code/modules/library/bibles.dm index eda1f18f8e7..52a1b913163 100644 --- a/code/modules/library/bibles.dm +++ b/code/modules/library/bibles.dm @@ -340,7 +340,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list( hitsound = 'sound/items/weapons/sear.ogg' damtype = BURN attack_verb_continuous = list("attacks", "burns", "blesses", "damns", "scorches", "curses", "smites") - attack_verb_simple = list("attack", "burn", "bless", "damn", "scorch", "curses", "smites") + attack_verb_simple = list("attack", "burn", "bless", "damn", "scorch", "curse", "smite") deity_name = "The Syndicate" var/uses = 1 var/owner_name diff --git a/code/modules/mob/living/basic/lavaland/hivelord/hivelord.dm b/code/modules/mob/living/basic/lavaland/hivelord/hivelord.dm index 931b568e5ee..f76479dc131 100644 --- a/code/modules/mob/living/basic/lavaland/hivelord/hivelord.dm +++ b/code/modules/mob/living/basic/lavaland/hivelord/hivelord.dm @@ -15,7 +15,7 @@ melee_damage_lower = 0 melee_damage_upper = 0 attack_verb_continuous = "weakly tackles" - attack_verb_simple = "weakly tackles" + attack_verb_simple = "weakly tackle" speak_emote = list("telepathically cries") attack_sound = 'sound/items/weapons/pierce.ogg' throw_blocked_message = "passes between the bodies of the" diff --git a/code/modules/mob/living/basic/lavaland/raptor/_raptor.dm b/code/modules/mob/living/basic/lavaland/raptor/_raptor.dm index b7f7ffa9cf6..2cb9384b06b 100644 --- a/code/modules/mob/living/basic/lavaland/raptor/_raptor.dm +++ b/code/modules/mob/living/basic/lavaland/raptor/_raptor.dm @@ -35,7 +35,7 @@ GLOBAL_LIST_EMPTY(raptor_population) minimum_survivable_temperature = BODYTEMP_COLD_ICEBOX_SAFE maximum_survivable_temperature = INFINITY attack_verb_continuous = "pecks" - attack_verb_simple = "chomps" + attack_verb_simple = "chomp" attack_sound = 'sound/items/weapons/punch1.ogg' faction = list(FACTION_RAPTOR, FACTION_NEUTRAL) speak_emote = list("screeches") diff --git a/code/modules/mob/living/carbon/alien/adult/adult.dm b/code/modules/mob/living/carbon/alien/adult/adult.dm index ce95c0e6ce5..8c8acf793f5 100644 --- a/code/modules/mob/living/carbon/alien/adult/adult.dm +++ b/code/modules/mob/living/carbon/alien/adult/adult.dm @@ -135,7 +135,7 @@ GLOBAL_LIST_INIT(strippable_alien_humanoid_items, create_strippable_list(list( lucky_winner.audible_message(span_danger("You hear a deep groan, and a harsh snap like a mantrap.")) lucky_winner.visible_message(span_danger("[src] devours [lucky_winner]!"), \ - span_userdanger("[lucky_winner] devours you!")) + span_userdanger("[src] devours you!")) log_combat(src, lucky_winner, "devoured") melting_pot.consume_thing(lucky_winner) return TRUE diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm index 350a1a68fd8..8c32b2a3c47 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm @@ -16,7 +16,7 @@ Difficulty: Extremely Hard icon_living = "demonic_miner" icon = 'icons/mob/simple/icemoon/icemoon_monsters.dmi' attack_verb_continuous = "pummels" - attack_verb_simple = "pummels" + attack_verb_simple = "pummel" attack_sound = 'sound/items/weapons/sonic_jackhammer.ogg' mob_biotypes = MOB_ORGANIC|MOB_HUMANOID|MOB_SPECIAL light_color = COLOR_LIGHT_GRAYISH_RED From 599043e2ebde3b58b62cf9e0d54e808f65ab63cf Mon Sep 17 00:00:00 2001 From: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com> Date: Tue, 15 Oct 2024 22:58:20 +0300 Subject: [PATCH 067/103] removes alot of click-related self registering signals on basic mobs (#87220) ## About The Pull Request there was no real benefit of using signals over proc overrides for many of these cases. ## Why It's Good For The Game registering signals on self when we can just override the proc is un-necessary, im responsible for most of these so im just confronting the sins of my past ## Changelog :cl: /:cl: --- code/modules/mob/living/basic/alien/maid.dm | 10 +++--- code/modules/mob/living/basic/basic.dm | 13 +++++--- .../mob/living/basic/farm_animals/bee/_bee.dm | 11 ++++--- .../basic/icemoon/ice_whelp/ice_whelp.dm | 22 ++++++------- .../living/basic/jungle/seedling/seedling.dm | 15 +++++---- .../basic/lavaland/gutlunchers/gutlunchers.dm | 14 ++++---- .../mob/living/basic/lavaland/mook/mook.dm | 14 ++++---- .../living/basic/lavaland/raptor/_raptor.dm | 14 ++++---- .../mob/living/basic/minebots/minebot.dm | 13 ++++---- code/modules/mob/living/basic/pets/cat/cat.dm | 32 +++++++++---------- .../mob/living/basic/pets/orbie/orbie.dm | 23 ++++++------- .../mob/living/basic/pets/parrot/_parrot.dm | 24 +++++++------- .../basic/space_fauna/eyeball/_eyeball.dm | 20 +++++------- .../basic/space_fauna/hivebot/_hivebot.dm | 11 ++++--- .../mob/living/basic/space_fauna/morph.dm | 28 ++++++++-------- .../mob/living/basic/space_fauna/mushroom.dm | 22 ++++++------- .../basic/space_fauna/regal_rat/regal_rat.dm | 20 ++++++------ .../basic/space_fauna/supermatter_spider.dm | 12 +++---- 18 files changed, 156 insertions(+), 162 deletions(-) diff --git a/code/modules/mob/living/basic/alien/maid.dm b/code/modules/mob/living/basic/alien/maid.dm index decfe5736ce..cf6499884e9 100644 --- a/code/modules/mob/living/basic/alien/maid.dm +++ b/code/modules/mob/living/basic/alien/maid.dm @@ -15,17 +15,19 @@ /mob/living/basic/alien/maid/Initialize(mapload) . = ..() AddElement(/datum/element/cleaning) - RegisterSignal(src, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, PROC_REF(pre_attack)) ///Handles the maid attacking other players, cancelling the attack to clean up instead. -/mob/living/basic/alien/maid/proc/pre_attack(mob/living/puncher, atom/target) - SIGNAL_HANDLER +/mob/living/basic/alien/maid/early_melee_attack(atom/target, list/modifiers, ignore_cooldown) + . = ..() + if(!.) + return FALSE + target.wash(CLEAN_SCRUB) if(istype(target, /obj/effect/decal/cleanable)) visible_message(span_notice("[src] cleans up \the [target].")) else visible_message(span_notice("[src] polishes \the [target].")) - return COMPONENT_HOSTILE_NO_ATTACK + return FALSE /** * Barmaid special type diff --git a/code/modules/mob/living/basic/basic.dm b/code/modules/mob/living/basic/basic.dm index 9501c4e21d3..22a20064370 100644 --- a/code/modules/mob/living/basic/basic.dm +++ b/code/modules/mob/living/basic/basic.dm @@ -216,14 +216,19 @@ . += span_deadsay("Upon closer examination, [p_they()] appear[p_s()] to be [HAS_MIND_TRAIT(user, TRAIT_NAIVE) ? "asleep" : "dead"].") /mob/living/basic/proc/melee_attack(atom/target, list/modifiers, ignore_cooldown = FALSE) + if(!early_melee_attack(target, modifiers, ignore_cooldown)) + return FALSE + var/result = target.attack_basic_mob(src, modifiers) + SEND_SIGNAL(src, COMSIG_HOSTILE_POST_ATTACKINGTARGET, target, result) + return result + +/mob/living/basic/proc/early_melee_attack(atom/target, list/modifiers, ignore_cooldown = FALSE) face_atom(target) - if (!ignore_cooldown) + if(!ignore_cooldown) changeNext_move(melee_attack_cooldown) if(SEND_SIGNAL(src, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, target, Adjacent(target), modifiers) & COMPONENT_HOSTILE_NO_ATTACK) return FALSE //but more importantly return before attack_animal called - var/result = target.attack_basic_mob(src, modifiers) - SEND_SIGNAL(src, COMSIG_HOSTILE_POST_ATTACKINGTARGET, target, result) - return result + return TRUE /mob/living/basic/resolve_unarmed_attack(atom/attack_target, list/modifiers) melee_attack(attack_target, modifiers) diff --git a/code/modules/mob/living/basic/farm_animals/bee/_bee.dm b/code/modules/mob/living/basic/farm_animals/bee/_bee.dm index 53f9c618c63..2eae8731059 100644 --- a/code/modules/mob/living/basic/farm_animals/bee/_bee.dm +++ b/code/modules/mob/living/basic/farm_animals/bee/_bee.dm @@ -70,7 +70,6 @@ AddComponent(/datum/component/swarming) AddComponent(/datum/component/obeys_commands, pet_commands) AddElement(/datum/element/swabable, CELL_LINE_TABLE_QUEEN_BEE, CELL_VIRUS_TABLE_GENERIC_MOB, 1, 5) - RegisterSignal(src, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, PROC_REF(pre_attack)) /mob/living/basic/bee/mob_pickup(mob/living/picker) if(flags_1 & HOLOGRAM_1) @@ -108,18 +107,20 @@ /mob/living/basic/bee/proc/spawn_corpse() new /obj/item/trash/bee(loc, src) -/mob/living/basic/bee/proc/pre_attack(mob/living/puncher, atom/target) - SIGNAL_HANDLER +/mob/living/basic/bee/early_melee_attack(atom/target, list/modifiers) + . = ..() + if(!.) + return FALSE if(istype(target, /obj/machinery/hydroponics)) var/obj/machinery/hydroponics/hydro = target pollinate(hydro) - return COMPONENT_HOSTILE_NO_ATTACK + return FALSE if(istype(target, /obj/structure/beebox)) var/obj/structure/beebox/hive = target handle_habitation(hive) - return COMPONENT_HOSTILE_NO_ATTACK + return FALSE /mob/living/basic/bee/proc/handle_habitation(obj/structure/beebox/hive) if(hive == beehome) //if its our home, we enter or exit it diff --git a/code/modules/mob/living/basic/icemoon/ice_whelp/ice_whelp.dm b/code/modules/mob/living/basic/icemoon/ice_whelp/ice_whelp.dm index 43f8c61d0c8..cc6bd1c900e 100644 --- a/code/modules/mob/living/basic/icemoon/ice_whelp/ice_whelp.dm +++ b/code/modules/mob/living/basic/icemoon/ice_whelp/ice_whelp.dm @@ -45,8 +45,6 @@ AddComponent(/datum/component/basic_mob_ability_telegraph) AddComponent(/datum/component/basic_mob_attack_telegraph, telegraph_duration = 0.6 SECONDS) - RegisterSignal(src, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, PROC_REF(pre_attack)) - var/static/list/innate_actions = list( /datum/action/cooldown/mob_cooldown/fire_breath/ice = BB_WHELP_STRAIGHTLINE_FIRE, /datum/action/cooldown/mob_cooldown/fire_breath/ice/cross = BB_WHELP_WIDESPREAD_FIRE, @@ -55,22 +53,24 @@ grant_actions_by_list(innate_actions) -/mob/living/basic/mining/ice_whelp/proc/pre_attack(mob/living/sculptor, atom/target) - SIGNAL_HANDLER +/mob/living/basic/mining/ice_whelp/early_melee_attack(atom/target, list/modifiers, ignore_cooldown) + . = ..() + if(!.) + return FALSE if(istype(target, /obj/structure/flora/rock/icy)) - INVOKE_ASYNC(src, PROC_REF(create_sculpture), target) - return COMPONENT_HOSTILE_NO_ATTACK + create_sculpture(target) + return FALSE - if(!istype(target, src.type)) - return + if(!istype(target, type)) + return TRUE var/mob/living/victim = target if(victim.stat != DEAD) - return + return TRUE - INVOKE_ASYNC(src, PROC_REF(cannibalize_victim), victim) - return COMPONENT_HOSTILE_NO_ATTACK + cannibalize_victim(victim) + return FALSE /// Carve a stone into a beautiful self-portrait /mob/living/basic/mining/ice_whelp/proc/create_sculpture(atom/target) diff --git a/code/modules/mob/living/basic/jungle/seedling/seedling.dm b/code/modules/mob/living/basic/jungle/seedling/seedling.dm index 00db708bc32..3af0675a7f8 100644 --- a/code/modules/mob/living/basic/jungle/seedling/seedling.dm +++ b/code/modules/mob/living/basic/jungle/seedling/seedling.dm @@ -80,23 +80,24 @@ AddElement(/datum/element/wall_tearer, allow_reinforced = FALSE) AddComponent(/datum/component/obeys_commands, seedling_commands) - RegisterSignal(src, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, PROC_REF(pre_attack)) RegisterSignal(src, COMSIG_KB_MOB_DROPITEM_DOWN, PROC_REF(drop_can)) update_appearance() -/mob/living/basic/seedling/proc/pre_attack(mob/living/puncher, atom/target) - SIGNAL_HANDLER +/mob/living/basic/seedling/early_melee_attack(atom/target, list/modifiers, ignore_cooldown) + . = ..() + if(!.) + return FALSE if(istype(target, /obj/machinery/hydroponics)) treat_hydro_tray(target) - return COMPONENT_HOSTILE_NO_ATTACK + return FALSE if(isnull(held_can)) - return + return TRUE if(istype(target, /obj/structure/sink) || istype(target, /obj/structure/reagent_dispensers)) - INVOKE_ASYNC(held_can, TYPE_PROC_REF(/obj/item, melee_attack_chain), src, target) - return COMPONENT_HOSTILE_NO_ATTACK + held_can.melee_attack_chain(src, target) + return FALSE ///seedlings can water trays, remove weeds, or remove dead plants diff --git a/code/modules/mob/living/basic/lavaland/gutlunchers/gutlunchers.dm b/code/modules/mob/living/basic/lavaland/gutlunchers/gutlunchers.dm index 6b822d490de..e447255c867 100644 --- a/code/modules/mob/living/basic/lavaland/gutlunchers/gutlunchers.dm +++ b/code/modules/mob/living/basic/lavaland/gutlunchers/gutlunchers.dm @@ -34,7 +34,6 @@ /mob/living/basic/mining/gutlunch/Initialize(mapload) . = ..() GLOB.gutlunch_count++ - RegisterSignal(src, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, PROC_REF(pre_attack)) if(greyscale_config) set_greyscale(colors = list(pick(possible_colors))) AddElement(/datum/element/ai_retaliate) @@ -52,19 +51,18 @@ GLOB.gutlunch_count-- return ..() -/mob/living/basic/mining/gutlunch/proc/pre_attack(mob/living/puncher, atom/target) - SIGNAL_HANDLER - - if(!istype(target, /obj/structure/ore_container/food_trough/gutlunch_trough)) +/mob/living/basic/mining/gutlunch/early_melee_attack(atom/target, list/modifiers, ignore_cooldown) + . = ..() + if(!.) return - + if(!istype(target, /obj/structure/ore_container/food_trough/gutlunch_trough)) + return TRUE var/obj/ore_food = locate(/obj/item/stack/ore) in target - if(isnull(ore_food)) balloon_alert(src, "no food!") else melee_attack(ore_food) - return COMPONENT_HOSTILE_NO_ATTACK + return FALSE /mob/living/basic/mining/gutlunch/proc/after_birth(mob/living/basic/mining/gutlunch/grub/baby, mob/living/partner) var/our_color = LAZYACCESS(atom_colours, FIXED_COLOUR_PRIORITY) || COLOR_GRAY diff --git a/code/modules/mob/living/basic/lavaland/mook/mook.dm b/code/modules/mob/living/basic/lavaland/mook/mook.dm index 88802389739..f492c83e74b 100644 --- a/code/modules/mob/living/basic/lavaland/mook/mook.dm +++ b/code/modules/mob/living/basic/lavaland/mook/mook.dm @@ -58,7 +58,6 @@ AddComponent(/datum/component/ai_listen_to_weather) AddElement(/datum/element/wall_tearer, allow_reinforced = FALSE) - RegisterSignal(src, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, PROC_REF(pre_attack)) RegisterSignal(src, COMSIG_KB_MOB_DROPITEM_DOWN, PROC_REF(drop_ore)) if(is_healer) @@ -96,27 +95,28 @@ held_ore = null update_appearance(UPDATE_OVERLAYS) -/mob/living/basic/mining/mook/proc/pre_attack(mob/living/attacker, atom/target) - SIGNAL_HANDLER - +/mob/living/basic/mining/mook/early_melee_attack(atom/target, list/modifiers, ignore_cooldown) + . = ..() + if(!.) + return FALSE return attack_sequence(target) /mob/living/basic/mining/mook/proc/attack_sequence(atom/target) if(istype(target, /obj/item/stack/ore) && isnull(held_ore)) var/obj/item/ore_target = target ore_target.forceMove(src) - return COMPONENT_HOSTILE_NO_ATTACK + return FALSE if(istype(target, /obj/structure/ore_container/material_stand)) if(held_ore) held_ore.forceMove(target) - return COMPONENT_HOSTILE_NO_ATTACK + return FALSE if(istype(target, /obj/structure/bonfire)) var/obj/structure/bonfire/fire_target = target if(!fire_target.burning) fire_target.start_burning() - return COMPONENT_HOSTILE_NO_ATTACK + return FALSE /mob/living/basic/mining/mook/proc/change_combatant_state(state) attack_state = state diff --git a/code/modules/mob/living/basic/lavaland/raptor/_raptor.dm b/code/modules/mob/living/basic/lavaland/raptor/_raptor.dm index 2cb9384b06b..917c9c3c438 100644 --- a/code/modules/mob/living/basic/lavaland/raptor/_raptor.dm +++ b/code/modules/mob/living/basic/lavaland/raptor/_raptor.dm @@ -97,7 +97,6 @@ GLOBAL_LIST_EMPTY(raptor_population) ai_controller.set_blackboard_key(BB_BASIC_MOB_SPEAK_LINES, display_emote) inherited_stats = new inherit_properties() - RegisterSignal(src, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, PROC_REF(pre_attack)) var/static/list/my_food = list(/obj/item/stack/ore) AddElement(/datum/element/basic_eating, food_types = my_food) AddElement(/datum/element/ai_retaliate) @@ -147,19 +146,20 @@ GLOBAL_LIST_EMPTY(raptor_population) pixel_y = (direction & NORTH) ? -5 : 0 -/mob/living/basic/raptor/proc/pre_attack(mob/living/puncher, atom/target) - SIGNAL_HANDLER - +/mob/living/basic/raptor/early_melee_attack(atom/target, list/modifiers, ignore_cooldown) + . = ..() + if(!.) + return FALSE if(!istype(target, /obj/structure/ore_container/food_trough/raptor_trough)) - return + return TRUE var/obj/ore_food = locate(/obj/item/stack/ore) in target if(isnull(ore_food)) balloon_alert(src, "no food!") else - INVOKE_ASYNC(src, PROC_REF(melee_attack), ore_food) - return COMPONENT_HOSTILE_NO_ATTACK + melee_attack(ore_food) + return TRUE /mob/living/basic/raptor/melee_attack(mob/living/target, list/modifiers, ignore_cooldown) if(!combat_mode && istype(target, /mob/living/basic/raptor/baby_raptor)) diff --git a/code/modules/mob/living/basic/minebots/minebot.dm b/code/modules/mob/living/basic/minebots/minebot.dm index bcf8071d7c2..c9edfb0471f 100644 --- a/code/modules/mob/living/basic/minebots/minebot.dm +++ b/code/modules/mob/living/basic/minebots/minebot.dm @@ -85,7 +85,6 @@ /datum/id_trim/job/shaft_miner, ) AddElement(/datum/element/mob_access, accesses) - RegisterSignal(src, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, PROC_REF(pre_attack)) /mob/living/basic/mining_drone/set_combat_mode(new_mode, silent = TRUE) . = ..() @@ -250,13 +249,15 @@ QDEL_NULL(stored_gun) return ..() -/mob/living/basic/mining_drone/proc/pre_attack(datum/source, atom/target) - SIGNAL_HANDLER +/mob/living/basic/mining_drone/early_melee_attack(atom/target, list/modifiers, ignore_cooldown) + . = ..() + if(!.) + return FALSE if(!istype(target, /mob/living/basic/node_drone)) - return NONE - INVOKE_ASYNC(src, PROC_REF(repair_node_drone), target) - return COMPONENT_HOSTILE_NO_ATTACK + return TRUE + repair_node_drone(target) + return FALSE /mob/living/basic/mining_drone/proc/repair_node_drone(mob/living/my_target) do_sparks(5, FALSE, source = my_target) diff --git a/code/modules/mob/living/basic/pets/cat/cat.dm b/code/modules/mob/living/basic/pets/cat/cat.dm index 68821731ee4..3c2ab3f7c9f 100644 --- a/code/modules/mob/living/basic/pets/cat/cat.dm +++ b/code/modules/mob/living/basic/pets/cat/cat.dm @@ -94,29 +94,27 @@ ai_controller.set_blackboard_key(BB_HUNTABLE_PREY, typecacheof(huntable_items)) if(can_breed) add_breeding_component() - if(can_hold_item) - RegisterSignal(src, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, PROC_REF(pre_attack)) - if(can_interact_with_stove) - RegisterSignal(src, COMSIG_LIVING_EARLY_UNARMED_ATTACK, PROC_REF(pre_unarmed_attack)) /mob/living/basic/pet/cat/proc/add_cell_sample() AddElement(/datum/element/swabable, CELL_LINE_TABLE_CAT, CELL_VIRUS_TABLE_GENERIC_MOB, 1, 5) -/mob/living/basic/pet/cat/proc/pre_attack(mob/living/source, atom/movable/target) - SIGNAL_HANDLER - if(!is_type_in_list(target, huntable_items) || held_food) - return - target.forceMove(src) +/mob/living/basic/pet/cat/early_melee_attack(atom/target, list/modifiers, ignore_cooldown) + . = ..() + if(!.) + return FALSE -/mob/living/basic/pet/cat/proc/pre_unarmed_attack(mob/living/hitter, atom/target, proximity, modifiers) - SIGNAL_HANDLER + if(istype(target, /obj/machinery/oven/range) && can_interact_with_stove) + target.attack_hand(src) + return FALSE - if(!proximity || !can_unarmed_attack()) - return NONE - if(!istype(target, /obj/machinery/oven/range)) - return NONE - target.attack_hand(src) - return COMPONENT_CANCEL_ATTACK_CHAIN + if(!can_hold_item) + return TRUE + + if(!is_type_in_list(target, huntable_items) || held_food) + return TRUE + var/atom/movable/movable_target = target + movable_target.forceMove(src) + return FALSE /mob/living/basic/pet/cat/Exited(atom/movable/gone, direction) . = ..() diff --git a/code/modules/mob/living/basic/pets/orbie/orbie.dm b/code/modules/mob/living/basic/pets/orbie/orbie.dm index a0fbba899e3..85d82e92515 100644 --- a/code/modules/mob/living/basic/pets/orbie/orbie.dm +++ b/code/modules/mob/living/basic/pets/orbie/orbie.dm @@ -36,7 +36,7 @@ ///overlay for our happy eyes var/static/mutable_appearance/happy_eyes_overlay = mutable_appearance('icons/mob/simple/pets.dmi', "orbie_happy_eye_overlay") ///commands we can give orbie - var/list/pet_commands = list( + var/static/list/pet_commands = list( /datum/pet_command/idle, /datum/pet_command/free, /datum/pet_command/untargeted_ability/pet_lights, @@ -52,24 +52,21 @@ AddElement(/datum/element/basic_eating, food_types = food_types) ADD_TRAIT(src, TRAIT_SILICON_EMOTES_ALLOWED, INNATE_TRAIT) - RegisterSignal(src, COMSIG_ATOM_CAN_BE_PULLED, PROC_REF(on_pulled)) RegisterSignal(src, COMSIG_VIRTUAL_PET_LEVEL_UP, PROC_REF(on_level_up)) - RegisterSignal(src, COMSIG_MOB_CLICKON, PROC_REF(on_click)) RegisterSignal(src, COMSIG_ATOM_UPDATE_LIGHT_ON, PROC_REF(on_lights)) ai_controller.set_blackboard_key(BB_BASIC_FOODS, typecacheof(food_types)) update_appearance() -/mob/living/basic/orbie/proc/on_click(mob/living/basic/source, atom/target, params) - SIGNAL_HANDLER - - if(!CanReach(target)) - return - +/mob/living/basic/orbie/early_melee_attack(atom/target, list/modifiers, ignore_cooldown) + . = ..() + if(!.) + return FALSE if(src == target || happy_state || !istype(target)) - return + return TRUE toggle_happy_state() addtimer(CALLBACK(src, PROC_REF(toggle_happy_state)), 30 SECONDS) + return FALSE /mob/living/basic/orbie/proc/on_lights(datum/source) SIGNAL_HANDLER @@ -80,10 +77,8 @@ happy_state = !happy_state update_appearance() -/mob/living/basic/orbie/proc/on_pulled(datum/source) //i need move resist at 0, but i also dont want him to be pulled - SIGNAL_HANDLER - - return COMSIG_ATOM_CANT_PULL +/mob/living/basic/orbie/can_be_pulled(user, grab_state, force) + return FALSE /mob/living/basic/orbie/proc/on_level_up(datum/source, new_level) SIGNAL_HANDLER diff --git a/code/modules/mob/living/basic/pets/parrot/_parrot.dm b/code/modules/mob/living/basic/pets/parrot/_parrot.dm index e22948848eb..e76b9a5e83e 100644 --- a/code/modules/mob/living/basic/pets/parrot/_parrot.dm +++ b/code/modules/mob/living/basic/pets/parrot/_parrot.dm @@ -100,8 +100,6 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list( AddComponent(/datum/component/listen_and_repeat, desired_phrases = get_static_list_of_phrases(), blackboard_key = BB_PARROT_REPEAT_STRING) AddComponent(/datum/component/tameable, food_types = edibles, tame_chance = 100, bonus_tame_chance = 0) AddComponent(/datum/component/obeys_commands, pet_commands) - RegisterSignal(src, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, PROC_REF(pre_attacking)) - RegisterSignal(src, COMSIG_MOB_CLICKON, PROC_REF(on_click)) RegisterSignal(src, COMSIG_ATOM_ATTACKBY_SECONDARY, PROC_REF(on_attacked)) // this means we could have a peaceful interaction, like getting a cracker RegisterSignal(src, COMSIG_ATOM_WAS_ATTACKED, PROC_REF(on_injured)) // this means we got hurt and it's go time RegisterSignal(src, COMSIG_ANIMAL_PET, PROC_REF(on_pet)) @@ -186,12 +184,12 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list( icon_state = HAS_TRAIT(src, TRAIT_PARROT_PERCHED) ? icon_sit : icon_living /// Proc that we just use to see if we're rightclicking something for perch behavior or dropping the item we currently ahve -/mob/living/basic/parrot/proc/on_click(mob/living/basic/source, atom/target, params) - SIGNAL_HANDLER - if(!LAZYACCESS(params, RIGHT_CLICK) || !CanReach(target)) - return - if(start_perching(target) && !isnull(held_item)) +/mob/living/basic/parrot/resolve_right_click_attack(atom/target, list/modifiers) + if(!start_perching(target)) + return SECONDARY_ATTACK_CALL_NORMAL + if(!isnull(held_item)) drop_held_item(gently = TRUE) + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN /// Proc that handles sending the signal and returning a valid phrase to say. Will not do anything if we don't have a stat or if we're cliented. /// Will return either a string or null. @@ -275,16 +273,16 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list( /// Master proc which will determine the intent of OUR attacks on an object and summon the relevant procs accordingly. /// This is pretty much meant for players, AI will use the task-specific procs instead. -/mob/living/basic/parrot/proc/pre_attacking(mob/living/basic/source, atom/target) - SIGNAL_HANDLER - if(stat != CONSCIOUS) - return +/mob/living/basic/parrot/early_melee_attack(atom/target, list/modifiers, ignore_cooldown) + . = ..() + if(!.) + return FALSE if(isitem(target) && steal_from_ground(target)) - return COMPONENT_HOSTILE_NO_ATTACK + return FALSE if(iscarbon(target) && steal_from_mob(target)) - return COMPONENT_HOSTILE_NO_ATTACK + return FALSE /// Picks up an item from the ground and puts it in our claws. Returns TRUE if we picked it up, FALSE otherwise. /mob/living/basic/parrot/proc/steal_from_ground(obj/item/target) diff --git a/code/modules/mob/living/basic/space_fauna/eyeball/_eyeball.dm b/code/modules/mob/living/basic/space_fauna/eyeball/_eyeball.dm index c036fe46169..e735067b3ed 100644 --- a/code/modules/mob/living/basic/space_fauna/eyeball/_eyeball.dm +++ b/code/modules/mob/living/basic/space_fauna/eyeball/_eyeball.dm @@ -60,7 +60,6 @@ AddElement(/datum/element/simple_flying) AddComponent(/datum/component/tameable, food_types = list(/obj/item/food/grown/carrot), tame_chance = 100) ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT) - RegisterSignal(src, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, PROC_REF(pre_attack)) on_hit_overlay = mutable_appearance(icon, "[icon_state]_crying") /mob/living/basic/eyeball/UnarmedAttack(atom/attack_target, proximity_flag, list/modifiers) @@ -94,21 +93,18 @@ cut_overlay(on_hit_overlay) -/mob/living/basic/eyeball/proc/pre_attack(mob/living/eyeball, atom/target) - SIGNAL_HANDLER - +/mob/living/basic/eyeball/early_melee_attack(atom/target, list/modifiers, ignore_cooldown) + . = ..() + if(!.) + return FALSE if(!ishuman(target)) - return - + return TRUE var/mob/living/carbon/human_target = target var/obj/item/organ/internal/eyes/eyes = human_target.get_organ_slot(ORGAN_SLOT_EYES) - if(!eyes) - return - if(eyes.damage < 10) - return + if(isnull(eyes) || eyes.damage < 10) + return TRUE heal_eye_damage(human_target, eyes) - return COMPONENT_HOSTILE_NO_ATTACK - + return FALSE /mob/living/basic/eyeball/proc/heal_eye_damage(mob/living/target, obj/item/organ/internal/eyes/eyes) if(!COOLDOWN_FINISHED(src, eye_healing)) diff --git a/code/modules/mob/living/basic/space_fauna/hivebot/_hivebot.dm b/code/modules/mob/living/basic/space_fauna/hivebot/_hivebot.dm index 6b72f1f0975..b29718f8810 100644 --- a/code/modules/mob/living/basic/space_fauna/hivebot/_hivebot.dm +++ b/code/modules/mob/living/basic/space_fauna/hivebot/_hivebot.dm @@ -96,18 +96,19 @@ /mob/living/basic/hivebot/mechanic/Initialize(mapload) . = ..() GRANT_ACTION(/datum/action/cooldown/spell/conjure/foam_wall) - RegisterSignal(src, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, PROC_REF(pre_attack)) -/mob/living/basic/hivebot/mechanic/proc/pre_attack(mob/living/fixer, atom/target) - SIGNAL_HANDLER +/mob/living/basic/hivebot/mechanic/early_melee_attack(atom/target, list/modifiers, ignore_cooldown) + . = ..() + if(!.) + return FALSE if(ismachinery(target)) repair_machine(target) - return COMPONENT_HOSTILE_NO_ATTACK + return FALSE if(istype(target, /mob/living/basic/hivebot)) repair_hivebot(target) - return COMPONENT_HOSTILE_NO_ATTACK + return FALSE /mob/living/basic/hivebot/mechanic/proc/repair_machine(obj/machinery/fixable) if(fixable.get_integrity() >= fixable.max_integrity) diff --git a/code/modules/mob/living/basic/space_fauna/morph.dm b/code/modules/mob/living/basic/space_fauna/morph.dm index f1f568a261b..f205474af81 100644 --- a/code/modules/mob/living/basic/space_fauna/morph.dm +++ b/code/modules/mob/living/basic/space_fauna/morph.dm @@ -51,7 +51,6 @@ /mob/living/basic/morph/Initialize(mapload) . = ..() ADD_TRAIT(src, TRAIT_VENTCRAWLER_ALWAYS, INNATE_TRAIT) - RegisterSignal(src, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, PROC_REF(pre_attack)) RegisterSignal(src, COMSIG_CLICK_SHIFT, PROC_REF(trigger_ability)) RegisterSignal(src, COMSIG_ACTION_DISGUISED_APPEARANCE, PROC_REF(on_disguise)) RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_DISGUISED), PROC_REF(on_undisguise)) @@ -150,28 +149,31 @@ return COMSIG_MOB_CANCEL_CLICKON /// Handles the logic for attacking anything. -/mob/living/basic/morph/proc/pre_attack(mob/living/basic/source, atom/target) - SIGNAL_HANDLER +/mob/living/basic/morph/early_melee_attack(atom/target, list/modifiers, ignore_cooldown) + . = ..() + if(!.) + return FALSE if(HAS_TRAIT(src, TRAIT_DISGUISED) && (melee_damage_disguised <= 0)) balloon_alert(src, "can't attack while disguised!") - return COMPONENT_HOSTILE_NO_ATTACK + return FALSE if(isliving(target)) //Eat Corpses to regen health var/mob/living/living_target = target if(living_target.stat != DEAD) - return + return TRUE - INVOKE_ASYNC(source, PROC_REF(eat), eatable = living_target, delay = 3 SECONDS, update_health = -50) - return COMPONENT_HOSTILE_NO_ATTACK + eat(eatable = living_target, delay = 3 SECONDS, update_health = -50) + return FALSE - if(isitem(target)) //Eat items just to be annoying - var/obj/item/item_target = target - if(item_target.anchored) - return + if(!isitem(target)) //Eat items just to be annoying + return TRUE - INVOKE_ASYNC(source, PROC_REF(eat), eatable = item_target, delay = 2 SECONDS) - return COMPONENT_HOSTILE_NO_ATTACK + var/obj/item/item_target = target + if(item_target.anchored) + return TRUE + eat(eatable = item_target, delay = 2 SECONDS) + return FALSE /// Eat stuff. Delicious. Return TRUE if we ate something, FALSE otherwise. /// Required: `eatable` is the thing (item or mob) that we are going to eat. diff --git a/code/modules/mob/living/basic/space_fauna/mushroom.dm b/code/modules/mob/living/basic/space_fauna/mushroom.dm index de501eaea2e..28f8fa46013 100644 --- a/code/modules/mob/living/basic/space_fauna/mushroom.dm +++ b/code/modules/mob/living/basic/space_fauna/mushroom.dm @@ -53,7 +53,6 @@ health = maxHealth AddElement(/datum/element/swabable, CELL_LINE_TABLE_WALKING_MUSHROOM, CELL_VIRUS_TABLE_GENERIC_MOB, 1, 5) ADD_TRAIT(src, TRAIT_VENTCRAWLER_ALWAYS, INNATE_TRAIT) - RegisterSignal(src, COMSIG_HOSTILE_POST_ATTACKINGTARGET, PROC_REF(on_attacked_target)) /datum/ai_controller/basic_controller/mushroom blackboard = list( @@ -94,20 +93,17 @@ recover(attack_target) return TRUE -/mob/living/basic/mushroom/proc/on_attacked_target(mob/living/basic/attacker, atom/target) - SIGNAL_HANDLER - - if(!istype(target, /mob/living/basic/mushroom)) - return - var/mob/living/basic/mushroom/victim = target - if(victim.stat != DEAD) +/mob/living/basic/mushroom/melee_attack(mob/living/basic/mushroom/target, list/modifiers, ignore_cooldown = FALSE) + . = ..() + if(!.) + return FALSE + if(!istype(target) || target.stat != DEAD) return - if(victim.faint_ticker >= 3) - consume_mushroom(victim) + if(target.faint_ticker >= 3) + consume_mushroom(target) return - - victim.faint_ticker++ - visible_message(span_notice("[src] chews a bit on [victim].")) + target.faint_ticker++ + visible_message(span_notice("[src] chews a bit on [target].")) /mob/living/basic/mushroom/proc/consume_mushroom(mob/living/basic/mushroom/consumed) visible_message(span_warning("[src] devours [consumed]!")) diff --git a/code/modules/mob/living/basic/space_fauna/regal_rat/regal_rat.dm b/code/modules/mob/living/basic/space_fauna/regal_rat/regal_rat.dm index 9f9598b11ae..eae137787ed 100644 --- a/code/modules/mob/living/basic/space_fauna/regal_rat/regal_rat.dm +++ b/code/modules/mob/living/basic/space_fauna/regal_rat/regal_rat.dm @@ -49,7 +49,6 @@ . = ..() ADD_TRAIT(src, TRAIT_VENTCRAWLER_ALWAYS, INNATE_TRAIT) - RegisterSignal(src, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, PROC_REF(pre_attack)) RegisterSignal(src, COMSIG_MOB_LOGIN, PROC_REF(on_login)) AddElementTrait(TRAIT_WADDLING, INNATE_TRAIT, /datum/element/waddling) @@ -169,21 +168,22 @@ special_moniker = "You better not screw with [p_their()] [selected_kingdom]... How do you become a [selected_title] of that anyways?" /// Checks if we are able to attack this object, as well as send out the signal to see if we get any special regal rat interactions. -/mob/living/basic/regal_rat/proc/pre_attack(mob/living/source, atom/target) - SIGNAL_HANDLER +/mob/living/basic/regal_rat/early_melee_attack(atom/target, list/modifiers, ignore_cooldown) + . = ..() + if(!.) + return FALSE if(DOING_INTERACTION(src, REGALRAT_INTERACTION) || !allowed_to_attack(target)) - return COMPONENT_HOSTILE_NO_ATTACK + return FALSE if(SEND_SIGNAL(target, COMSIG_RAT_INTERACT, src) & COMPONENT_RAT_INTERACTED) - return COMPONENT_HOSTILE_NO_ATTACK + return FALSE - if(isnull(mind)) - return + if(isnull(mind) || !combat_mode) + return TRUE - if(!combat_mode) - INVOKE_ASYNC(src, PROC_REF(poison_target), target) - return COMPONENT_HOSTILE_NO_ATTACK + poison_target(target) + return TRUE /// Checks if we are allowed to attack this mob. Will return TRUE if we are potentially allowed to attack, but if we end up in a case where we should NOT attack, return FALSE. /mob/living/basic/regal_rat/proc/allowed_to_attack(atom/the_target) diff --git a/code/modules/mob/living/basic/space_fauna/supermatter_spider.dm b/code/modules/mob/living/basic/space_fauna/supermatter_spider.dm index a094e20ec35..8c879045a36 100644 --- a/code/modules/mob/living/basic/space_fauna/supermatter_spider.dm +++ b/code/modules/mob/living/basic/space_fauna/supermatter_spider.dm @@ -44,11 +44,11 @@ AddElement(/datum/element/ai_retaliate) AddElement(/datum/element/footstep, FOOTSTEP_MOB_CLAW) - RegisterSignal(src, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, PROC_REF(on_attack)) - /// Proc that we call on attacking something to dust 'em. -/mob/living/basic/supermatter_spider/proc/on_attack(mob/living/basic/source, atom/target) - SIGNAL_HANDLER +/mob/living/basic/supermatter_spider/early_melee_attack(atom/target, list/modifiers, ignore_cooldown) + . = ..() + if(!.) + return FALSE if(isliving(target)) var/mob/living/victim = target @@ -57,14 +57,14 @@ victim.dust() if(single_use) death() - return COMPONENT_HOSTILE_NO_ATTACK + return FALSE if(!isturf(target)) dust_feedback(target) qdel(target) if(single_use) death() - return COMPONENT_HOSTILE_NO_ATTACK + return FALSE /// Simple proc that plays the supermatter dusting sound and sends a visible message. /mob/living/basic/supermatter_spider/proc/dust_feedback(atom/target) From 7126fe2394a8a40d2f855ae02ac4f39e9c6f86b6 Mon Sep 17 00:00:00 2001 From: Koi <168238458+GremlinSeeker@users.noreply.github.com> Date: Tue, 15 Oct 2024 15:00:43 -0500 Subject: [PATCH 068/103] New Icebox Ruin - Syndicate Biodome (#86957) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## About The Pull Request **A Dangerous Ruin Approaches!** A new high-risk, high reward ruin for icebox! Featuring some very dangerous enemies for some goodies. Small puzzle element included find the keycard to open the research directors office to lift the lockdown on the security post, from there you can lift the lockdown on the surgical rooms, all the while encountering feral gorillas. ## Why It's Good For The Game Icebox lacks some dangerous ruins with decent loot. The loot here is a WIP and I'm hoping can be discussed. I know icebox still is in need of some ruins and I had some ideas and threw this together. The map size is 45x45. I made it so you also can't just bee-line and cheese it by adding indestructable shutters, windows, and walls, along with a noteleport area flag to prevent cheesing of the area. In-game rendered screenshots: ![image](https://github.com/user-attachments/assets/deb4a3de-ab3b-4fad-9bc2-38edc58ddbfd) ![image](https://github.com/user-attachments/assets/16debd29-86e2-4a78-92eb-099234634c56) ![Uploading image.png…]() Editor Screenshots: ![image](https://github.com/user-attachments/assets/330efb1f-9cc2-457b-b0d8-75719c38b7a2) ![image](https://github.com/user-attachments/assets/281e9189-a447-4a25-8932-fca8797a1037) Notable loot Spawns: ![image](https://github.com/user-attachments/assets/b352b461-0a72-4b1f-83fe-57dbb39f2d39) ![image](https://github.com/user-attachments/assets/a3075def-dcb1-40a5-8d6f-c672e1528647) ![image](https://github.com/user-attachments/assets/50e352e5-15e6-45e8-a2fd-d96625b4f538) ![image](https://github.com/user-attachments/assets/a811231b-70d0-4730-a938-186320438782) ![image](https://github.com/user-attachments/assets/5c07b521-a36f-4e54-807f-6fee95672da7) ![image](https://github.com/user-attachments/assets/a7403e0c-ad09-4a64-8826-18181fc1a26c) ## Changelog :cl: map: New Icebox Ruin "Syndicate Biodome" added. /:cl: --- .../icemoon_underground_syndidome.dmm | 6550 +++++++++++++++++ code/datums/ruins/icemoon.dm | 6 + code/game/area/areas/ruins/icemoon.dm | 10 + code/game/objects/structures/window.dm | 26 + code/game/turfs/closed/indestructible.dm | 6 + 5 files changed, 6598 insertions(+) create mode 100644 _maps/RandomRuins/IceRuins/icemoon_underground_syndidome.dmm diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_syndidome.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_syndidome.dmm new file mode 100644 index 00000000000..971b9582568 --- /dev/null +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_syndidome.dmm @@ -0,0 +1,6550 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/obj/machinery/light/warm/directional/east, +/obj/structure/fluff/fake_camera{ + dir = 4 + }, +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/disk/data, +/obj/item/disk/data{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/disk/data{ + pixel_x = 4; + pixel_y = 5 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"ab" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/digital_clock/directional/west, +/obj/machinery/computer{ + dir = 4 + }, +/obj/structure/fluff/fake_camera{ + dir = 10 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"ag" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/purple/corner, +/obj/item/kirbyplants/organic/plant22, +/obj/structure/sign/warning/biohazard/directional/east, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"ah" = ( +/obj/effect/turf_decal/trimline/dark/line{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"al" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/purple/line{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"aC" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/book/manual/wiki/cytology{ + pixel_x = 3; + pixel_y = 5 + }, +/obj/item/reagent_containers/cup/beaker{ + pixel_y = 11; + pixel_x = -20 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"ba" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/fluff/fake_vent, +/obj/effect/decal/cleanable/glass/plastitanium, +/turf/open/floor/iron/dark/side, +/area/ruin/syndibiodome) +"bb" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"bu" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green, +/obj/item/toy/figure/syndie{ + pixel_x = -9; + pixel_y = 0 + }, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"bv" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"bw" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/structure/flora/bush/reed/style_2, +/turf/open/water/jungle, +/area/ruin/syndibiodome) +"bz" = ( +/obj/effect/turf_decal/siding/wideplating/dark/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 4 + }, +/obj/machinery/light/small/dim/directional/south, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"bB" = ( +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/obj/machinery/door/poddoor/shutters/window/indestructible{ + id = "bsyndidomRD"; + name = "Lockdown Shutters" + }, +/obj/structure/curtain/bounty, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"bC" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/obj/effect/decal/cleanable/glass/plastitanium, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"bG" = ( +/obj/effect/turf_decal/trimline/dark/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/footprints, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"bJ" = ( +/obj/structure/fluff/tram_rail/end{ + dir = 8 + }, +/obj/structure/marker_beacon/yellow{ + pixel_x = -6; + pixel_y = -8 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"bK" = ( +/obj/effect/decal/cleanable/blood/footprints{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"bR" = ( +/obj/effect/turf_decal/weather/snow/corner, +/obj/structure/railing/corner{ + dir = 4 + }, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"cb" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"ck" = ( +/obj/structure/flora/tree/pine/style_random, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"cm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/fake_vent, +/obj/effect/decal/cleanable/glass/plastitanium, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"cu" = ( +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"cx" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/obj/structure/fluff/fake_scrubber{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"cB" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 5 + }, +/obj/machinery/smartfridge/organ, +/obj/item/organ/internal/alien/resinspinner, +/obj/item/organ/internal/eyes/night_vision, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"cE" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/mineral/plasma/thirty, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"cG" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 6 + }, +/obj/structure/rack, +/obj/item/emergency_bed{ + pixel_x = 9; + pixel_y = 8 + }, +/obj/item/emergency_bed{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/item/emergency_bed{ + pixel_x = 3; + pixel_y = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"cI" = ( +/obj/structure/door_assembly/door_assembly_highsecurity, +/obj/structure/fans/tiny, +/obj/effect/decal/cleanable/glass/plastitanium, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"cJ" = ( +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 4 + }, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"cN" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"cO" = ( +/obj/structure/flora/tree/pine/style_2, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"di" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/structure/flora/bush/flowers_pp/style_3, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"dk" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/obj/structure/flora/rock/pile/jungle/style_4, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"dl" = ( +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 4 + }, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"dJ" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/obj/structure/fluff/fake_scrubber, +/obj/effect/turf_decal/trimline/purple/corner, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"dS" = ( +/obj/machinery/door/airlock/hatch, +/obj/machinery/door/poddoor/shutters/indestructible{ + id = "biosurglockdown"; + name = "Surgery Lockdown Shutters" + }, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"ek" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/structure/closet, +/obj/item/clothing/under/syndicate/bloodred/sleepytime, +/obj/structure/sign/poster/contraband/energy_swords/directional/west, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"el" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/fake_vent, +/obj/effect/turf_decal/trimline/dark/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"eH" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/obj/structure/flora/bush/flowers_pp/style_3, +/obj/structure/flora/rock/pile/jungle/style_4, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"eK" = ( +/obj/structure/chair/office/tactical{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/glass/plastitanium, +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/ruin/syndibiodome) +"eL" = ( +/obj/structure/flora/tree/jungle/small/style_2, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"eM" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 9 + }, +/obj/structure/railing{ + dir = 9 + }, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"eO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/fake_scrubber, +/obj/effect/turf_decal/trimline/dark_red/line{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"fc" = ( +/obj/structure/filingcabinet{ + pixel_x = 8; + pixel_y = 0 + }, +/obj/structure/filingcabinet{ + pixel_x = -8; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"fp" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"fI" = ( +/obj/structure/fluff/tram_rail/end{ + dir = 1 + }, +/obj/structure/marker_beacon/yellow{ + pixel_x = 4; + pixel_y = 8 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"fO" = ( +/obj/structure/flora/bush/flowers_pp/style_3, +/obj/effect/decal/cleanable/blood/trails{ + dir = 10 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"fT" = ( +/obj/structure/chair/office/tactical{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"fU" = ( +/obj/machinery/door/firedoor, +/obj/structure/fans/tiny, +/obj/machinery/door/airlock/highsecurity{ + name = "Syndicate Biodome Testing Facility" + }, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"fV" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/structure/bed, +/obj/item/bedsheet/syndie, +/obj/machinery/light/small/dim/directional/south, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"gf" = ( +/obj/effect/turf_decal/trimline/dark/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/footprints, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"gt" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/obj/structure/flora/bush/reed/style_4{ + pixel_x = 3; + pixel_y = 2 + }, +/turf/open/water/jungle, +/area/ruin/syndibiodome) +"gu" = ( +/obj/effect/decal/cleanable/glass/plastitanium, +/obj/effect/decal/cleanable/glass/plastitanium, +/turf/open/misc/dirt/station, +/area/ruin/syndibiodome) +"gv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"gB" = ( +/obj/effect/turf_decal/trimline/purple/line{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"gH" = ( +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 8 + }, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/effect/decal/cleanable/dirt, +/obj/effect/gibspawner/generic, +/obj/effect/decal/cleanable/blood/tracks, +/obj/effect/decal/cleanable/blood/gibs/down, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"gX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/warm/directional/west, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"ha" = ( +/obj/machinery/exoscanner, +/obj/structure/lattice/catwalk, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"he" = ( +/mob/living/basic/gorilla/genetics, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"hf" = ( +/obj/structure/flora/rock/pile, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"hj" = ( +/obj/effect/turf_decal/trimline/green/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"hm" = ( +/mob/living/basic/gorilla/genetics, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"hr" = ( +/obj/structure/flora/grass/jungle/b/style_3, +/obj/effect/gibspawner/human, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"hA" = ( +/obj/machinery/computer{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 9 + }, +/obj/machinery/light/small/red/directional/west, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"hF" = ( +/obj/structure/chair/office/tactical{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/effect/mob_spawn/corpse/human/geneticist, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"hK" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/structure/flora/rock/pile/jungle/style_4, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"hM" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/closet/crate/bin{ + pixel_x = 0; + pixel_y = 6 + }, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"hQ" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/structure/fluff/fake_scrubber{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/dark/corner{ + dir = 2 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"hR" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/purple/line{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"hS" = ( +/obj/effect/turf_decal/trimline/green/line, +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/fake_vent, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"hU" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/purple/corner{ + dir = 4 + }, +/obj/item/kirbyplants/organic/plant22, +/obj/structure/sign/warning/biohazard/directional/east, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"hZ" = ( +/obj/effect/gibspawner/human/bodypartless, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"ic" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/dim/directional/north, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"io" = ( +/obj/item/lead_pipe, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"ip" = ( +/obj/structure/hedge, +/obj/structure/railing{ + dir = 10 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"iq" = ( +/obj/structure/flora/rock/pile/style_random, +/mob/living/carbon/human/species/monkey/angry, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"ir" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/dim/directional/east, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"iG" = ( +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 1 + }, +/obj/effect/gibspawner/generic, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"iH" = ( +/obj/structure/flora/bush/fullgrass/style_random, +/obj/structure/flora/bush/grassy/style_random, +/obj/structure/flora/grass/jungle/b/style_random, +/obj/structure/flora/bush/lavendergrass/style_random, +/obj/structure/flora/bush/leafy, +/obj/structure/flora/bush/flowers_br/style_random, +/obj/structure/marker_beacon/lime, +/obj/structure/window/reinforced/survival_pod/spawner/directional/west, +/obj/structure/window/reinforced/survival_pod/spawner/directional/north, +/obj/structure/window/reinforced/survival_pod/spawner/directional/east, +/obj/structure/flora/bush/large{ + pixel_y = -4 + }, +/obj/structure/window/reinforced/survival_pod/spawner/directional/south, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndibiodome) +"iI" = ( +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"iS" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark/end, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/donk_co/directional/east, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"iV" = ( +/obj/effect/turf_decal/trimline/green/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/trails{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"iX" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"iZ" = ( +/obj/machinery/door/airlock/public/glass, +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"ja" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 6 + }, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/surgery_tray/full, +/obj/item/clothing/gloves/latex/coroner{ + pixel_x = -1; + pixel_y = 8 + }, +/obj/item/clothing/mask/surgical{ + pixel_x = 6; + pixel_y = 10 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"jd" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/paper_bin, +/obj/item/pen/red{ + pixel_x = 5; + pixel_y = 6 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"je" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"jp" = ( +/obj/structure/flora/bush/jungle/a/style_2, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"jv" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/fluff/fake_vent, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"jA" = ( +/obj/effect/decal/cleanable/blood/footprints, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"jQ" = ( +/turf/closed/indestructible/syndicate/nodiagonal, +/area/icemoon/surface/outdoors/noteleport) +"jR" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/dark_red/line, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"jS" = ( +/obj/structure/fluff/tram_rail/end{ + dir = 4 + }, +/obj/structure/marker_beacon/yellow{ + pixel_x = -7; + pixel_y = 9 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"jT" = ( +/obj/structure/mirror/directional/east, +/obj/machinery/light/small/dim/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"jV" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/wood, +/obj/machinery/light/small/red/directional/west, +/obj/item/food/popcorn/salty{ + pixel_x = -4; + pixel_y = 8 + }, +/obj/item/food/popcorn/caramel{ + pixel_x = 9; + pixel_y = 7 + }, +/turf/open/floor/carpet/black, +/area/ruin/syndibiodome) +"kb" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/machinery/chem_dispenser/drinks{ + dir = 4 + }, +/obj/machinery/button/door/directional/west{ + name = "Kitchen Shutter Control"; + id = "bdomekitch" + }, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"kd" = ( +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/obj/structure/curtain/bounty, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"km" = ( +/obj/effect/spawner/random/vending/snackvend, +/obj/effect/turf_decal/siding/wideplating/dark/end{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"kq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/red/directional/north, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"kt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/gibspawner/human/bodypartless, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"kw" = ( +/obj/effect/decal/cleanable/blood/gibs/core, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"kz" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/effect/turf_decal/weather/dirt, +/obj/machinery/light/small/dim/directional/north, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"kA" = ( +/obj/effect/turf_decal/trimline/dark/line{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/effect/decal/cleanable/blood/trails{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"kH" = ( +/obj/machinery/computer{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 10 + }, +/obj/machinery/light/small/red/directional/west, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"kJ" = ( +/obj/effect/turf_decal/trimline/purple/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"kK" = ( +/obj/machinery/computer/operating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 9 + }, +/obj/structure/fluff/fake_camera{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"kO" = ( +/obj/effect/decal/cleanable/blood/footprints{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"kQ" = ( +/obj/structure/chair/office/tactical{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"kX" = ( +/obj/machinery/computer{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/warm/directional/west, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"la" = ( +/obj/structure/table/wood, +/obj/item/paper/carbon{ + pixel_x = -5; + pixel_y = 4 + }, +/obj/item/pen/red{ + pixel_x = 5; + pixel_y = 6 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"lg" = ( +/obj/effect/turf_decal/trimline/purple/line{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/warning/bodysposal/directional/north, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"lh" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/machinery/light/small/red/directional/south, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/black, +/area/ruin/syndibiodome) +"lm" = ( +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/obj/structure/curtain/bounty/start_closed, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"lx" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/machinery/dna_scannernew, +/obj/effect/mapping_helpers/broken_machine, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"lH" = ( +/obj/effect/turf_decal/siding/wood/end{ + dir = 8 + }, +/obj/structure/chair/stool/bar/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"me" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/chair/comfy/brown{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/black, +/area/ruin/syndibiodome) +"my" = ( +/obj/effect/turf_decal/trimline/green/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"mA" = ( +/obj/structure/fans/tiny, +/obj/machinery/door/airlock/grunge, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"mF" = ( +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"mK" = ( +/turf/open/misc/asteroid/snow/icemoon, +/area/ruin/syndibiodome) +"mV" = ( +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"mW" = ( +/obj/effect/spawner/random/trash, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"mZ" = ( +/turf/template_noop, +/area/template_noop) +"nk" = ( +/obj/effect/turf_decal/trimline/green/line{ + dir = 8 + }, +/obj/effect/mob_spawn/corpse/human/syndicatecommando/lessenedgear, +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"nn" = ( +/obj/structure/hedge, +/obj/structure/railing{ + dir = 9 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"nx" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/turf/open/water/jungle, +/area/ruin/syndibiodome) +"nH" = ( +/obj/structure/fluff/fake_scrubber{ + dir = 4 + }, +/obj/structure/chair/office/tactical{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"nO" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/machinery/microwave, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"nP" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/bush/flowers_pp/style_3, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"oc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wideplating/dark/corner, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"of" = ( +/obj/effect/turf_decal/trimline/purple/line{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"oj" = ( +/obj/effect/mob_spawn/corpse/human/syndicatecommando/lessenedgear, +/obj/effect/turf_decal/trimline/dark_red/line, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"oq" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"ox" = ( +/obj/effect/decal/cleanable/glass/plastitanium, +/obj/effect/decal/cleanable/blood/trails{ + dir = 8 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/obj/effect/turf_decal/weather/dirt, +/turf/open/misc/dirt/station, +/area/ruin/syndibiodome) +"oA" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/gibspawner/generic, +/obj/structure/fluff/fake_vent, +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"oG" = ( +/obj/effect/turf_decal/trimline/dark_blue/line{ + dir = 8 + }, +/obj/machinery/light/warm/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/mob/living/basic/gorilla/genetics, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"oH" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/computer{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"oK" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/fluff/fake_camera{ + dir = 1 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"oQ" = ( +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/obj/machinery/door/poddoor/shutters/indestructible{ + id = "biosurglockdown"; + name = "Surgery Lockdown Shutters" + }, +/obj/structure/curtain/bounty/start_closed, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"oV" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 10 + }, +/obj/structure/microscope{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/petri_dish/random{ + pixel_x = 7; + pixel_y = 19 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"pg" = ( +/obj/structure/lattice, +/obj/structure/minecart_rail, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"pj" = ( +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/obj/machinery/door/poddoor/shutters/window/indestructible{ + id = "biodomearmor"; + name = "Security Post Lockdown Shutters" + }, +/obj/structure/curtain/bounty, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"pA" = ( +/obj/machinery/computer{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating/dark/end{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/red/directional/north, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"pE" = ( +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/hatch{ + name = "Observation Room" + }, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"pN" = ( +/obj/effect/turf_decal/trimline/green/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"pY" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"qa" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"qh" = ( +/obj/machinery/light/warm/directional/west, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/dark_red/line{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"qi" = ( +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"qp" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/gibs/up, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/green, +/area/ruin/syndibiodome) +"qx" = ( +/obj/machinery/vending/cigarette/syndicate, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 5 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"qy" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/glass/plastitanium, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"qz" = ( +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/effect/decal/cleanable/blood/trails{ + dir = 10 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"qB" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/fluff/fake_scrubber{ + dir = 4 + }, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"qC" = ( +/obj/structure/chair/office/tactical{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating/dark/corner{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"qN" = ( +/turf/closed/indestructible/syndicate, +/area/ruin/syndibiodome) +"qU" = ( +/obj/structure/fluff/fake_camera{ + dir = 10 + }, +/obj/structure/closet/crate/bin, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"qV" = ( +/obj/structure/flora/bush/flowers_yw/style_3, +/obj/structure/flora/bush/flowers_br/style_3, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"rs" = ( +/obj/effect/turf_decal/trimline/dark_red/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"rK" = ( +/obj/structure/table/optable, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/mob/living/carbon/human/species/monkey/angry, +/obj/machinery/light/warm/directional/north, +/obj/machinery/digital_clock/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"rQ" = ( +/obj/effect/decal/cleanable/dirt, +/mob/living/basic/gorilla/genetics, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"rX" = ( +/obj/effect/turf_decal/siding/wideplating/dark/end{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"rZ" = ( +/obj/machinery/light/small/dim/directional/north, +/obj/machinery/power/port_gen/pacman, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"si" = ( +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/obj/structure/curtain/bounty/start_closed, +/obj/structure/fans/tiny/invisible, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"sj" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/obj/structure/flora/bush/flowers_pp/style_3, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"sD" = ( +/obj/item/kirbyplants/organic/plant22, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 6 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"sJ" = ( +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark, +/obj/effect/decal/cleanable/blood/trails{ + dir = 6 + }, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 10 + }, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"sM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/gibspawner/generic, +/mob/living/basic/clown/mutant/glutton, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"sN" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/fluff/fake_vent, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"sR" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/structure/bed/double, +/obj/item/bedsheet/syndie/double, +/turf/open/floor/carpet/green, +/area/ruin/syndibiodome) +"tb" = ( +/obj/machinery/vatgrower{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/mapping_helpers/broken_machine, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"td" = ( +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark/corner{ + dir = 1 + }, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"tk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/dark_red/line{ + dir = 8 + }, +/obj/structure/sign/poster/contraband/gorlex_recruitment/directional/west, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"tq" = ( +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green, +/obj/item/toy/figure/syndie{ + pixel_x = 11; + pixel_y = -1 + }, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"ts" = ( +/obj/effect/turf_decal/trimline/dark/line, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"tx" = ( +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark/corner{ + dir = 4 + }, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"tK" = ( +/obj/effect/turf_decal/trimline/green/corner, +/obj/effect/decal/cleanable/blood/trails{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"tL" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 5 + }, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"ue" = ( +/obj/effect/turf_decal/trimline/dark_red/line{ + dir = 10 + }, +/obj/item/kirbyplants/organic/plant22, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"ui" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 5 + }, +/obj/structure/fluff/fake_scrubber{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"up" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 6 + }, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"uq" = ( +/obj/effect/turf_decal/trimline/dark_blue/line{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"us" = ( +/obj/effect/turf_decal/trimline/green/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"ux" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 9 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"uD" = ( +/obj/structure/fluff/tram_rail/end{ + dir = 4 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"uE" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 9 + }, +/obj/machinery/reagentgrinder{ + pixel_x = -3; + pixel_y = 13 + }, +/obj/item/biopsy_tool{ + pixel_x = 24; + pixel_y = 5 + }, +/obj/item/swab{ + pixel_y = -8; + pixel_x = -6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/petri_dish/random{ + pixel_x = 5; + pixel_y = -1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"uG" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/obj/structure/railing{ + dir = 10 + }, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"uH" = ( +/obj/effect/decal/cleanable/blood/footprints, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/kirbyplants/organic/plant22, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"uL" = ( +/obj/effect/mob_spawn/corpse/human/syndicatecommando/lessenedgear, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"uS" = ( +/obj/effect/mob_spawn/corpse/human/geneticist, +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/purple/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"uW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/gibspawner/human/bodypartless, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"vc" = ( +/obj/effect/turf_decal/trimline/green/line, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"vg" = ( +/obj/structure/chair/sofa/bench{ + dir = 1 + }, +/obj/machinery/light/warm/directional/south, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"vl" = ( +/obj/structure/rack, +/obj/item/clothing/mask/gas/syndicate{ + pixel_x = -6; + pixel_y = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/clothing/suit/hooded/explorer/syndicate{ + pixel_x = 7; + pixel_y = 3 + }, +/obj/item/pickaxe/drill/diamonddrill{ + pixel_x = 0; + pixel_y = 1 + }, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"vs" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 10 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"vu" = ( +/obj/structure/flora/bush/flowers_br/style_3, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"vw" = ( +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"vx" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"vA" = ( +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wideplating/dark/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"vF" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/purple/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"vJ" = ( +/obj/effect/decal/cleanable/dirt, +/mob/living/basic/gorilla/genetics, +/obj/effect/turf_decal/trimline/purple/corner, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"vK" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 8 + }, +/obj/structure/fluff/fake_vent, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"vN" = ( +/obj/item/kirbyplants/organic/plant22, +/obj/effect/turf_decal/trimline/dark_red/corner, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"vO" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/dark_red/line, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"vP" = ( +/obj/effect/turf_decal/trimline/purple/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"vZ" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 5 + }, +/obj/structure/railing{ + dir = 5 + }, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"wd" = ( +/obj/effect/decal/cleanable/blood/tracks, +/obj/structure/table/reinforced, +/obj/item/knife/butcher, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/glass/reinforced, +/area/ruin/syndibiodome) +"wf" = ( +/obj/structure/hedge, +/obj/structure/railing{ + dir = 6 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"wi" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = -3; + pixel_y = 10 + }, +/obj/item/clothing/gloves/latex, +/obj/item/clothing/gloves/latex{ + pixel_x = 5; + pixel_y = 7 + }, +/obj/item/clothing/mask/surgical, +/obj/item/clothing/mask/surgical{ + pixel_x = 1; + pixel_y = 8 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"ws" = ( +/obj/structure/chair/office/tactical{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/mob_spawn/corpse/human/syndicatepilot, +/obj/effect/gibspawner/human/bodypartless, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"wx" = ( +/obj/machinery/computer/operating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 9 + }, +/obj/structure/fluff/fake_camera{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"wL" = ( +/obj/effect/gibspawner/human/bodypartless, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"wQ" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"wR" = ( +/obj/effect/mob_spawn/corpse/human/geneticist, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/purple/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"wT" = ( +/obj/effect/turf_decal/trimline/purple/line{ + dir = 8 + }, +/obj/machinery/light/warm/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/effect/gibspawner/human/bodypartless, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"wY" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"xd" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/turf/open/water/jungle, +/area/ruin/syndibiodome) +"xf" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/computer{ + dir = 8 + }, +/obj/machinery/digital_clock/directional/north, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"xh" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/warm/directional/east, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"xi" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"xj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/purple/line{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/effect/gibspawner/human/bodypartless, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"xk" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/fake_vent, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"xn" = ( +/obj/effect/turf_decal/trimline/green/line{ + dir = 1 + }, +/obj/effect/gibspawner/generic, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"xq" = ( +/obj/item/kirbyplants/organic/plant22, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/dark_red/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"xr" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/rock/pile/jungle, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"xx" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 6 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 5 + }, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"xz" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/structure/flora/rock/pile/jungle/style_3, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"xB" = ( +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/obj/effect/gibspawner/human/bodypartless, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"xH" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"xL" = ( +/obj/effect/turf_decal/trimline/dark/line{ + dir = 1 + }, +/mob/living/carbon/human/species/monkey/angry, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/footprints, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"xN" = ( +/obj/structure/fluff/tram_rail/electric/anchor{ + dir = 1 + }, +/obj/structure/marker_beacon/burgundy{ + pixel_x = 1; + pixel_y = 6 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"xP" = ( +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark/corner, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/clock/directional/west, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"xZ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/chair/comfy/shuttle, +/obj/machinery/button/door/directional/west{ + name = "Armory Lockdown"; + id = "biodomearmor" + }, +/turf/open/floor/carpet/green, +/area/ruin/syndibiodome) +"yd" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/flora/bush/flowers_pp/style_3, +/obj/machinery/light/floor, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"yi" = ( +/obj/effect/turf_decal/trimline/dark_red/warning{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/bodypart/leg/right/skeleton, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"yj" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/obj/structure/flora/bush/flowers_br/style_3, +/obj/effect/decal/cleanable/blood/trails{ + dir = 5 + }, +/obj/structure/fluff/fake_camera{ + dir = 4 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"ym" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/dim/directional/west, +/obj/effect/turf_decal/siding/wideplating/dark/end{ + dir = 8 + }, +/obj/structure/bodycontainer/crematorium/creamatorium{ + dir = 4 + }, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"ys" = ( +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"yt" = ( +/obj/structure/table/wood, +/obj/item/storage/fancy/cigarettes/cigars{ + pixel_x = -3; + pixel_y = 6 + }, +/obj/item/lighter{ + pixel_x = 13; + pixel_y = -2 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/carpet/green, +/area/ruin/syndibiodome) +"yy" = ( +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"yH" = ( +/obj/effect/decal/cleanable/blood/splatter/over_window, +/obj/effect/decal/cleanable/blood/trails, +/obj/effect/decal/cleanable/glass/plastitanium, +/obj/machinery/door/poddoor/shutters/indestructible{ + id = "biosurglockdown"; + name = "Surgery Lockdown Shutters" + }, +/obj/structure/curtain/bounty/start_closed, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"yL" = ( +/obj/effect/turf_decal/trimline/dark_blue/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/fake_camera{ + dir = 10 + }, +/obj/machinery/digital_clock/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"yN" = ( +/obj/effect/turf_decal/weather/dirt, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"yU" = ( +/mob/living/carbon/human/species/monkey/angry, +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"zc" = ( +/obj/structure/flora/rock/pile/style_3, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"zd" = ( +/obj/structure/fluff/tram_rail/end, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"ze" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/structure/dresser, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"zl" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/obj/structure/tank_dispenser/oxygen, +/obj/machinery/light/warm/directional/east, +/obj/machinery/digital_clock/directional/east, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"zu" = ( +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/machinery/light/warm/directional/north, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"zy" = ( +/obj/effect/decal/cleanable/blood/footprints{ + dir = 2 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"zD" = ( +/obj/effect/turf_decal/weather/snow/corner, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"zF" = ( +/obj/effect/turf_decal/trimline/green/corner, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"zG" = ( +/obj/effect/turf_decal/trimline/dark/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"zI" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/glass/plastitanium, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"zM" = ( +/turf/closed/indestructible/syndicate/nodiagonal, +/area/ruin/syndibiodome) +"zP" = ( +/obj/machinery/door/airlock/hatch{ + name = "Observation Room" + }, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"zT" = ( +/obj/machinery/door/airlock/external/ruin, +/obj/structure/fans/tiny, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"Ab" = ( +/obj/machinery/door/airlock/hatch{ + name = "Surgery Room #1" + }, +/obj/machinery/door/poddoor/shutters/indestructible{ + id = "biosurglockdown"; + name = "Surgery Lockdown Shutters" + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Av" = ( +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/obj/structure/curtain/bounty/start_closed, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"Aw" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/obj/effect/turf_decal/weather/snow/corner, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"Ax" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Ay" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/mineral/bananium/five, +/obj/item/stack/sheet/mineral/bananium/five, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"AA" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/computer{ + dir = 4 + }, +/obj/machinery/light/warm/directional/west, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"AI" = ( +/obj/structure/fluff/tram_rail/end, +/obj/structure/marker_beacon/yellow{ + pixel_x = 7; + pixel_y = -9 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"AV" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 10 + }, +/obj/structure/closet/syndicate, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/storage/belt/security/webbing, +/obj/item/storage/toolbox/syndicate, +/obj/item/gun/ballistic/automatic/pistol, +/obj/item/ammo_box/magazine/m10mm, +/obj/item/ammo_box/magazine/m10mm, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Ba" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 6 + }, +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/keycard/blue{ + name = "Syndicate Research Directors Room Key" + }, +/obj/item/paperwork/research{ + pixel_x = 7; + pixel_y = 19 + }, +/obj/item/pen/red{ + pixel_x = 5; + pixel_y = 6 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Bl" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/structure/flora/bush/jungle/a/style_2, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"Bo" = ( +/obj/effect/turf_decal/weather/snow/corner, +/obj/effect/decal/cleanable/blood/footprints, +/obj/structure/railing/corner{ + dir = 1 + }, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"Br" = ( +/obj/effect/turf_decal/siding/wideplating/dark/corner{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Bs" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/flora/bush/flowers_yw/style_3, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"Bw" = ( +/obj/machinery/light/warm/directional/south, +/obj/effect/turf_decal/trimline/dark_red/corner{ + dir = 2 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"By" = ( +/obj/item/kirbyplants/organic/plant22, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"BY" = ( +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/footprints, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/warm/directional/south, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Ct" = ( +/obj/item/kirbyplants/organic/plant22, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/dark_red/corner{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"CG" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/hatch{ + name = "Security Post" + }, +/obj/machinery/door/poddoor/shutters/window/indestructible{ + id = "biodomearmor"; + name = "Security Post Lockdown Shutters" + }, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"CK" = ( +/obj/effect/turf_decal/trimline/green/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/trails{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"CS" = ( +/obj/structure/flora/grass/jungle/a/style_3, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"CV" = ( +/obj/structure/hedge, +/obj/structure/railing{ + dir = 5 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"CW" = ( +/obj/effect/turf_decal/trimline/dark_blue/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 2 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wideplating/dark/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Db" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/space_heater, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"Dc" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/structure/dresser, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"Dd" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark/end{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/machinery/chem_dispenser/drinks/beer{ + dir = 4 + }, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"Dg" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"Dl" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"Do" = ( +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/obj/machinery/door/poddoor/shutters/indestructible{ + id = "biosurglockdown"; + name = "Surgery Lockdown Shutters" + }, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"Dr" = ( +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark/corner{ + dir = 8 + }, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/structure/fluff/fake_camera{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 5 + }, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"DI" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 5 + }, +/obj/machinery/computer/scan_consolenew, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"DL" = ( +/obj/structure/dresser, +/obj/machinery/digital_clock/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"DS" = ( +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Eq" = ( +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Es" = ( +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"Ex" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/machinery/light/warm/directional/west, +/obj/machinery/chem_master, +/obj/structure/sign/poster/contraband/communist_state/directional/west, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"EE" = ( +/mob/living/carbon/human/species/monkey/angry, +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"EO" = ( +/obj/machinery/griddle, +/obj/effect/mob_spawn/corpse/human/charredskeleton{ + pixel_x = 0; + pixel_y = 3 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark/end{ + dir = 4 + }, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"EX" = ( +/obj/machinery/door/poddoor/shutters/window/indestructible{ + id = "biodomearmor"; + name = "Security Post Lockdown Shutters" + }, +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/obj/structure/curtain/bounty, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"EY" = ( +/obj/effect/turf_decal/trimline/dark_blue/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/footprints, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wideplating/dark, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Fd" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/trails{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/dark/line, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"Fe" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/dark_red/line, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Fg" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/structure/flora/bush/flowers_pp/style_3, +/obj/structure/flora/rock/pile/jungle, +/obj/structure/fluff/fake_camera{ + dir = 10 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"Fl" = ( +/obj/effect/turf_decal/trimline/green/line, +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/fake_scrubber{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Fn" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/grass/jungle/a/style_random, +/obj/machinery/light/small/dim/directional/south, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"Fp" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/machinery/light/floor, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"FE" = ( +/obj/effect/turf_decal/trimline/dark/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"FH" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/flora/bush/flowers_yw/style_3, +/obj/structure/flora/bush/flowers_br/style_3, +/obj/structure/flora/tree/jungle/small/style_6{ + pixel_x = -33; + pixel_y = -6 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"FL" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/structure/bed, +/obj/item/bedsheet/syndie, +/obj/machinery/light/small/dim/directional/east, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"FP" = ( +/obj/structure/railing/corner/end/flip{ + dir = 8 + }, +/turf/closed/indestructible/syndicate, +/area/ruin/syndibiodome) +"FT" = ( +/obj/structure/flora/grass/jungle/a/style_5, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"FW" = ( +/obj/effect/decal/cleanable/blood/gibs/down, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Ga" = ( +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"Gh" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/free_key/directional/east, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Gm" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Gp" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/gibspawner/generic, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"Gr" = ( +/turf/open/misc/asteroid/snow/icemoon, +/area/template_noop) +"Gx" = ( +/obj/structure/fluff/tram_rail/end{ + dir = 1 + }, +/obj/structure/marker_beacon/yellow{ + pixel_x = 6; + pixel_y = 8 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"Gz" = ( +/obj/machinery/door/airlock/freezer{ + name = "Kitchen" + }, +/obj/machinery/door/poddoor/shutters/window/indestructible/preopen{ + name = "Syndicate Biodome Kitchen Shutters"; + id = "bdomekitch" + }, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"GA" = ( +/obj/structure/fake_stairs/wood/directional/east, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"GD" = ( +/obj/effect/turf_decal/trimline/green/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"GM" = ( +/obj/item/kirbyplants/organic/plant22, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Hi" = ( +/obj/structure/fluff/tram_rail/electric/anchor, +/obj/structure/marker_beacon/burgundy{ + pixel_x = 1; + pixel_y = -3 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"Hp" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/structure/sign/clock/directional/south, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/black, +/area/ruin/syndibiodome) +"Hs" = ( +/obj/structure/flora/bush/flowers_br/style_3, +/obj/structure/flora/bush/flowers_yw/style_3, +/mob/living/carbon/human/species/monkey/angry, +/obj/effect/gibspawner/human/bodypartless, +/obj/effect/mob_spawn/corpse/human/syndicatecommando/lessenedgear, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"Hy" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/food/pizza/donkpocket{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/machinery/door/poddoor/shutters/window/indestructible/preopen{ + name = "Syndicate Biodome Kitchen Shutters"; + id = "bdomekitch" + }, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"HB" = ( +/obj/effect/turf_decal/weather/dirt, +/turf/open/water/jungle, +/area/ruin/syndibiodome) +"Ia" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 9 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Ib" = ( +/obj/machinery/dna_scannernew, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 6 + }, +/obj/effect/mapping_helpers/broken_machine, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Ie" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/black, +/area/ruin/syndibiodome) +"If" = ( +/obj/effect/turf_decal/trimline/green/line{ + dir = 1 + }, +/obj/structure/fluff/fake_scrubber, +/obj/effect/decal/cleanable/glass/plastitanium, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Ii" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/window/indestructible/preopen{ + name = "Syndicate Biodome Kitchen Shutters"; + id = "bdomekitch" + }, +/obj/effect/spawner/random/food_or_drink/salad{ + pixel_x = 0; + pixel_y = 5 + }, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"Ij" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/dark_red/corner{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"IF" = ( +/obj/effect/mob_spawn/corpse/human/syndicatecommando/lessenedgear, +/obj/effect/turf_decal/siding/wideplating/dark/end{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"II" = ( +/obj/effect/turf_decal/weather/snow/corner, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"IR" = ( +/obj/effect/turf_decal/trimline/purple/line{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"IU" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/obj/structure/flora/rock/pile/jungle/style_5, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"Jg" = ( +/obj/effect/turf_decal/weather/snow/corner, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/obj/structure/railing/corner, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"Jk" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/structure/fans/tiny, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/dark/line{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Jm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wideplating/dark/corner, +/obj/effect/turf_decal/siding/wideplating/dark/corner{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Jo" = ( +/obj/structure/chair/office/tactical{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/mob_spawn/corpse/human/syndicatecommando/lessenedgear, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/ruin/syndibiodome) +"Jz" = ( +/obj/effect/turf_decal/trimline/green/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/warm/directional/west, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"JC" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/light/warm/directional/west, +/obj/machinery/door/poddoor/shutters/window/indestructible/preopen{ + name = "Syndicate Biodome Kitchen Shutters"; + id = "bdomekitch" + }, +/obj/effect/spawner/random/food_or_drink/jelly_donuts{ + pixel_x = -4; + pixel_y = 7 + }, +/obj/effect/spawner/random/food_or_drink/jelly_donuts{ + pixel_x = 7; + pixel_y = 2 + }, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"JQ" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/dark_red/line, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"JU" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"JZ" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 8 + }, +/obj/effect/decal/cleanable/glass/plastitanium, +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/green/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Ki" = ( +/obj/machinery/door/airlock/public/glass, +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"Kn" = ( +/obj/effect/decal/cleanable/blood/footprints{ + dir = 2 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Ks" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wideplating/dark/end{ + dir = 4 + }, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"Kz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"KA" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 9 + }, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"KE" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/toy/cards/deck/syndicate{ + pixel_x = 0; + pixel_y = 5 + }, +/obj/machinery/door/poddoor/shutters/window/indestructible/preopen{ + name = "Syndicate Biodome Kitchen Shutters"; + id = "bdomekitch" + }, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"KF" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"KS" = ( +/obj/structure/table/wood, +/obj/item/documents/syndicate{ + pixel_x = 1; + pixel_y = 6 + }, +/obj/machinery/button/door/directional/west{ + name = "Window Shutter Control"; + id = "bsyndidomRD" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"KX" = ( +/obj/structure/chair/office/tactical{ + dir = 4 + }, +/obj/effect/gibspawner/human/bodypartless, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/side{ + dir = 5 + }, +/area/ruin/syndibiodome) +"Lc" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/machinery/pdapainter/research, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/item/toy/figure/dsquad{ + pixel_x = -8; + pixel_y = 8 + }, +/obj/item/toy/figure/syndie{ + pixel_x = 3; + pixel_y = -1 + }, +/obj/item/toy/figure/syndie{ + pixel_x = 5; + pixel_y = 10 + }, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"Le" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/obj/effect/decal/cleanable/glass/plastitanium, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"Lg" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/structure/closet/syndicate, +/obj/item/clothing/mask/gas/syndicate, +/obj/machinery/light/small/dim/directional/west, +/obj/item/polymorph_belt/functioning, +/obj/item/pen/edagger, +/obj/item/clothing/under/costume/schoolgirl/red, +/obj/structure/sign/poster/contraband/communist_state/directional/west, +/turf/open/floor/carpet/green, +/area/ruin/syndibiodome) +"Lm" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 5 + }, +/obj/machinery/computer{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Lv" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/obj/effect/turf_decal/weather/snow/corner, +/obj/machinery/light/warm/dim/directional/north, +/turf/open/floor/stone, +/area/ruin/syndibiodome) +"Ly" = ( +/obj/structure/aquarium/prefilled, +/obj/structure/sign/poster/contraband/blood_geometer/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"LA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/dim/directional/west, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"LB" = ( +/obj/machinery/doppler_array, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"LH" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/obj/structure/flora/rock/pile/jungle/style_random, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"LJ" = ( +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, +/obj/structure/chair/stool/bar/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"LN" = ( +/obj/structure/marker_beacon/burgundy, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"LR" = ( +/obj/effect/turf_decal/trimline/dark_red/warning{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/mob_spawn/corpse/human/skeleton, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"LT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/cup/bucket, +/obj/item/pushbroom, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"LU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"Mb" = ( +/obj/machinery/door/firedoor, +/obj/structure/fans/tiny, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Biodome Entrance" + }, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"Mc" = ( +/obj/structure/hedge, +/obj/structure/railing{ + dir = 5 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 5 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"Ml" = ( +/obj/effect/decal/cleanable/blood/splatter/over_window, +/obj/structure/railing/corner/end{ + dir = 8 + }, +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"Mo" = ( +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 8 + }, +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"Mp" = ( +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 6 + }, +/obj/effect/decal/cleanable/blood/trails{ + dir = 6 + }, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"Mr" = ( +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"Mt" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 5 + }, +/obj/item/folder/syndicate/red{ + pixel_x = 5; + pixel_y = 3 + }, +/obj/machinery/light/warm/directional/east, +/obj/structure/fluff/fake_camera{ + dir = 4 + }, +/obj/item/reagent_containers/cup/tube{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/reagent_containers/cup/tube{ + pixel_x = 0; + pixel_y = 2 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Mu" = ( +/obj/structure/flora/tree/jungle/style_6, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"MB" = ( +/obj/effect/mob_spawn/corpse/human/doctor, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 10 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"MH" = ( +/obj/structure/flora/rock/pile/style_random, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"MK" = ( +/obj/machinery/light/small/dim/directional/south, +/obj/effect/turf_decal/siding/wideplating/dark/end, +/obj/item/toy/plush/nukeplushie, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"MM" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"MO" = ( +/obj/effect/decal/cleanable/glass/plastitanium, +/turf/open/misc/dirt/station, +/area/ruin/syndibiodome) +"MP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/dim/directional/north, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"MR" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/dark_red/line, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"MU" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/mob/living/carbon/human/species/monkey/angry, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/dark/line, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"MX" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 10 + }, +/obj/machinery/computer/scan_consolenew{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Nj" = ( +/obj/structure/flora/bush/fullgrass/style_random, +/obj/structure/flora/bush/grassy/style_random, +/obj/structure/flora/grass/jungle/b/style_random, +/obj/structure/flora/bush/lavendergrass/style_random, +/obj/structure/flora/bush/leafy, +/obj/structure/flora/bush/flowers_br/style_random, +/obj/structure/marker_beacon/lime, +/obj/structure/window/reinforced/survival_pod/spawner/directional/west, +/obj/structure/window/reinforced/survival_pod/spawner/directional/south, +/obj/structure/window/reinforced/survival_pod/spawner/directional/north, +/obj/structure/window/reinforced/survival_pod/spawner/directional/east, +/obj/structure/flora/bush/large{ + pixel_y = -4 + }, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndibiodome) +"Nl" = ( +/obj/machinery/light/warm/dim/directional/west, +/turf/open/misc/asteroid/snow/icemoon, +/area/ruin/syndibiodome) +"No" = ( +/obj/structure/table/reinforced, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/glass/reinforced, +/area/ruin/syndibiodome) +"Ns" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"Nt" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 9 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"NB" = ( +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"NE" = ( +/obj/machinery/light/warm/directional/east, +/obj/machinery/vending/dinnerware, +/obj/effect/turf_decal/siding/thinplating_new/dark/end{ + dir = 1 + }, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"NH" = ( +/obj/structure/flora/bush/flowers_pp/style_3, +/obj/structure/flora/bush/flowers_yw, +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/mob/living/basic/gorilla/genetics, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"NN" = ( +/obj/structure/flora/grass/jungle/b/style_2, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"NP" = ( +/obj/effect/turf_decal/trimline/dark_red/line, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Oi" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 6 + }, +/obj/effect/gibspawner/generic, +/obj/machinery/digital_clock/directional/east, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Ol" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/neutral/line, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Os" = ( +/obj/structure/bodycontainer/morgue/beeper_off{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/tram/filled, +/turf/open/floor/pod/dark, +/area/ruin/syndibiodome) +"Oy" = ( +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/obj/machinery/door/poddoor/shutters/indestructible{ + name = "Cytology Shutters" + }, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"OD" = ( +/mob/living/carbon/human/species/monkey/angry, +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"OH" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 8 + }, +/obj/machinery/door/airlock/external/ruin, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"OI" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 9 + }, +/obj/effect/spawner/random/vending/snackvend, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"OK" = ( +/obj/machinery/light/small/dim/directional/south, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"OL" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 9 + }, +/obj/structure/closet/syndicate, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/warm/directional/east, +/obj/item/storage/belt/security/webbing, +/obj/item/gun/ballistic/automatic/pistol/contraband, +/obj/item/ammo_box/magazine/m10mm, +/obj/item/ammo_box/magazine/m10mm, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"OM" = ( +/obj/effect/turf_decal/trimline/dark_blue/line{ + dir = 9 + }, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wideplating/dark/corner, +/obj/structure/sign/poster/contraband/free_drone/directional/west, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"ON" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/dim/directional/south, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"OO" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/effect/mob_spawn/corpse/human/syndicatecommando/lessenedgear, +/obj/machinery/light/small/dim/directional/south, +/obj/effect/turf_decal/trimline/dark/line, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"OR" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/structure/closet, +/obj/item/clothing/under/syndicate/bloodred/sleepytime, +/obj/item/pillow, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"Pq" = ( +/obj/machinery/door/poddoor/shutters{ + name = "Biodome Transport Shutters" + }, +/obj/machinery/door/firedoor, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"Pw" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/surgery_tray/full, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 5 + }, +/obj/item/clothing/mask/surgical{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/item/clothing/gloves/latex{ + pixel_x = 5; + pixel_y = 7 + }, +/obj/item/mmi/syndie{ + pixel_x = 7; + pixel_y = 6 + }, +/obj/item/clothing/gloves/latex/coroner{ + pixel_x = 0; + pixel_y = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"PB" = ( +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"PC" = ( +/obj/structure/hedge, +/obj/structure/railing{ + dir = 10 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/machinery/light/warm/directional/east, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"PM" = ( +/obj/structure/flora/grass/jungle/a/style_2, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"PY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/dark_red/line{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Qc" = ( +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/obj/machinery/door/poddoor/shutters/window/indestructible{ + id = "biodomearmor"; + name = "Security Post Lockdown Shutters" + }, +/obj/structure/curtain/bounty/start_closed, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"Qn" = ( +/obj/effect/turf_decal/trimline/dark_blue/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Qs" = ( +/obj/machinery/door/airlock/hatch{ + name = "Surgical Observation Room #1" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"QC" = ( +/obj/effect/turf_decal/trimline/dark/corner{ + dir = 2 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"QE" = ( +/obj/effect/turf_decal/trimline/purple/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"QG" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"QM" = ( +/obj/structure/tank_dispenser/oxygen, +/obj/machinery/light/small/dim/directional/north, +/obj/effect/turf_decal/siding/wideplating/dark/end{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"QS" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 5 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Ra" = ( +/obj/structure/table/optable, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/machinery/light/warm/directional/north, +/obj/item/bodypart/head/monkey, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Ro" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/toolcloset, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"Rv" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Biodome Entrance" + }, +/obj/machinery/door/firedoor, +/obj/structure/fans/tiny, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"RG" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/structure/flora/bush/flowers_yw/style_3, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"RH" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 10 + }, +/obj/item/bodypart/leg/left/monkey, +/obj/item/bodypart/leg/right/monkey, +/obj/item/scalpel/advanced, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"RK" = ( +/mob/living/carbon/human/species/monkey/angry, +/obj/structure/chair/office/tactical{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/side{ + dir = 6 + }, +/area/ruin/syndibiodome) +"RL" = ( +/obj/structure/lattice/catwalk, +/obj/structure/marker_beacon/burgundy{ + pixel_x = 1; + pixel_y = 6 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"RX" = ( +/obj/effect/turf_decal/siding/wideplating/dark, +/mob/living/basic/gorilla/genetics, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Se" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/structure/flora/bush/flowers_pp/style_3, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"Sr" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Ss" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/machinery/light/warm/directional/west, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"St" = ( +/obj/structure/fans/tiny, +/obj/structure/door_assembly/door_assembly_grunge, +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Sv" = ( +/obj/effect/spawner/random/trash, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"SA" = ( +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"SE" = ( +/obj/machinery/oven/range, +/obj/effect/turf_decal/siding/thinplating_new/dark/end{ + dir = 8 + }, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"SH" = ( +/obj/effect/turf_decal/siding/wideplating/dark/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/vending/colavend, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"SJ" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 4 + }, +/obj/machinery/door/airlock/hatch{ + name = "Genetic Testing" + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"SK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/dim/directional/north, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"SM" = ( +/obj/effect/turf_decal/trimline/green/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"SO" = ( +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 5 + }, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wideplating/dark/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/trails{ + dir = 5 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"SS" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/structure/flora/bush/flowers_br/style_3, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"ST" = ( +/obj/structure/flora/grass/jungle/a/style_random, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"SY" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Tc" = ( +/obj/structure/hedge, +/obj/structure/railing{ + dir = 6 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 6 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"Te" = ( +/obj/structure/fans/tiny, +/obj/machinery/door/puzzle/keycard/blue_required{ + name = "Syndicate Research Director's Office" + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Tf" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/fluff/fake_scrubber{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/trails{ + dir = 6 + }, +/obj/effect/decal/cleanable/glass/plastitanium, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/ruin/syndibiodome) +"Tu" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 6 + }, +/obj/item/folder/syndicate{ + pixel_x = -2; + pixel_y = 5 + }, +/obj/item/food/grown/banana/bunch{ + pixel_x = 7; + pixel_y = 5 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Tw" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Tx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"Ty" = ( +/obj/effect/turf_decal/trimline/dark/line{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/effect/decal/cleanable/blood/trails{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/gibs/core, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"TC" = ( +/obj/effect/turf_decal/trimline/green/line, +/obj/effect/decal/cleanable/blood/gibs/down, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"TF" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/item/food/meat/rawcutlet/bear, +/obj/item/food/meat/rawcutlet/bear, +/obj/item/food/meat/rawbacon, +/obj/item/food/meat/rawbacon, +/obj/item/food/meat/rawbacon, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"TJ" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/mineral/uranium/five, +/obj/item/stack/sheet/mineral/uranium/five, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"TL" = ( +/obj/structure/chair/office/tactical, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"TM" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/comfy/black{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"TQ" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 5 + }, +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"Uc" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/structure/fluff/fake_vent, +/obj/effect/gibspawner/generic, +/turf/open/floor/carpet/green, +/area/ruin/syndibiodome) +"Ug" = ( +/obj/structure/flora/bush/flowers_pp/style_3, +/obj/machinery/light/floor, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"Uh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/gibspawner/human/bodypartless, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"Ui" = ( +/obj/structure/rack, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 9 + }, +/obj/item/pickaxe/drill, +/obj/item/pickaxe/drill{ + pixel_x = 0; + pixel_y = 8 + }, +/obj/item/pickaxe/drill{ + pixel_x = 1; + pixel_y = -6 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Ut" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"Uu" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"Ux" = ( +/mob/living/basic/gorilla/genetics, +/obj/effect/gibspawner/human/bodypartless, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Uz" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/structure/desk_bell{ + pixel_x = 15; + pixel_y = 7 + }, +/obj/machinery/door/poddoor/shutters/window/indestructible/preopen{ + name = "Syndicate Biodome Kitchen Shutters"; + id = "bdomekitch" + }, +/obj/effect/spawner/random/food_or_drink/soup{ + pixel_x = 0; + pixel_y = 4 + }, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"UF" = ( +/obj/structure/chair/office/tactical{ + dir = 8 + }, +/obj/effect/mob_spawn/corpse/human/syndicatecommando/lessenedgear, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"UG" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"UI" = ( +/obj/item/flashlight/lantern/on, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"UK" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/computer_disk{ + pixel_x = -5; + pixel_y = 8 + }, +/obj/item/computer_disk{ + pixel_x = 4; + pixel_y = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/button/door/directional/east{ + name = "Surgery Lockdown"; + id = "biosurglockdown" + }, +/obj/item/assembly/shock_kit{ + pixel_x = -2; + pixel_y = 2 + }, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"UL" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/structure/flora/bush/flowers_pp/style_3, +/obj/effect/decal/cleanable/blood/trails{ + dir = 8 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"UN" = ( +/obj/structure/fluff/tram_rail/electric/anchor{ + dir = 1 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"UW" = ( +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, +/obj/structure/closet/crate/bin{ + pixel_x = 0; + pixel_y = 6 + }, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"Va" = ( +/obj/machinery/door/airlock/hatch{ + name = "Surgical Observation Room #2" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"Vj" = ( +/obj/structure/closet/secure_closet/cytology, +/obj/item/storage/box/swab, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"Vt" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/chair/stool/bar/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"Vv" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Vw" = ( +/obj/effect/decal/cleanable/blood/gibs/down, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"VG" = ( +/obj/machinery/light/warm/directional/east, +/turf/open/misc/asteroid/snow/icemoon, +/area/ruin/syndibiodome) +"VJ" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 9 + }, +/obj/effect/decal/cleanable/blood/trails{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating/dark/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating/dark/corner{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"VK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/red/directional/north, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"VN" = ( +/obj/effect/turf_decal/trimline/green/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"VT" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen, +/obj/effect/decal/cleanable/blood/trails{ + dir = 8 + }, +/obj/structure/fans/tiny, +/turf/open/misc/dirt/station, +/area/ruin/syndibiodome) +"Wq" = ( +/obj/structure/flora/tree/pine/style_random{ + pixel_x = -15; + pixel_y = -12 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"Wz" = ( +/obj/structure/fluff/tram_rail/electric/anchor, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"WB" = ( +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"WC" = ( +/obj/machinery/door/poddoor/shutters{ + name = "Lockdown Shutters" + }, +/obj/machinery/door/firedoor, +/obj/structure/fans/tiny, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/dark/line{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"WH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"WJ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/glass/reinforced, +/area/ruin/syndibiodome) +"WR" = ( +/obj/effect/turf_decal/trimline/purple/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Xa" = ( +/obj/effect/decal/cleanable/blood/footprints, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"Xt" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/machinery/light/small/dim/directional/west, +/turf/open/water/jungle, +/area/ruin/syndibiodome) +"XC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"XE" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 4 + }, +/mob/living/basic/gorilla/genetics, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"XG" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/bush/flowers_pp/style_2, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"XM" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/structure/showcase/machinery/tv/broken, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/black, +/area/ruin/syndibiodome) +"Ya" = ( +/obj/effect/turf_decal/trimline/neutral/corner, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/structure/fluff/fake_vent, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Yd" = ( +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"Ye" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/purple/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"Yh" = ( +/obj/structure/chair/stool/bar/directional/north, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"Yi" = ( +/obj/structure/flora/grass/jungle/a/style_5, +/obj/machinery/light/floor, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"Yj" = ( +/obj/structure/railing/corner/end/flip{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"Yz" = ( +/obj/structure/flora/bush/flowers_pp/style_3, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"YD" = ( +/obj/structure/flora/bush/flowers_yw/style_3, +/obj/structure/flora/bush/jungle/c/style_2{ + pixel_x = -11; + pixel_y = -6 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"YG" = ( +/obj/structure/rack, +/obj/item/clothing/mask/gas/syndicate{ + pixel_x = 0; + pixel_y = -2 + }, +/obj/item/clothing/mask/gas/syndicate{ + pixel_x = 11; + pixel_y = 5 + }, +/obj/item/clothing/mask/gas/syndicate{ + pixel_x = -6; + pixel_y = 5 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 10 + }, +/obj/item/clothing/suit/hooded/explorer/syndicate{ + pixel_x = 0; + pixel_y = -3 + }, +/obj/item/clothing/suit/hooded/explorer/syndicate{ + pixel_x = 7; + pixel_y = -5 + }, +/obj/item/clothing/suit/hooded/explorer/syndicate{ + pixel_x = -8; + pixel_y = -4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"YI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"YN" = ( +/obj/structure/railing/corner/end{ + dir = 4 + }, +/turf/closed/indestructible/syndicate, +/area/ruin/syndibiodome) +"YS" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"YV" = ( +/obj/effect/turf_decal/trimline/dark/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"YZ" = ( +/obj/effect/turf_decal/siding/wideplating/dark, +/mob/living/basic/gorilla/genetics, +/obj/structure/fluff/fake_vent, +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/gibspawner/human/bodypartless, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Zd" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/rock/pile/jungle/style_3, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"Ze" = ( +/obj/machinery/door/airlock/hatch{ + name = "Observation Room" + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Zf" = ( +/obj/structure/flora/bush/flowers_yw/style_3, +/obj/structure/flora/bush/flowers_pp/style_random, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"Zp" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"ZD" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"ZM" = ( +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"ZR" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 6 + }, +/obj/structure/railing{ + dir = 6 + }, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"ZT" = ( +/obj/machinery/light/warm/directional/south, +/obj/effect/turf_decal/trimline/purple/line{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"ZW" = ( +/obj/structure/curtain/bounty, +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/turf/open/floor/plating, +/area/ruin/syndibiodome) + +(1,1,1) = {" +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +ys +ys +KA +Ns +Ns +JU +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(2,1,1) = {" +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +ys +ys +ys +zM +zT +zM +ys +tL +JU +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(3,1,1) = {" +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +ys +ys +ys +zM +zM +IF +zM +zM +LN +tL +UG +UG +JU +ys +mZ +mZ +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(4,1,1) = {" +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +ys +ys +ck +ys +ys +zM +QM +VJ +MK +zM +ys +ys +ys +ck +zD +ys +ys +ys +ck +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(5,1,1) = {" +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +ys +ys +ys +ys +ys +zM +zM +zM +OH +zM +zM +zM +ys +ys +LN +tL +JU +ys +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(6,1,1) = {" +mZ +mZ +mZ +mZ +mZ +mZ +ys +ys +ys +ys +zM +zM +zM +zM +Tc +bb +ui +oq +Mc +zM +zM +mK +ys +ys +tL +Ns +Ns +JU +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(7,1,1) = {" +mZ +mZ +mZ +mZ +mZ +mZ +ys +ck +ys +ys +zM +Ut +vx +xi +kw +wL +xi +xH +ZD +oq +zM +zM +ys +ys +ys +ys +ck +tL +JU +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(8,1,1) = {" +mZ +mZ +mZ +mZ +mZ +ys +ys +ys +Hi +zM +zM +mW +zM +Sr +zM +Ui +zl +YG +qN +Ux +Bw +zM +zM +zM +zM +qN +ys +LN +Aw +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(9,1,1) = {" +mZ +mZ +mZ +mZ +ys +ys +jS +ys +ys +zM +Ut +Ut +zM +Sr +zM +zM +zM +zM +qN +Gm +NP +OI +zM +AA +ab +zM +qN +ys +Aw +ys +LN +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(10,1,1) = {" +mZ +mZ +mZ +ys +Wz +RL +pg +pg +zM +zM +Ut +zM +zM +Ab +zM +Lm +kX +zM +qN +WH +JQ +vN +pj +UF +fT +Ly +Qc +ys +Aw +ys +ys +cO +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(11,1,1) = {" +mZ +mZ +mZ +ys +ys +bJ +zd +ys +zM +Db +Ut +zM +kK +MB +oQ +Jo +eK +bC +Tw +EE +oj +MR +CG +hZ +hm +LB +Qc +ys +tL +JU +ys +ys +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(12,1,1) = {" +mZ +mZ +mZ +Wz +ha +pg +pg +pg +zM +ic +Ut +zM +rK +YZ +yH +Tf +ba +Qs +ZM +WH +Fe +Ct +EX +YS +qB +fc +Qc +ys +ys +tL +UG +JU +LN +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(13,1,1) = {" +mZ +mZ +mZ +ys +ys +Gx +uD +ys +zM +wY +Ut +zM +cB +ja +oQ +KX +RK +ZW +sD +Vw +jR +qx +zM +yi +LR +UK +zM +ys +cO +ys +ys +Aw +ys +ys +cO +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(14,1,1) = {" +mZ +mZ +mZ +ys +Wz +RL +pg +pg +zM +zM +mW +zM +zM +Os +zM +xf +oH +zM +qN +Tx +vO +qN +zM +OL +AV +zM +zM +ys +ys +LN +ys +Aw +ys +ys +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(15,1,1) = {" +mZ +mZ +mZ +ys +ys +ys +AI +ys +ys +zM +Ut +Ut +zM +zM +zM +zM +zM +zM +GM +Ax +Ij +ue +zM +zM +zM +zM +zM +zM +ys +ys +ys +tL +Ns +Ns +JU +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(16,1,1) = {" +mZ +mZ +mZ +mZ +ys +ys +ys +ck +Hi +zM +zM +Ut +LA +Ro +zM +qN +qU +Ss +YI +XC +Zp +rs +eO +PY +qh +tk +xq +zM +zM +ys +ys +ys +ys +ys +tL +JU +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(17,1,1) = {" +mZ +mZ +mZ +mZ +mZ +ck +ys +ys +ys +ys +zM +zM +Ut +Ut +Ut +vx +je +kt +XC +Sr +tK +iV +VN +my +Sr +kw +FW +Sr +zM +zM +ys +cO +ys +LN +ys +Aw +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +"} +(18,1,1) = {" +mZ +mZ +mZ +mZ +mZ +ys +ys +zM +zM +zM +zM +zM +zM +zM +zM +YN +rQ +XC +nn +WB +qN +VT +Pq +qN +WB +ip +Sr +Sr +ux +zM +ys +ys +ys +ys +cO +Aw +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +"} +(19,1,1) = {" +mZ +mZ +mZ +mZ +ys +ys +zM +zM +Dd +Ex +kb +zM +km +SH +zM +wf +XC +nn +Ga +WB +hK +UL +bv +Fg +WB +WB +ip +Sr +vg +zM +ys +VG +ys +ys +ys +Aw +ys +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +"} +(20,1,1) = {" +mZ +mZ +mZ +ys +ys +zM +zM +xP +dl +cJ +tx +JC +lH +hQ +WB +FE +zF +Ml +WB +SS +jp +Hs +Yz +Yz +Bl +WB +WB +my +QS +zM +zM +zM +zM +ys +ys +Dg +Ns +uG +ys +ys +mZ +mZ +mZ +mZ +mZ +"} +(21,1,1) = {" +mZ +mZ +ys +ys +ys +lm +SE +Yd +No +No +yy +Uz +Yh +MU +iZ +ah +hS +qN +RG +MH +FT +hf +Yi +eH +Zf +di +qN +us +Sr +iH +qN +vl +zM +zM +eM +up +ys +TQ +uG +ys +mZ +mZ +mZ +mZ +mZ +"} +(22,1,1) = {" +mZ +mZ +ys +ys +ck +lm +nO +SA +WJ +wd +Mp +Hy +Vt +OO +WB +Ty +vc +Mb +iX +PB +NN +Mu +NH +xd +zc +yN +WB +xn +jA +QC +WC +zG +qy +cI +Bo +wQ +zy +UI +II +Xa +ys +mZ +mZ +mZ +mZ +"} +(23,1,1) = {" +mZ +mZ +ys +ys +ys +lm +EO +sJ +No +No +iG +KE +Vt +Fd +Ki +kA +vc +qN +oK +PB +Ug +xr +bw +HB +yd +XG +Le +If +cm +ts +qN +xL +BY +zM +Lv +ys +Wq +ys +zD +ys +mZ +mZ +mZ +mZ +mZ +"} +(24,1,1) = {" +mZ +mZ +mZ +ys +ys +zM +zM +Dr +Mo +gH +td +Ii +LJ +el +WB +YV +TC +Rv +Bs +Yz +ST +nP +nx +gt +PM +yN +MO +SM +Sr +gf +Jk +bG +fp +fU +bR +ys +ys +ys +Jg +ys +mZ +mZ +mZ +mZ +mZ +"} +(25,1,1) = {" +mZ +mZ +mZ +mZ +ys +ys +zM +zM +NE +TF +iS +Gz +rX +bz +qN +PC +Fl +qN +IU +vu +iq +YD +Fp +xz +vu +cN +qN +us +Vv +iH +qN +cu +zM +zM +vZ +JU +ys +KA +ZR +ys +mZ +mZ +mZ +mZ +mZ +"} +(26,1,1) = {" +mZ +mZ +mZ +mZ +ys +ys +zM +zM +zM +zM +zM +zM +qN +vx +qN +FP +hj +Yj +WB +LH +hr +CS +eL +qV +cN +WB +WB +GD +ux +zM +zM +zM +zM +ys +ys +vZ +Dl +ZR +ys +ys +mZ +mZ +mZ +mZ +mZ +"} +(27,1,1) = {" +mZ +mZ +mZ +mZ +ys +ck +zM +zM +mW +Ut +ir +Ut +Ut +Ut +vx +kw +Eq +CV +Yj +WB +yj +fO +sj +dk +WB +WB +wf +xi +vg +zM +ys +Nl +ys +ys +ys +ys +zD +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +"} +(28,1,1) = {" +mZ +mZ +mZ +ys +ys +ys +zM +MP +Ut +zM +zM +Ut +zM +zM +qN +QG +Sr +Eq +CV +WB +qN +ox +gu +qN +WB +wf +kO +Sr +QS +zM +xN +ys +ys +ys +ys +ys +tL +JU +ys +mZ +mZ +mZ +mZ +mZ +mZ +"} +(29,1,1) = {" +mZ +mZ +ys +ys +ys +ys +zM +qa +Ut +zM +zM +dS +zM +pA +qN +VK +Sr +LT +mF +hj +pN +JZ +nk +Jz +CK +uL +xi +jd +zM +zM +ys +ys +ck +ys +ys +ys +ys +xx +ys +mZ +mZ +mZ +mZ +mZ +mZ +"} +(30,1,1) = {" +mZ +ys +ys +ys +ys +zM +zM +Sv +Ut +zM +wx +RH +Do +UF +kd +WH +xi +Sr +Gh +xh +zI +qi +dJ +al +hR +QE +WR +zM +zM +ys +ys +ys +ys +ys +ys +ck +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(31,1,1) = {" +mZ +Gr +ck +ys +zM +zM +rZ +Ut +Ut +zM +Ra +RX +Do +sN +Va +bK +XC +By +zM +zM +Oy +Oy +zM +ag +vF +hU +zM +zM +zM +zM +ys +jS +ys +ys +ys +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(32,1,1) = {" +mZ +mZ +ys +zM +zM +zM +zM +zM +Ut +zM +Pw +Oi +Do +Uu +kd +gv +Vv +zM +zM +zM +uE +oV +zM +zM +Ze +zM +zM +Xt +Se +zM +pg +pg +RL +UN +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(33,1,1) = {" +mZ +ys +ys +zM +Lg +xZ +yt +zM +ON +zM +zM +zM +zM +qN +qN +kq +Vv +zM +ym +zM +aC +ws +Oy +kH +vK +hA +WB +yU +Zd +zM +ys +zd +bJ +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(34,1,1) = {" +mZ +ys +zM +zM +Uc +qp +sR +zM +Ut +Ut +LA +mW +Ut +vx +Nt +uW +Vv +qN +Ks +zM +tb +sM +Oy +hF +cx +kQ +WB +FH +Fn +zM +pg +pg +pg +ha +xN +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(35,1,1) = {" +mZ +ys +bB +KS +he +OK +zM +zM +zM +zM +zM +zM +zM +qN +pY +XC +XC +qN +Ut +zM +Vj +Uh +Oy +Tu +XE +Mt +WB +iX +OD +zM +ys +uD +fI +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(36,1,1) = {" +mZ +ys +bB +la +TM +Es +Te +Vv +OM +yL +CW +oG +Qn +uq +Vv +Kn +Vv +qN +Ut +qN +qN +zP +qN +qN +SJ +qN +zM +kz +zM +zM +pg +pg +RL +UN +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(37,1,1) = {" +mZ +ys +bB +DL +jT +Lc +zM +uH +EY +WJ +Ya +vw +vw +iI +Vv +Vv +Vv +qN +SK +KF +IR +kJ +wT +kJ +uS +gB +pE +cb +zM +ys +ys +AI +ys +ys +ys +ck +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(38,1,1) = {" +mZ +ys +zM +zM +zM +zM +zM +zM +zu +WJ +NB +zM +zM +zM +zM +Vv +zM +zM +LU +qN +lg +vP +wR +vJ +Ye +ZT +zM +zM +zM +xN +ys +ys +ys +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(39,1,1) = {" +mZ +ys +ys +Av +ze +hM +OR +zM +mV +WJ +Ol +zM +ek +Dc +zM +zM +zM +Mr +Ut +qN +Ia +vs +of +xj +TL +MX +zM +zM +ys +ys +ys +ys +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(40,1,1) = {" +mZ +ys +ys +Av +FL +Gp +jv +St +qz +WJ +DS +mA +MM +bu +zM +Kz +gX +Ut +Ut +zM +lx +qC +SY +xk +Jm +Ib +zM +ys +ys +ys +ys +ys +ck +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(41,1,1) = {" +mZ +Gr +ck +zM +zM +zM +tq +zM +SO +xB +vA +zM +oA +fV +zM +Db +io +Ut +cE +zM +DI +Br +nH +oc +cG +zM +zM +ys +ck +ys +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(42,1,1) = {" +mZ +mZ +ys +ys +ys +zM +zM +zM +zM +Nj +GA +zM +UW +zM +zM +qa +TJ +Ay +zM +zM +zM +wi +aa +Ba +zM +zM +ys +ys +ys +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(43,1,1) = {" +mZ +mZ +mZ +ys +ys +ys +zM +zM +jV +Ie +lh +zM +zM +zM +zM +zM +zM +zM +zM +ys +jQ +zM +zM +zM +zM +ys +ys +ys +ys +ck +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(44,1,1) = {" +mZ +mZ +mZ +mZ +ys +ck +ys +zM +XM +me +Hp +zM +zM +ys +ys +ys +ys +ys +ys +ck +ys +ys +ys +ys +ck +ys +mZ +mZ +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(45,1,1) = {" +mZ +mZ +mZ +mZ +mZ +ys +ys +zM +si +si +si +zM +ys +mZ +mZ +ys +ys +ys +mZ +ys +mZ +mZ +mZ +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} diff --git a/code/datums/ruins/icemoon.dm b/code/datums/ruins/icemoon.dm index 1209c7cba0b..559907980e2 100644 --- a/code/datums/ruins/icemoon.dm +++ b/code/datums/ruins/icemoon.dm @@ -166,6 +166,12 @@ description = "This is where all of your paychecks went. Signed, the management." suffix = "icemoon_underground_mailroom.dmm" +/datum/map_template/ruin/icemoon/underground/biodome + name = "Ice-Ruin Syndicate Bio-Dome" + id = "biodome" + description = "Unchecked experimention gone awry." + suffix = "icemoon_underground_syndidome.dmm" + /datum/map_template/ruin/icemoon/underground/frozen_comms name = "Ice-Ruin Frozen Communicatons Outpost" id = "frozen_comms" diff --git a/code/game/area/areas/ruins/icemoon.dm b/code/game/area/areas/ruins/icemoon.dm index fa87fa832a1..69d1e5abf4d 100644 --- a/code/game/area/areas/ruins/icemoon.dm +++ b/code/game/area/areas/ruins/icemoon.dm @@ -54,6 +54,16 @@ /area/ruin/pizzeria/kitchen name = "\improper Moffuchi's Kitchen" + +/area/ruin/syndibiodome + name = "\improper Syndicate Biodome" + sound_environment = SOUND_AREA_SMALL_ENCLOSED + ambience_index = AMBIENCE_DANGER + area_flags = NOTELEPORT + mood_bonus = -10 + mood_message = "What the fuck." + + /area/ruin/planetengi name = "\improper Engineering Outpost" diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index d98c510d1af..e27e88db3f4 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -887,6 +887,32 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/window/reinforced/tinted/frosted/spaw rad_insulation = RAD_EXTREME_INSULATION glass_material_datum = /datum/material/alloy/plastitaniumglass +/obj/structure/window/reinforced/plasma/plastitanium/indestructible + name = "plastitanium window" + desc = "A durable looking window made of an alloy of of plasma and titanium." + icon = 'icons/obj/smooth_structures/plastitanium_window.dmi' + icon_state = "plastitanium_window-0" + base_icon_state = "plastitanium_window" + max_integrity = 1200 + wtype = "shuttle" + fulltile = TRUE + flags_1 = PREVENT_CLICK_UNDER_1 + obj_flags = CAN_BE_HIT + heat_resistance = 1600 + armor_type = /datum/armor/plasma_plastitanium + smoothing_flags = SMOOTH_BITMASK + smoothing_groups = SMOOTH_GROUP_SHUTTLE_PARTS + SMOOTH_GROUP_WINDOW_FULLTILE_PLASTITANIUM + canSmoothWith = SMOOTH_GROUP_WINDOW_FULLTILE_PLASTITANIUM + explosion_block = 3 + damage_deflection = 21 //The same as reinforced plasma windows.3 + glass_type = /obj/item/stack/sheet/plastitaniumglass + glass_amount = 2 + rad_insulation = RAD_EXTREME_INSULATION + glass_material_datum = /datum/material/alloy/plastitaniumglass + name = "hardened shuttle window" + flags_1 = PREVENT_CLICK_UNDER_1 + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + /datum/armor/plasma_plastitanium melee = 95 bomb = 50 diff --git a/code/game/turfs/closed/indestructible.dm b/code/game/turfs/closed/indestructible.dm index d3621345fad..693661ca872 100644 --- a/code/game/turfs/closed/indestructible.dm +++ b/code/game/turfs/closed/indestructible.dm @@ -142,6 +142,12 @@ NOVA EDIT REMOVAL END */ smoothing_groups = SMOOTH_GROUP_WALLS + SMOOTH_GROUP_CLOSED_TURFS + SMOOTH_GROUP_SYNDICATE_WALLS canSmoothWith = SMOOTH_GROUP_SHUTTLE_PARTS + SMOOTH_GROUP_AIRLOCK + SMOOTH_GROUP_PLASTITANIUM_WALLS + SMOOTH_GROUP_SYNDICATE_WALLS +/turf/closed/indestructible/syndicate/nodiagonal + icon = 'icons/turf/walls/plastitanium_wall.dmi' + icon_state = "map-shuttle_nd" + base_icon_state = "plastitanium_wall" + smoothing_flags = SMOOTH_BITMASK + /turf/closed/indestructible/riveted/uranium icon = 'icons/turf/walls/uranium_wall.dmi' icon_state = "uranium_wall-0" From 87d7347e5634c1a75156bcb9be8ed4273682652b Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 20:00:57 +0000 Subject: [PATCH 069/103] Automatic changelog for PR #87226 [ci skip] --- html/changelogs/AutoChangeLog-pr-87226.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87226.yml diff --git a/html/changelogs/AutoChangeLog-pr-87226.yml b/html/changelogs/AutoChangeLog-pr-87226.yml new file mode 100644 index 00000000000..683f94d690b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87226.yml @@ -0,0 +1,5 @@ +author: "larentoun" +delete-after: True +changes: + - spellcheck: "Correct message is shown when YOU get devoured by an alien" + - spellcheck: "Fixed a few typos on some simple attack verbs being continuous" \ No newline at end of file From 1896cc1826f21c7fac4e6fd5b7e30b7a605e6009 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 20:01:37 +0000 Subject: [PATCH 070/103] Automatic changelog for PR #86957 [ci skip] --- html/changelogs/AutoChangeLog-pr-86957.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-86957.yml diff --git a/html/changelogs/AutoChangeLog-pr-86957.yml b/html/changelogs/AutoChangeLog-pr-86957.yml new file mode 100644 index 00000000000..ff9344ab87c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-86957.yml @@ -0,0 +1,4 @@ +author: "GremlinSeeker" +delete-after: True +changes: + - map: "New Icebox Ruin \"Syndicate Biodome\" added." \ No newline at end of file From 3fb7b3543f8ebf3a28ccee0c35d44a72d55edd3c Mon Sep 17 00:00:00 2001 From: Emmett Gaines Date: Tue, 15 Oct 2024 16:02:34 -0400 Subject: [PATCH 071/103] Adds a warning and single retry to byond membership lookup (#86765) ## About The Pull Request A few people are having issues getting byond membership features disabled even though they're a byond member. This is *likely* due to byond server troubles, and according to lummox the lookup proc should return null when a connection issue happens. So I've put some handling in there for that case as well as a single retry. :cl: fix: Byond membership lookup should now warn you when it fails due to a connection failure. /:cl: # Conflicts: # code/modules/client/preferences.dm --- code/modules/client/preferences.dm | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 2e2afe94d0b..011034fd39e 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -109,10 +109,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) load_path(parent.ckey) if(load_and_save && !fexists(path)) try_savefile_type_migration() - unlock_content = !!parent.IsByondMember() - donator_status = !!GLOB.donator_list[parent.ckey] //NOVA EDIT ADD - DONATOR CHECK - if(unlock_content || donator_status) //NOVA EDIT CHANGE - ADD DONATOR CHECK - max_save_slots = 50 //NOVA EDIT - ORIGINAL 8 + + refresh_membership() else CRASH("attempted to create a preferences datum without a client or mock!") load_savefile() @@ -633,3 +631,24 @@ GLOBAL_LIST_EMPTY(preferences_datums) default_randomization[preference_key] = RANDOM_ENABLED return default_randomization + +/datum/preferences/proc/refresh_membership() + var/byond_member = parent.IsByondMember() + if(isnull(byond_member)) // Connection failure, retry once + byond_member = parent.IsByondMember() + var/static/admins_warned = FALSE + if(!admins_warned) + admins_warned = TRUE + message_admins("BYOND membership lookup had a connection failure for a user. This is most likely an issue on the BYOND side but if this consistently happens you should bother your server operator to look into it.") + if(isnull(byond_member)) // Retrying didn't work, warn the user + log_game("BYOND membership lookup for [parent.ckey] failed due to a connection error.") + else + log_game("BYOND membership lookup for [parent.ckey] failed due to a connection error but succeeded after retry.") + + if(isnull(byond_member)) + to_chat(parent, span_warning("There's been a connection failure while trying to check the status of your BYOND membership. Reconnecting may fix the issue, or BYOND could be experiencing downtime.")) + + unlock_content = !!byond_member + donator_status = !!GLOB.donator_list[parent.ckey] // NOVA EDIT ADDITION - DONATOR CHECK + if(unlock_content || donator_status) // NOVA EDIT CHANGE - ORIGINAL: if(unlock_content) + max_save_slots = 50 //NOVA EDIT - ORIGINAL: max_save_slots = 8 From cf388a11987086e4ba2d033ab453b26b076ede24 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 20:05:33 +0000 Subject: [PATCH 072/103] Automatic changelog for PR #86765 [ci skip] --- html/changelogs/AutoChangeLog-pr-86765.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-86765.yml diff --git a/html/changelogs/AutoChangeLog-pr-86765.yml b/html/changelogs/AutoChangeLog-pr-86765.yml new file mode 100644 index 00000000000..226ba9eeaaf --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-86765.yml @@ -0,0 +1,4 @@ +author: "ninjanomnom" +delete-after: True +changes: + - bugfix: "Byond membership lookup should now warn you when it fails due to a connection failure." \ No newline at end of file From b12fefc0df55edf6d6e39991fb41f484e761e6f7 Mon Sep 17 00:00:00 2001 From: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Date: Tue, 15 Oct 2024 16:02:21 -0500 Subject: [PATCH 073/103] All melee weapon damage temporarily slows cyborgs rather than just thrown weapon damage (#87119) ## About The Pull Request Cyborgs will now be temporarily slowed down when hit with **any melee weapon**, based on the strength of the weapon. Thrown weapons maintain their behavior of slowing cyborgs, and they also now scale based on strength of the weapon. Thrown weapon slowdown is also stronger (3x stronger) than just hitting them. So you are still incentivized(?) to use the existing mechanic. To catch up to them, I guess. ## Why It's Good For The Game So, this mechanic was added as a new counterbalance to cyborgs due to no longer being stunned in a single flash. But 1 year later I polled the community, and the results speak for themself: ![image](https://github.com/user-attachments/assets/bafb043f-2201-4122-8c68-ccc746046c0a) ![image](https://github.com/user-attachments/assets/f71b7048-1b98-4c05-aebb-0b8393572f7e) It is my opinion that this mechanic is too obscure and a bit obtuse to work as a "mechanical counter" to the cyborg. "Yeah to catch up to a cyborg you have to throw a floor tile or a potted plant at them." "You mean I can't just *hit* them with the potted plant?" "No, you gotta chuck it." This PR aims to address that by tweaking the mechanic to trigger on any weapon attacks. Which in my mind, makes sense. "Hitting borgs with stuff will slow them down temporarily" is easier to parse and observe in practice than "THROWING stuff at borgs will slow them down". ## Changelog :cl: Melbert balance: Cyborgs are now slowed down when hit with any melee weapons, rather than ONLY when they are hit by THROWN melee weapons. The stronger the weapon, the stronger the slowdown. Thrown weapons are still more effective at slowing than just hitting them directly, however. /:cl: --- code/__DEFINES/robots.dm | 3 -- code/_onclick/item_attack.dm | 13 ------ code/datums/status_effects/debuffs/cyborg.dm | 43 +++++++++++-------- .../mob/living/silicon/ai/ai_defense.dm | 6 +++ .../mob/living/silicon/robot/robot_defense.dm | 10 ++--- .../mob/living/silicon/silicon_defense.dm | 17 ++++++++ 6 files changed, 54 insertions(+), 38 deletions(-) diff --git a/code/__DEFINES/robots.dm b/code/__DEFINES/robots.dm index 6e45c20ce79..469669a74f8 100644 --- a/code/__DEFINES/robots.dm +++ b/code/__DEFINES/robots.dm @@ -29,9 +29,6 @@ // Cyborg defines -/// If an item does this or more throwing damage it will slow a borg down on hit -#define CYBORG_THROW_SLOWDOWN_THRESHOLD 10 - /// Special value to reset cyborg's lamp_cooldown #define BORG_LAMP_CD_RESET -1 /// How many watts per lamp power is consumed while the lamp is on. diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index d948e1d28da..7653da7f775 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -358,18 +358,6 @@ return FALSE -/mob/living/silicon/robot/attack_effects(damage_done, hit_zone, armor_block, obj/item/attacking_item, mob/living/attacker) - if(damage_done > 0 && attacking_item.damtype != STAMINA && stat != DEAD) - spark_system.start() - . = TRUE - return ..() || . - -/mob/living/silicon/ai/attack_effects(damage_done, hit_zone, armor_block, obj/item/attacking_item, mob/living/attacker) - if(damage_done > 0 && attacking_item.damtype != STAMINA && stat != DEAD) - spark_system.start() - . = TRUE - return ..() || . - /mob/living/carbon/attack_effects(damage_done, hit_zone, armor_block, obj/item/attacking_item, mob/living/attacker) var/obj/item/bodypart/hit_bodypart = get_bodypart(hit_zone) || bodyparts[1] if(!hit_bodypart.can_bleed()) @@ -484,4 +472,3 @@ return " in the [input_area]" return "" - diff --git a/code/datums/status_effects/debuffs/cyborg.dm b/code/datums/status_effects/debuffs/cyborg.dm index 0f95b494197..30cea1af745 100644 --- a/code/datums/status_effects/debuffs/cyborg.dm +++ b/code/datums/status_effects/debuffs/cyborg.dm @@ -1,22 +1,31 @@ -/// Reduce a cyborg's speed when you throw things at it -/datum/status_effect/borg_throw_slow - id = "borg_throw_slowdown" - alert_type = /atom/movable/screen/alert/status_effect/borg_throw_slow +/// Slows down a cyborg for a short time. +/datum/status_effect/borg_slow + id = "borg_slowdown" + alert_type = null duration = 3 SECONDS - status_type = STATUS_EFFECT_REPLACE + status_type = STATUS_EFFECT_REFRESH + remove_on_fullheal = TRUE + heal_flag_necessary = HEAL_CC_STATUS + /// Amount of slowdown being applied + var/slowdown = 1 -/datum/status_effect/borg_throw_slow/on_apply() - . = ..() - owner.add_movespeed_modifier(/datum/movespeed_modifier/borg_throw, update = TRUE) +/datum/status_effect/borg_slow/on_creation(mob/living/new_owner, slowdown = 1) + src.slowdown = slowdown + return ..() -/datum/status_effect/borg_throw_slow/on_remove() - . = ..() - owner.remove_movespeed_modifier(/datum/movespeed_modifier/borg_throw, update = TRUE) +/datum/status_effect/borg_slow/on_apply() + owner.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/borg_slowdown, multiplicative_slowdown = slowdown) + return TRUE -/atom/movable/screen/alert/status_effect/borg_throw_slow - name = "Percussive Maintenance" - desc = "A sudden impact has triggered your collision avoidance routines, reducing movement speed." - icon_state = "weaken" +/datum/status_effect/borg_slow/on_remove() + owner.remove_movespeed_modifier(/datum/movespeed_modifier/borg_slowdown) + +/datum/status_effect/borg_slow/refresh(mob/living/new_owner, slowdown = 1) + . = ..() + if(src.slowdown <= slowdown) + return + src.slowdown = slowdown + owner.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/borg_slowdown, multiplicative_slowdown = src.slowdown) -/datum/movespeed_modifier/borg_throw - multiplicative_slowdown = 0.9 +/datum/movespeed_modifier/borg_slowdown + variable = TRUE diff --git a/code/modules/mob/living/silicon/ai/ai_defense.dm b/code/modules/mob/living/silicon/ai/ai_defense.dm index 55a00a6ffc0..3730ca05d0f 100644 --- a/code/modules/mob/living/silicon/ai/ai_defense.dm +++ b/code/modules/mob/living/silicon/ai/ai_defense.dm @@ -152,3 +152,9 @@ var/atom/ai_structure = ai_mob_to_structure() ai_structure.balloon_alert(user, "disconnected neural network") return ITEM_INTERACT_SUCCESS + +/mob/living/silicon/ai/attack_effects(damage_done, hit_zone, armor_block, obj/item/attacking_item, mob/living/attacker) + if(damage_done > 0 && attacking_item.damtype != STAMINA && stat != DEAD) + spark_system.start() + . = TRUE + return ..() || . diff --git a/code/modules/mob/living/silicon/robot/robot_defense.dm b/code/modules/mob/living/silicon/robot/robot_defense.dm index 6deab5f08e0..d9caad42292 100644 --- a/code/modules/mob/living/silicon/robot/robot_defense.dm +++ b/code/modules/mob/living/silicon/robot/robot_defense.dm @@ -477,8 +477,8 @@ GLOBAL_LIST_INIT(blacklisted_borg_hats, typecacheof(list( //Hats that don't real return spark_system.start() -/mob/living/silicon/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum) - . = ..() - if (. || AM.throwforce < CYBORG_THROW_SLOWDOWN_THRESHOLD) - return - apply_status_effect(/datum/status_effect/borg_throw_slow) +/mob/living/silicon/robot/attack_effects(damage_done, hit_zone, armor_block, obj/item/attacking_item, mob/living/attacker) + if(damage_done > 0 && attacking_item.damtype != STAMINA && stat != DEAD) + spark_system.start() + . = TRUE + return ..() || . diff --git a/code/modules/mob/living/silicon/silicon_defense.dm b/code/modules/mob/living/silicon/silicon_defense.dm index 54d673d466b..baa2e9565a1 100644 --- a/code/modules/mob/living/silicon/silicon_defense.dm +++ b/code/modules/mob/living/silicon/silicon_defense.dm @@ -143,3 +143,20 @@ /mob/living/silicon/flash_act(intensity = 1, override_blindness_check = 0, affect_silicon = 0, visual = 0, type = /atom/movable/screen/fullscreen/flash/static, length = 25) if(affect_silicon) return ..() + +/// If an item does this or more throwing damage it will slow a borg down on hit +#define CYBORG_SLOWDOWN_THRESHOLD 10 + +/mob/living/silicon/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum) + . = ..() + if(. || AM.throwforce < CYBORG_SLOWDOWN_THRESHOLD) // can cyborgs even catch things? + return + apply_status_effect(/datum/status_effect/borg_slow, AM.throwforce / 20) + +/mob/living/silicon/attack_effects(damage_done, hit_zone, armor_block, obj/item/attacking_item, mob/living/attacker) + . = ..() + if(damage_done < CYBORG_SLOWDOWN_THRESHOLD) + return + apply_status_effect(/datum/status_effect/borg_slow, damage_done / 60) + +#undef CYBORG_SLOWDOWN_THRESHOLD From ba1a1fbe24e03b812449f5caafea067b0faadd44 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 21:07:15 +0000 Subject: [PATCH 074/103] Automatic changelog for PR #87119 [ci skip] --- html/changelogs/AutoChangeLog-pr-87119.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87119.yml diff --git a/html/changelogs/AutoChangeLog-pr-87119.yml b/html/changelogs/AutoChangeLog-pr-87119.yml new file mode 100644 index 00000000000..658e3930214 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87119.yml @@ -0,0 +1,4 @@ +author: "Melbert" +delete-after: True +changes: + - balance: "Cyborgs are now slowed down when hit with any melee weapons, rather than ONLY when they are hit by THROWN melee weapons. The stronger the weapon, the stronger the slowdown. Thrown weapons are still more effective at slowing than just hitting them directly, however." \ No newline at end of file From 36a32304e64b3c83180a884ce3e4e2cc7826127b Mon Sep 17 00:00:00 2001 From: Y0SH1M4S73R Date: Wed, 16 Oct 2024 13:18:30 -0400 Subject: [PATCH 075/103] syndicate sleeper agents can forge custom objectives (#87180) ## About The Pull Request The removal of the ability for midround traitors to take progression objectives had the run-on effect of preventing them from using their uplink to view their primary objectives, which also means they cant forge custom objectives. This PR changes that, and provides additional logic in uplink ui code to account for uplinks belonging to traitors with one type of objective but not the other. ## Why It's Good For The Game Fixes #86763 --- code/datums/components/uplink.dm | 7 +- .../Uplink/calculateDangerLevel.tsx | 2 - .../packages/tgui/interfaces/Uplink/index.tsx | 193 +++++++++--------- 3 files changed, 97 insertions(+), 105 deletions(-) diff --git a/code/datums/components/uplink.dm b/code/datums/components/uplink.dm index d64022d22b8..82b12d555ac 100644 --- a/code/datums/components/uplink.dm +++ b/code/datums/components/uplink.dm @@ -191,7 +191,8 @@ data["current_progression_scaling"] = SStraitor.current_progression_scaling data["maximum_potential_objectives"] = uplink_handler.maximum_potential_objectives - if(uplink_handler.has_objectives) + + if(uplink_handler.primary_objectives) var/list/primary_objectives = list() for(var/datum/objective/task as anything in uplink_handler.primary_objectives) var/list/task_data = list() @@ -201,7 +202,9 @@ task_data["task_name"] = "DIRECTIVE [uppertext(GLOB.phonetic_alphabet[length(primary_objectives) + 1])]" task_data["task_text"] = task.explanation_text primary_objectives += list(task_data) + data["primary_objectives"] = primary_objectives + if(uplink_handler.has_objectives) var/list/potential_objectives = list() for(var/index in 1 to uplink_handler.potential_objectives.len) var/datum/traitor_objective/objective = uplink_handler.potential_objectives[index] @@ -216,7 +219,7 @@ objective_data["id"] = index active_objectives += list(objective_data) - data["primary_objectives"] = primary_objectives + data["potential_objectives"] = potential_objectives data["active_objectives"] = active_objectives data["completed_final_objective"] = uplink_handler.final_objective diff --git a/tgui/packages/tgui/interfaces/Uplink/calculateDangerLevel.tsx b/tgui/packages/tgui/interfaces/Uplink/calculateDangerLevel.tsx index d67dd37391e..2b9dfb98f44 100644 --- a/tgui/packages/tgui/interfaces/Uplink/calculateDangerLevel.tsx +++ b/tgui/packages/tgui/interfaces/Uplink/calculateDangerLevel.tsx @@ -70,8 +70,6 @@ export const ranks: Rank[] = [ }, ]; -export const dangerDefault = 50 * 600; - let lastMinutesThan = -1; export const dangerLevelsTooltip = ( diff --git a/tgui/packages/tgui/interfaces/Uplink/index.tsx b/tgui/packages/tgui/interfaces/Uplink/index.tsx index 3ed7d34a214..124d6f3d505 100644 --- a/tgui/packages/tgui/interfaces/Uplink/index.tsx +++ b/tgui/packages/tgui/interfaces/Uplink/index.tsx @@ -18,7 +18,6 @@ import { Window } from '../../layouts'; import { calculateDangerLevel, calculateProgression, - dangerDefault, dangerLevelsTooltip, } from './calculateDangerLevel'; import { GenericUplink, Item } from './GenericUplink'; @@ -285,101 +284,93 @@ export class Uplink extends Component<{}, UplinkState> { - {!!has_progression && ( - -
- + +
+ + {!!has_progression && ( - - Your current level of threat. Threat - determines - {has_objectives - ? ' the severity of secondary objectives you get and ' - : ' '} - what items you can purchase.  + Your current level of threat. Threat + determines + {has_objectives + ? ' the severity of secondary objectives you get and ' + : ' '} + what items you can purchase.  + + {/* A minute in deciseconds */} + Threat passively increases by{' '} + + {calculateProgression( + current_progression_scaling, + )} + +  every minute + + {Math.abs(progressionPercentage) > 0 && ( - {/* A minute in deciseconds */} - Threat passively increases by{' '} - - {calculateProgression( - current_progression_scaling, - )} + Because your threat level is + {progressionPercentage < 0 + ? ' ahead ' + : ' behind '} + of where it should be, you are getting + + {progressionPercentage}% -  every minute + {progressionPercentage < 0 ? 'less' : 'more'}{' '} + threat every minute - {Math.abs(progressionPercentage) > 0 && ( - - Because your threat level is - {progressionPercentage < 0 - ? ' ahead ' - : ' behind '} - of where it should be, you are getting - - {progressionPercentage}% - - {progressionPercentage < 0 - ? 'less' - : 'more'}{' '} - threat every minute - - )} - {dangerLevelsTooltip} - + )} + {dangerLevelsTooltip} - )) || - "Your current threat level. You are a killing machine and don't need to improve your threat level." + } > - {/* If we have no progression, - just give them a generic title */} - {has_progression - ? calculateDangerLevel(progression_points, false) - : calculateDangerLevel(dangerDefault, false)} + {calculateDangerLevel(progression_points, false)} - + )} + {(primary_objectives || has_objectives) && ( + {primary_objectives && ( + this.setState({ currentTab: 0 })} + > + Primary Objectives + + )} {!!has_objectives && ( - <> - this.setState({ currentTab: 0 })} - > - Primary Objectives - - this.setState({ currentTab: 1 })} - > - Secondary Objectives - - + this.setState({ currentTab: 1 })} + > + Secondary Objectives + )} { textOverflow: 'ellipsis', }} icon="store" - selected={currentTab === 2 || !has_objectives} + selected={currentTab === 2} onClick={() => this.setState({ currentTab: 2 })} > Market + )} - {!!lockable && ( - - - - )} - -
-
- )} + {!!lockable && ( + + + + )} +
+
+
- {(currentTab === 0 && has_objectives && ( + {(currentTab === 0 && primary_objectives && ( Date: Wed, 16 Oct 2024 17:18:52 +0000 Subject: [PATCH 076/103] Automatic changelog for PR #87180 [ci skip] --- html/changelogs/AutoChangeLog-pr-87180.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87180.yml diff --git a/html/changelogs/AutoChangeLog-pr-87180.yml b/html/changelogs/AutoChangeLog-pr-87180.yml new file mode 100644 index 00000000000..16b585c3120 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87180.yml @@ -0,0 +1,4 @@ +author: "Y0SH1M4S73R" +delete-after: True +changes: + - bugfix: "Syndicate Sleeper Agents can once again forge custom objectives" \ No newline at end of file From da98be83fa99e2c1afe85c40578554d53412fe8a Mon Sep 17 00:00:00 2001 From: Xackii <120736708+Xackii@users.noreply.github.com> Date: Wed, 16 Oct 2024 22:47:05 +0300 Subject: [PATCH 077/103] Big manipulator update. MORE MANIPULATES!!! (#86827) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## About The Pull Request Added new settings for the manipulator: 0. Added item in claw overlay. Now you see what object manipulator is using. 1. Type to take. Manipulator can take items and crates(also livings but with emag). https://github.com/user-attachments/assets/8d0a557f-339e-44c5-a48d-5c81c20ca611 2. Modes. Manipulator now have drop/use/throw mode that change manipulate process with object in claws: - Drop: Can drop item in floor/storage (selected by priority). - Use: Will try to use item in claws on living/structures/machinery (selected by priority). Need tasting. - Throw: Just throwing the item away!!! Throw range can be modified. https://github.com/user-attachments/assets/71a204c5-2816-4826-9540-9fcb9699046b https://github.com/user-attachments/assets/d38c80cc-3018-45bd-92d3-d1e693e4d586 https://github.com/user-attachments/assets/0b745fe6-df3b-4682-8f21-91d87feae84a 3. Priorities. Now you can configure what types of objects the manipulator will work. Manipulator will choose which object to work with using a priority list: selects the type with the lowest number. If manipulator cannot find an item from priority 1, he will look from priority 2 and so on. can be disabled by clicking on the only 1 priority button. In this case, the manipulator will not finish its work and will wait until the desired type of object appears. 4. Emag act. Now manipulator can be emaged. In this case he will have the opportunity to take living mobs and drop em or THROW AWAY!!!! https://github.com/user-attachments/assets/27d8b710-ec59-4931-9ca4-4770e929ea7b If you find secret functions that I didn’t write about, it means I forgot about them. ## Why It's Good For The Game ![Manipulator_Enjouer](https://github.com/user-attachments/assets/246cac47-410a-4e5b-955d-12c84b7fec63) As many have said, Manipulator has too few functions. Adds more options for building -death traps- logistics networks and other automated manipulation capabilities. ## Changelog :cl: add: Manipulator now shows what objects he is dragging. add: Manipulator now can take more then just items. add: Manipulator now have 3 modes to choice: drop/use/throw. add: Manipulator now have priorities. add: Manipulator now can be emaged. /:cl: --------- Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com> --- code/game/machinery/big_manipulator.dm | 415 +++++++++++++++++- .../tgui/interfaces/BigManipulator.tsx | 106 ++++- 2 files changed, 502 insertions(+), 19 deletions(-) diff --git a/code/game/machinery/big_manipulator.dm b/code/game/machinery/big_manipulator.dm index 8d2bde3e145..27c927697fc 100644 --- a/code/game/machinery/big_manipulator.dm +++ b/code/game/machinery/big_manipulator.dm @@ -1,3 +1,11 @@ +#define DROP_ITEM_MODE 1 +#define USE_ITEM_MODE 2 +#define THROW_ITEM_MODE 3 + +#define TAKE_ITEMS 1 +#define TAKE_CLOSETS 2 +#define TAKE_HUMANS 3 + /// Manipulator Core. Main part of the mechanism that carries out the entire process. /obj/machinery/big_manipulator name = "Big Manipulator" @@ -24,10 +32,36 @@ var/turf/take_turf /// Turf where we drop items. var/turf/drop_turf + /// How will manipulator manipulate the object? drop it out by default. + var/manipulate_mode = DROP_ITEM_MODE + /// Priority settings depending on the manipulator mode that are available to this manipulator. Filled during Initialize. + var/list/priority_settings_for_drop = list() + var/list/priority_settings_for_use = list() + /// What priority settings are available to use at the moment. + /// We also use this list to sort priorities from ascending to descending. + var/list/allowed_priority_settings = list() /// Obj inside manipulator. var/datum/weakref/containment_obj + /// Obj used as filter + var/datum/weakref/filter_obj /// Other manipulator component. - var/obj/effect/manipulator_hand + var/obj/effect/big_manipulator_hand/manipulator_hand + /// Here some ui setting we can on/off: + /// If activated: after item was used manipulator will also drop it. + var/drop_item_after_use = TRUE + /// If acrivated: will select only 1 priority and will not continue to look at the priorities below. + var/only_highest_priority = FALSE + /// Var for throw item mode: changes the range from which the manipulator throws an object. + var/manipulator_throw_range = 1 + /// Selected type that manipulator will take for take and drop loop. + var/atom/selected_type + /// Just a lazy number to change selected_type type in array. + var/selected_type_by_number = 1 + /// List where we can set selected type. Taking items by Initialize. + var/list/allowed_types_to_pick_up = list( + /obj/item, + /obj/structure/closet, + ) /obj/machinery/big_manipulator/Initialize(mapload) . = ..() @@ -35,9 +69,19 @@ create_manipulator_hand() RegisterSignal(manipulator_hand, COMSIG_QDELETING, PROC_REF(on_hand_qdel)) manipulator_lvl() + set_up_priority_settings() + selected_type = allowed_types_to_pick_up[selected_type_by_number] if(on) press_on(pressed_by = null) +/// Init priority settings list for all modes. +/obj/machinery/big_manipulator/proc/set_up_priority_settings() + for(var/datum/manipulator_priority/priority_for_drop as anything in subtypesof(/datum/manipulator_priority/for_drop)) + priority_settings_for_drop += new priority_for_drop + for(var/datum/manipulator_priority/priority_for_use as anything in subtypesof(/datum/manipulator_priority/for_use)) + priority_settings_for_use += new priority_for_use + update_priority_list() + /obj/machinery/big_manipulator/examine(mob/user) . = ..() . += "You can change direction with alternative wrench usage." @@ -45,10 +89,12 @@ /obj/machinery/big_manipulator/Destroy(force) . = ..() qdel(manipulator_hand) - if(isnull(containment_obj)) - return - var/obj/obj_resolve = containment_obj?.resolve() - obj_resolve?.forceMove(get_turf(obj_resolve)) + if(!isnull(containment_obj)) + var/obj/containment_resolve = containment_obj?.resolve() + containment_resolve?.forceMove(get_turf(containment_resolve)) + if(!isnull(filter_obj)) + var/obj/filter_resolve = filter_obj?.resolve() + filter_resolve?.forceMove(get_turf(filter_resolve)) /obj/machinery/big_manipulator/Moved(atom/old_loc, movement_dir, forced, list/old_locs, momentum_change) . = ..() @@ -59,6 +105,15 @@ if(!manipulator_hand) create_manipulator_hand() +/obj/machinery/big_manipulator/emag_act(mob/user, obj/item/card/emag/emag_card) + . = ..() + if(obj_flags & EMAGGED) + return FALSE + balloon_alert(user, "overloaded functions installed") + obj_flags |= EMAGGED + allowed_types_to_pick_up += /mob/living + return TRUE + /obj/machinery/big_manipulator/wrench_act(mob/living/user, obj/item/tool) . = ..() default_unfasten_wrench(user, tool, time = 1 SECONDS) @@ -175,7 +230,9 @@ on = !on say("Output blocked") return FALSE - for(var/obj/item/take_item in take_turf.contents) + for(var/take_item in take_turf.contents) + if(!check_filter(take_item)) + continue try_take_thing(take_turf, take_item) break @@ -200,22 +257,121 @@ on = FALSE say("Not enough energy!") return - if(isitem(target)) - start_work(target) + if(!check_filter(target)) + return + start_work(target) /// Second take and drop proc from [take and drop procs loop]: /// Taking our item and start manipulator hand rotate animation. /obj/machinery/big_manipulator/proc/start_work(atom/movable/target) target.forceMove(src) containment_obj = WEAKREF(target) + manipulator_hand.update_claw(containment_obj) on_work = TRUE do_rotate_animation(1) - addtimer(CALLBACK(src, PROC_REF(drop_thing), target), working_speed) - -/// Third take and drop proc from [take and drop procs loop]: -/// Drop our item and start manipulator hand backward animation. + check_next_move(target) + +/// 2.5 take and drop proc from [take and drop procs loop]: +/// Choose what we will do with our item by checking the manipulate_mode. +/obj/machinery/big_manipulator/proc/check_next_move(atom/movable/target) + switch(manipulate_mode) + if(DROP_ITEM_MODE) + addtimer(CALLBACK(src, PROC_REF(drop_thing), target), working_speed) + if(USE_ITEM_MODE) + addtimer(CALLBACK(src, PROC_REF(use_thing), target), working_speed) + if(THROW_ITEM_MODE) + addtimer(CALLBACK(src, PROC_REF(throw_thing), target), working_speed) + +/// 3.1 take and drop proc from [take and drop procs loop]: +/// Drop our item. +/// Checks the priority to drop item not only ground but also in the storage. /obj/machinery/big_manipulator/proc/drop_thing(atom/movable/target) - target.forceMove(drop_turf) + var/where_we_drop = search_type_by_priority_in_drop_turf(allowed_priority_settings) + if(isnull(where_we_drop)) + addtimer(CALLBACK(src, PROC_REF(drop_thing), target), working_speed) + return + if((where_we_drop == drop_turf) || !isitem(target)) + target.forceMove(drop_turf) + target.dir = get_dir(get_turf(target), get_turf(src)) + else + target.forceMove(where_we_drop) + finish_manipulation() + +/// 3.2 take and drop proc from [take and drop procs loop]: +/// Use our item on random atom in drop turf contents then +/// Starts manipulator hand backward animation by defualt, but +/// You can also set the setting in ui so that it does not return to its privious position and continues to use object in its hand. +/// Checks the priority so that you can configure which object it will select: mob/obj/turf. +/// Also can use filter to interact only with obj in filter. +/obj/machinery/big_manipulator/proc/use_thing(atom/movable/target) + var/obj/obj_resolve = containment_obj?.resolve() + if(isnull(obj_resolve)) + finish_manipulation() + return + /// If we forceMoved from manipulator we are free now. + if(obj_resolve.loc != src) + finish_manipulation() + return + if(!isitem(target)) + target.forceMove(drop_turf) /// We use only items + target.dir = get_dir(get_turf(target), get_turf(src)) + finish_manipulation() + return + var/obj/item/im_item = target + var/atom/type_to_use = search_type_by_priority_in_drop_turf(allowed_priority_settings) + if(isnull(type_to_use)) + check_end_of_use(im_item, target, item_was_used = FALSE) + return + var/mob/living/carbon/human/dummy/living_manipulator_lmfao = create_abstract_living() + living_manipulator_lmfao.put_in_active_hand(im_item) + if(!type_to_use.attackby(im_item, living_manipulator_lmfao)) + im_item.melee_attack_chain(living_manipulator_lmfao, type_to_use) + do_attack_animation(drop_turf) + manipulator_hand.do_attack_animation(drop_turf) + if(LAZYLEN(living_manipulator_lmfao.do_afters)) + RegisterSignal(living_manipulator_lmfao, COMSIG_DO_AFTER_ENDED, PROC_REF(manipulator_finish_do_after)) + else + im_item.forceMove(src) + qdel(living_manipulator_lmfao) + check_end_of_use(im_item, item_was_used = TRUE) + +/// Wait whan manipulator finish do_after and kill em. +/obj/machinery/big_manipulator/proc/manipulator_finish_do_after(mob/living/carbon/human/dummy/abstract_manipulator) + SIGNAL_HANDLER + + var/obj/item/my_item = abstract_manipulator.get_active_held_item() + my_item.forceMove(src) + qdel(abstract_manipulator) + +/// Check what we gonna do next with our item. Drop it or use again. +/obj/machinery/big_manipulator/proc/check_end_of_use(obj/item/my_item, item_was_used) + if(drop_item_after_use && item_was_used) + my_item.forceMove(drop_turf) + my_item.dir = get_dir(get_turf(my_item), get_turf(src)) + finish_manipulation() + return + addtimer(CALLBACK(src, PROC_REF(use_thing), my_item), working_speed) + +/// 3.3 take and drop proc from [take and drop procs loop]: +/// Throw item away!!! +/obj/machinery/big_manipulator/proc/throw_thing(atom/movable/target) + if(!(isitem(target) || isliving(target))) + target.forceMove(drop_turf) + target.dir = get_dir(get_turf(target), get_turf(src)) + finish_manipulation() /// We throw only items and living mobs + return + var/obj/item/im_item = target + im_item.forceMove(drop_turf) + im_item.throw_at(get_edge_target_turf(get_turf(src), drop_here), manipulator_throw_range - 1, 2) + src.do_attack_animation(drop_turf) + manipulator_hand.do_attack_animation(drop_turf) + finish_manipulation() + +/// End of thirds take and drop proc from [take and drop procs loop]: +/// Starts manipulator hand backward animation. +/obj/machinery/big_manipulator/proc/finish_manipulation() + containment_obj = null + manipulator_hand.update_claw(null) do_rotate_animation(0) addtimer(CALLBACK(src, PROC_REF(end_work)), working_speed) @@ -234,6 +390,68 @@ /obj/machinery/big_manipulator/proc/finish_rotate_animation(backward) animate(manipulator_hand, transform = matrix(180 * backward, MATRIX_ROTATE), working_speed*0.5) +/obj/machinery/big_manipulator/proc/check_filter(obj/item/what_item) + var/filtered_obj = filter_obj?.resolve() + if(!istype(what_item, selected_type)) + return + /// We use filter only on items. closets, humans and etc don't need filter check. + if(istype(what_item, /obj/item)) + if((filtered_obj && !istype(what_item, filtered_obj))) + return FALSE + return TRUE + +/// Create dummy to force him use our item and then delete him. +/obj/machinery/big_manipulator/proc/create_abstract_living() + var/mob/living/carbon/human/dummy/abstract_living = new /mob/living/carbon/human/dummy(get_turf(src)) + abstract_living.alpha = 0 + abstract_living.mouse_opacity = MOUSE_OPACITY_TRANSPARENT + ADD_TRAIT(abstract_living, TRAIT_UNDENSE, INNATE_TRAIT) + abstract_living.move_resist = INFINITY + abstract_living.invisibility = INVISIBILITY_ABSTRACT + abstract_living.real_name = abstract_living.name = name + abstract_living.mind_initialize() + return abstract_living + +/// Proc called when we changing item interaction mode. +/obj/machinery/big_manipulator/proc/change_mode() + manipulate_mode++ + if(manipulate_mode > THROW_ITEM_MODE) + manipulate_mode = DROP_ITEM_MODE + update_priority_list() + is_work_check() + +/// Update priority list in ui. Creating new list and sort it by priority number. +/obj/machinery/big_manipulator/proc/update_priority_list() + allowed_priority_settings = list() + var/list/priority_mode_list + if(manipulate_mode == DROP_ITEM_MODE) + priority_mode_list = priority_settings_for_drop.Copy() + if(manipulate_mode == USE_ITEM_MODE) + priority_mode_list = priority_settings_for_use.Copy() + if(isnull(priority_mode_list)) + return + for(var/we_need_increasing in 1 to length(priority_mode_list)) + for(var/datum/manipulator_priority/what_priority in priority_mode_list) + if(what_priority.number != we_need_increasing) + continue + allowed_priority_settings += what_priority + +/// Proc thet return item by type in priority list. Selects item and increasing priority number if don't found req type. +/obj/machinery/big_manipulator/proc/search_type_by_priority_in_drop_turf(list/priority_list) + var/lazy_counter = 1 + for(var/datum/manipulator_priority/take_type in priority_list) + /// If we set only_highest_priority on TRUE we don't go to priority below. + if(lazy_counter > 1 && only_highest_priority) + return null + /// If we need turf we don't check turf.contents and just return drop_turf. + if(take_type.what_type == /turf) + return drop_turf + lazy_counter++ + for(var/type_in_priority in drop_turf.contents) + if(!istype(type_in_priority, take_type.what_type)) + continue + return type_in_priority + /// Proc call when we press on/off button /obj/machinery/big_manipulator/proc/press_on(pressed_by) if(pressed_by) @@ -257,7 +475,29 @@ /obj/machinery/big_manipulator/ui_data(mob/user) var/list/data = list() + var/mode + switch(manipulate_mode) + if(DROP_ITEM_MODE) + mode = "Drop" + if(USE_ITEM_MODE) + mode = "Use" + if(THROW_ITEM_MODE) + mode = "Throw" data["active"] = on + data["item_as_filter"] = filter_obj?.resolve() + data["selected_type"] = selected_type.name + data["manipulate_mode"] = mode + data["drop_after_use"] = drop_item_after_use + data["highest_priority"] = only_highest_priority + data["throw_range"] = manipulator_throw_range + var/list/priority_list = list() + data["settings_list"] = list() + for(var/datum/manipulator_priority/allowed_setting as anything in allowed_priority_settings) + var/list/priority_data = list() + priority_data["name"] = allowed_setting.name + priority_data["priority_width"] = allowed_setting.number + priority_list += list(priority_data) + data["settings_list"] = priority_list return data /obj/machinery/big_manipulator/ui_act(action, params, datum/tgui/ui) @@ -268,6 +508,71 @@ if("on") press_on(pressed_by = TRUE) return TRUE + if("drop") + if(isnull(containment_obj)) + return + var/obj/obj_resolve = containment_obj?.resolve() + obj_resolve?.forceMove(get_turf(obj_resolve)) + finish_manipulation() + return TRUE + if("change_take_item_type") + selected_type_by_number++ + if(selected_type_by_number > allowed_types_to_pick_up.len) + selected_type_by_number = 1 + selected_type = allowed_types_to_pick_up[selected_type_by_number] + is_work_check() + return TRUE + if("change_mode") + change_mode() + return TRUE + if("add_filter") + var/mob/living/living_user = ui.user + if(!isliving(living_user)) + return FALSE + var/obj/give_obj_back = filter_obj?.resolve() + if(give_obj_back) + give_obj_back.forceMove(get_turf(src)) + filter_obj = null + is_work_check() + to_chat(living_user, span_warning("Filter removed")) + return TRUE + var/obj/item/get_active_held_item = living_user.get_active_held_item() + if(isnull(get_active_held_item)) + to_chat(living_user, span_warning("You need item in hand to put it as filter")) + return FALSE + filter_obj = WEAKREF(get_active_held_item) + get_active_held_item.forceMove(src) + is_work_check() + return TRUE + if("drop_use_change") + drop_item_after_use = !drop_item_after_use + return TRUE + if("highest_priority_change") + only_highest_priority = !only_highest_priority + return TRUE + if("change_priority") + var/new_priority_number = params["priority"] + for(var/datum/manipulator_priority/new_order as anything in allowed_priority_settings) + if(new_order.number != new_priority_number) + continue + new_order.number-- + check_similarities(new_order.number) + break + update_priority_list() + return TRUE + if("change_throw_range") + manipulator_throw_range++ + if(manipulator_throw_range > 7) + manipulator_throw_range = 1 + return TRUE + +/// Using on change_priority: looks for a setting with the same number that we set earlier and reduce it. +/obj/machinery/big_manipulator/proc/check_similarities(number_we_minus) + for(var/datum/manipulator_priority/similarities as anything in allowed_priority_settings) + if(similarities.number != number_we_minus) + continue + similarities.number++ + break /// Manipulator hand. Effect we animate to show that the manipulator is working and moving something. /obj/effect/big_manipulator_hand @@ -276,7 +581,91 @@ icon = 'icons/obj/machines/big_manipulator_parts/big_manipulator_hand.dmi' icon_state = "hand" layer = LOW_ITEM_LAYER + appearance_flags = KEEP_TOGETHER | LONG_GLIDE | TILE_BOUND | PIXEL_SCALE anchored = TRUE greyscale_config = /datum/greyscale_config/manipulator_hand pixel_x = -32 pixel_y = -32 + /// We get item from big manipulator and takes its icon to create overlay. + var/datum/weakref/item_in_my_claw + /// Var to icon that used as overlay on manipulator claw to show what item it grabs. + var/mutable_appearance/icon_overlay + +/obj/effect/big_manipulator_hand/update_overlays() + . = ..() + if(isnull(item_in_my_claw)) + icon_overlay = null + return + var/atom/movable/item_data = item_in_my_claw.resolve() + icon_overlay = mutable_appearance(item_data.icon, item_data.icon_state, item_data.layer, src, item_data.appearance_flags) + icon_overlay.color = item_data.color + icon_overlay.appearance = item_data.appearance + icon_overlay.pixel_x = 32 + calculate_item_offset(is_x = TRUE) + icon_overlay.pixel_y = 32 + calculate_item_offset(is_x = FALSE) + . += icon_overlay + +/// Updates item that is in the claw. +/obj/effect/big_manipulator_hand/proc/update_claw(clawed_item) + item_in_my_claw = clawed_item + update_appearance() + +/// Calculate x and y coordinates so that the item icon appears in the claw and not somewhere in the corner. +/obj/effect/big_manipulator_hand/proc/calculate_item_offset(is_x = TRUE) + var/offset + switch(dir) + if(NORTH) + offset = is_x ? 0 : 32 + if(SOUTH) + offset = is_x ? 0 : -32 + if(EAST) + offset = is_x ? 32 : 0 + if(WEST) + offset = is_x ? -32 : 0 + return offset + +/// Priorities that manipulator use to choose to work on item with type same with what_type. +/datum/manipulator_priority + /// Name that user will see in ui. + var/name + /// What type carries this priority. + var/what_type + /** + * Place in the priority queue. The lower the number, the more important the priority. + * Doesn’t really matter what number you enter, user can set priority for themselves, + * BUT!!! + * Don't write the same numbers in the same parent otherwise something may go wrong. + */ + var/number + +/datum/manipulator_priority/for_drop/on_floor + name = "Drop on Floor" + what_type = /turf + number = 1 + +/datum/manipulator_priority/for_drop/in_storage + name = "Drop in Storage" + what_type = /obj/item/storage + number = 2 + +/datum/manipulator_priority/for_use/on_living + name = "Use on Living" + what_type = /mob/living + number = 1 + +/datum/manipulator_priority/for_use/on_structure + name = "Use on Structure" + what_type = /obj/structure + number = 2 + +/datum/manipulator_priority/for_use/on_machinery + name = "Use on Machinery" + what_type = /obj/machinery + number = 3 + +#undef DROP_ITEM_MODE +#undef USE_ITEM_MODE +#undef THROW_ITEM_MODE + +#undef TAKE_ITEMS +#undef TAKE_CLOSETS +#undef TAKE_HUMANS diff --git a/tgui/packages/tgui/interfaces/BigManipulator.tsx b/tgui/packages/tgui/interfaces/BigManipulator.tsx index 6a5501b5664..c1419daa3bd 100644 --- a/tgui/packages/tgui/interfaces/BigManipulator.tsx +++ b/tgui/packages/tgui/interfaces/BigManipulator.tsx @@ -1,29 +1,123 @@ import { BooleanLike } from 'common/react'; import { useBackend } from '../backend'; -import { Button, Section, Stack } from '../components'; +import { Button, Section, Stack, Table } from '../components'; import { Window } from '../layouts'; type ManipulatorData = { active: BooleanLike; + drop_after_use: BooleanLike; + highest_priority: BooleanLike; + manipulate_mode: string; + settings_list: PrioritySettings[]; + throw_range: number; + item_as_filter: string; + selected_type: string; +}; + +type PrioritySettings = { + name: string; + priority_width: number; }; export const BigManipulator = (props) => { const { data, act } = useBackend(); - const { active } = data; + const { + active, + manipulate_mode, + settings_list, + drop_after_use, + highest_priority, + throw_range, + item_as_filter, + selected_type, + } = data; return ( - + -
- +
act('on')} /> - + } + > + +
+ {settings_list.length >= 2 && ( +
+ {settings_list.length >= 2 && ( +
+ )} ); From 1b5e2b448cf1597aa161f71b2376b3e33bb79876 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Wed, 16 Oct 2024 19:47:31 +0000 Subject: [PATCH 078/103] Automatic changelog for PR #86827 [ci skip] --- html/changelogs/AutoChangeLog-pr-86827.yml | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-86827.yml diff --git a/html/changelogs/AutoChangeLog-pr-86827.yml b/html/changelogs/AutoChangeLog-pr-86827.yml new file mode 100644 index 00000000000..238195d82bc --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-86827.yml @@ -0,0 +1,8 @@ +author: "Xackii" +delete-after: True +changes: + - rscadd: "Manipulator now shows what objects he is dragging." + - rscadd: "Manipulator now can take more then just items." + - rscadd: "Manipulator now have 3 modes to choice: drop/use/throw." + - rscadd: "Manipulator now have priorities." + - rscadd: "Manipulator now can be emaged." \ No newline at end of file From 37f75cde3a4288acca04a652505f3c81c89d4f24 Mon Sep 17 00:00:00 2001 From: SmArtKar <44720187+SmArtKar@users.noreply.github.com> Date: Wed, 16 Oct 2024 22:00:36 +0200 Subject: [PATCH 079/103] Minor chainsaw code refactor (#87198) ## About The Pull Request Closes #87140 by making chainsaws use transforming component like all other sane items. Also cleanup. ## Changelog :cl: fix: Chainsaws can now be sharpened code: Chainsaws have received a minor code refactor /:cl: --- code/game/objects/items/chainsaw.dm | 123 +++++++++++++--------------- icons/obj/weapons/chainsaw.dmi | Bin 1149 -> 1106 bytes 2 files changed, 58 insertions(+), 65 deletions(-) diff --git a/code/game/objects/items/chainsaw.dm b/code/game/objects/items/chainsaw.dm index dad44d69e7e..11b04240dd4 100644 --- a/code/game/objects/items/chainsaw.dm +++ b/code/game/objects/items/chainsaw.dm @@ -4,12 +4,11 @@ name = "chainsaw" desc = "A versatile power tool. Useful for limbing trees and delimbing humans." icon = 'icons/obj/weapons/chainsaw.dmi' - icon_state = "chainsaw_off" + icon_state = "chainsaw" lefthand_file = 'icons/mob/inhands/weapons/chainsaw_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/chainsaw_righthand.dmi' obj_flags = CONDUCTS_ELECTRICITY force = 13 - var/force_on = 24 w_class = WEIGHT_CLASS_HUGE throwforce = 13 throw_speed = 2 @@ -23,68 +22,28 @@ actions_types = list(/datum/action/item_action/startchainsaw) tool_behaviour = TOOL_SAW toolspeed = 1.5 //Turn it on first you dork - var/on = FALSE - ///The looping sound for our chainsaw when running + var/force_on = 24 + /// The looping sound for our chainsaw when running var/datum/looping_sound/chainsaw/chainsaw_loop - ///how long it takes to behead someone with this chainsaw. + /// How long it takes to behead someone with this chainsaw. var/behead_time = 15 SECONDS -/obj/item/chainsaw/apply_fantasy_bonuses(bonus) - . = ..() - force_on = modify_fantasy_variable("force_on", force_on, bonus) - if(on) - force = force_on - -/obj/item/chainsaw/remove_fantasy_bonuses(bonus) - force_on = reset_fantasy_variable("force_on", force_on) - if(on) - force = force_on - return ..() - /obj/item/chainsaw/Initialize(mapload) . = ..() chainsaw_loop = new(src) apply_components() + AddComponent( \ + /datum/component/transforming, \ + force_on = force_on, \ + throwforce_on = force_on, \ + throw_speed_on = throw_speed, \ + sharpness_on = SHARP_EDGED, \ + hitsound_on = 'sound/items/weapons/chainsawhit.ogg', \ + w_class_on = w_class, \ + ) -/obj/item/chainsaw/suicide_act(mob/living/carbon/user) - if(on) - user.visible_message(span_suicide("[user] begins to tear [user.p_their()] head off with [src]! It looks like [user.p_theyre()] trying to commit suicide!")) - playsound(src, 'sound/items/weapons/chainsawhit.ogg', 100, TRUE) - var/obj/item/bodypart/head/myhead = user.get_bodypart(BODY_ZONE_HEAD) - if(myhead) - myhead.dismember() - else - user.visible_message(span_suicide("[user] smashes [src] into [user.p_their()] neck, destroying [user.p_their()] esophagus! It looks like [user.p_theyre()] trying to commit suicide!")) - playsound(src, 'sound/items/weapons/genhit1.ogg', 100, TRUE) - return BRUTELOSS - -/obj/item/chainsaw/attack_self(mob/user) - on = !on - to_chat(user, "As you pull the starting cord dangling from [src], [on ? "it begins to whirr." : "the chain stops moving."]") - force = on ? force_on : initial(force) - throwforce = on ? force_on : initial(force) - icon_state = "chainsaw_[on ? "on" : "off"]" - var/datum/component/butchering/butchering = src.GetComponent(/datum/component/butchering) - butchering.butchering_enabled = on - - if(on) - hitsound = 'sound/items/weapons/chainsawhit.ogg' - chainsaw_loop.start() - else - hitsound = SFX_SWING_HIT - chainsaw_loop.stop() + RegisterSignal(src, COMSIG_TRANSFORMING_ON_TRANSFORM, PROC_REF(on_transform)) - toolspeed = on ? 0.5 : initial(toolspeed) //Turning it on halves the speed - if(src == user.get_active_held_item()) //update inhands - user.update_held_items() - update_item_action_buttons() - -/** - * Handles adding components to the chainsaw. Added in Initialize() - * - * Applies components to the chainsaw. Added as a separate proc to allow for - * variance between subtypes - */ /obj/item/chainsaw/proc/apply_components() AddComponent(/datum/component/butchering, \ speed = 3 SECONDS, \ @@ -93,14 +52,34 @@ butcher_sound = 'sound/items/weapons/chainsawhit.ogg', \ disabled = TRUE, \ ) - AddComponent(/datum/component/two_handed, require_twohands=TRUE) + AddComponent(/datum/component/two_handed, require_twohands = TRUE) -/obj/item/chainsaw/doomslayer - name = "THE GREAT COMMUNICATOR" - desc = span_warning("VRRRRRRR!!!") - armour_penetration = 100 - force_on = 30 - behead_time = 2 SECONDS +/obj/item/chainsaw/proc/on_transform(obj/item/source, mob/user, active) + SIGNAL_HANDLER + + to_chat(user, span_notice("As you pull the starting cord dangling from [src], [active ? "it begins to whirr" : "the chain stops moving"].")) + var/datum/component/butchering/butchering = GetComponent(/datum/component/butchering) + butchering.butchering_enabled = active + if (active) + chainsaw_loop.start() + else + chainsaw_loop.stop() + + toolspeed = active ? 0.5 : initial(toolspeed) + update_item_action_buttons() + +/obj/item/chainsaw/suicide_act(mob/living/carbon/user) + if(!HAS_TRAIT(src, TRAIT_TRANSFORM_ACTIVE)) + user.visible_message(span_suicide("[user] smashes [src] into [user.p_their()] neck, destroying [user.p_their()] esophagus! It looks like [user.p_theyre()] trying to commit suicide!")) + playsound(src, 'sound/items/weapons/genhit1.ogg', 100, TRUE) + return BRUTELOSS + + user.visible_message(span_suicide("[user] begins to tear [user.p_their()] head off with [src]! It looks like [user.p_theyre()] trying to commit suicide!")) + playsound(src, 'sound/items/weapons/chainsawhit.ogg', 100, TRUE) + var/obj/item/bodypart/head/myhead = user.get_bodypart(BODY_ZONE_HEAD) + if(myhead) + myhead.dismember() + return BRUTELOSS /obj/item/chainsaw/attack(mob/living/target_mob, mob/living/user, params) if (target_mob.stat != DEAD) @@ -124,6 +103,23 @@ return TRUE +/obj/item/chainsaw/proc/has_same_head(mob/living/target_mob, obj/item/bodypart/head) + return target_mob.get_bodypart(BODY_ZONE_HEAD) == head + +/** + * Handles adding components to the chainsaw. Added in Initialize() + * + * Applies components to the chainsaw. Added as a separate proc to allow for + * variance between subtypes + */ + +/obj/item/chainsaw/doomslayer + name = "THE GREAT COMMUNICATOR" + desc = span_warning("VRRRRRRR!!!") + armour_penetration = 100 + force_on = 30 + behead_time = 2 SECONDS + /obj/item/chainsaw/doomslayer/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK, damage_type = BRUTE) if(attack_type == PROJECTILE_ATTACK) owner.visible_message(span_danger("Ranged attacks just make [owner] angrier!")) @@ -131,9 +127,6 @@ return TRUE return FALSE -/obj/item/chainsaw/proc/has_same_head(mob/living/target_mob, obj/item/bodypart/head) - return target_mob.get_bodypart(BODY_ZONE_HEAD) == head - /obj/item/chainsaw/mounted_chainsaw name = "mounted chainsaw" desc = "A chainsaw that has replaced your arm." diff --git a/icons/obj/weapons/chainsaw.dmi b/icons/obj/weapons/chainsaw.dmi index 1d48b63e45949d54ca165497c7a3d089a3c44c89..b2a0385e70b6f58830c9c1284afc33abb51445f7 100644 GIT binary patch delta 1085 zcmV-D1j76M2+|0UB!7c?R9JLGWpiV4X>fFDZ*Bkpc$`yKaB_9`^iy#0_2eo`Eh^5; z&r`5fFwryM;w;ZhDainGjE%TBGg33tGfE(w;*!LYR3K9+IU_MMuQ;(hK0i;1i!&v& zs2C_}$iy&*iuN@Ob1pEz9mYembvi3r&M|jv6+8B1qm`)O)aS) zg&qt8qlQIF1kQ&D!iM3dm_13_qhhGDjHb)lMyH*#dAV0~-niF&TRT5E`|jE9J-^@i z-S6Jr?R3@V|Mhdn7Y;Xgx1z>|4fGq$U+yHC=*hqQ<($pMmu~>)@inqJE1da5> zoL^A$B-qk&olH%A5c{FAVrqmI{Hij*@Au1yO(qjDn=gUe?Pl-y^*!2GL$u&mWk4_x zWYPH0M1TO0X4-oS4W$>^`_0Xl361^zkN3q0E%;N-W`DETnV4{qp`oEvL4Z*u@k#D@ z)q`08>lq!S=j6d=dNymf#yl`u;Dqs<)*Ro_X|+V zpCTo1ZMD!%D~-Y)k?!Z+3?EBEnfPbz8=M+WVJ#R8!q-$C45qzgt+@EaUUO&sAQ@Xp z)PkSg1b-=cFc7eI_w+BP!7D2(kkM&^lWze$4Vf^%yb*PRbidthQZ)1Egy!aE zW6sYE*b*=~IT3XbDSSR3WOP(RnKLwjDuBY{dQmv>c|kw;6O2Y9*zI;k+Su4g78VxR z=i7yBo&C19wwUvaUxQS{y7!0mopTJ%na+Ze_oma8W4S;!*29Bl9t6GJ z1Nr$!Sbt#PnQX%JZoQKU4#$X9DL0L;4veYhmpuni5fv5XR+r1&sU$|OM_8){n4uX+ zB3T=HshpIbF@r%bZZ9n@@0gA>6P0q)NDWiVuj)Z)r!yICUuj>9hbArfRT=O|4fGq$U+yHC=*x&|W3%~|909ybyxB=J#u)z($7JvZa09RfU?b@b zNa*?iEubm`0s%jayIkxq=k0$xCkhg}K0pg3bbWvpkX-_FY3g6%aM34roGwcThYAW| zEi2rnKTg9y+H)u^DPgV2Y>wN@L$)$RQ-8R&_B=QoBTyHL!%-sL&lVVglGgyMO*(db z`THDkEO+H99RB5H+ZQ(L;L6o&ahV080r&3SA^Tk)AYHDG7ogM!#FG)SOQ79$gJ9JM zU_tgRaMRWy)P%C3tgJ#&%#PFt6r}^qeD+Az=flN2i;G`aq!X5|&&LxIx;{V)@HYAY zYysHd24D-o1~&j(05-S**aEP@4Zs$F4Q>Fo0BrmP52nB9!TFjx00000NkvXXu0mjf D^I7*s delta 1128 zcmV-u1eg2L2>l3fFDZ*Bkpc${s^u?oW=6a~=P_Z639En-sF zx0Hn7ko-cCs#RzWs5JENJ9N!>hSTFVFJ{BE8v6KB)1JZ5Qjs{4YY~j=NFw_5jO~xw zZ1Z4rk7!e__PFo4BjHl1U<@Qev2S0&7)dz)vR^Qi)E6c7S$_`Ud=J!P-X=_|p&vwZ zE(>{C+rt0=1FlI#K~#90?V8VP9AzBFKa=bs6^YFuA!*Zvf`{G=38l@d^({U0w9}BI zl(?FIVi;Mv?s{m2Ou<8>LPdj!3B4o*^-#i~batfHQ?b>9V65Z^HYFt*+}-$k*xfjb zO|oGo`8H-gFn_%JgZF)&dG_6Rcjo;XuIqA;X^}P{O&ox<0cqj@qzyl+u~Z8x)I00Ips8 za90C~LO)ahm2w4u;9O9NcL{(sS~1QCUPYbKM~c;fq>o|>9! zH4J8(X+Q3|{o4EYA^S=@ZJkG0YwKXGt%G;JUSjr`%k9o{9O>y{e0)4NG&JUG zWBF#a4TIUjU!N0Jza=PcSvEk{vTTfPS|Iymt=dEB+nG$< zU@~!ozJI=#wmWwmXDm-(>}J|1^bOZ_ah$PyrCiQBSFhGatiQXt;l;&8o+~I$-h!oz z&-2T|>Xs*X^48{yl<#}mvTPnaxWDK634l~;Fl$*hmvXr+2MMyizRr5}E6C5ku5$dv z?hWJmk0*3b{z)>KWMX2%07(8cqBmQuJ+D|W&3|-uWo2dW^57eIs~B z$Z^KP#<#TXv70|U=Yrw1DHhy9~J>46R=jRumIvsuA)6HsoUa>GU zbAK}%R=**DouZV|&HnkQPro`*{Ar3pKU4t!2jYt%X#>*40Z1E=CJsQ_fHZLc(gvi7 z1CTZ#&4CXf)IGr{P)dpFANUy%2Ow=gnm7Py1Jc9+NE?tQ4j@ct>H2^u*w^&|QLwM; z1EOGG*9SyF!y4fGp5942ec}fI+7Gw$!hf;jEFZ2OcfY^Or-{!P=N?Vw!wINP=`X(gYS-%n=H}*5O6jKsAx3cDT%tZenuaytQZ8?t_hCJK z`gE$Pwxd=baH0+F{kRm^pRX40Jbd^YQ2luf?$195uL0uq0n!1)7emqpq=^HN uHXuzLfV2T=;sB%#ND~JjZ9tj>AHYA}RRjOTiBi%40000 Date: Wed, 16 Oct 2024 20:00:57 +0000 Subject: [PATCH 080/103] Automatic changelog for PR #87198 [ci skip] --- html/changelogs/AutoChangeLog-pr-87198.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87198.yml diff --git a/html/changelogs/AutoChangeLog-pr-87198.yml b/html/changelogs/AutoChangeLog-pr-87198.yml new file mode 100644 index 00000000000..90e21393f98 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87198.yml @@ -0,0 +1,5 @@ +author: "SmArtKar" +delete-after: True +changes: + - bugfix: "Chainsaws can now be sharpened" + - code_imp: "Chainsaws have received a minor code refactor" \ No newline at end of file From f88deefefeb81d906e100413f3e3e0e7b7ce0753 Mon Sep 17 00:00:00 2001 From: EnterTheJake <102721711+EnterTheJake@users.noreply.github.com> Date: Wed, 16 Oct 2024 22:02:08 +0200 Subject: [PATCH 081/103] Blade Heretic/Side knowledges improvements/fixes. (#87167) ## About The Pull Request Blade Heretic has received a few changes. The cost of crafting a Dark blade has been reduced in exchange for a lower blade capacity, The Dark blade itself has received a new sprite. ![Updated Dark Blade](https://github.com/user-attachments/assets/f5dde8a3-6827-4d4f-a530-0a1a01965a63) Realignment pulls you out stuns a bit faster and grants baton resistance while active. You may now infuse your blades with a (weaker) mansus grasp upon unlocking the ability to dual wield, they also gain increased demolition modifier. Mawed Crucible now slowly refills and requires fewer organs to brew a potion; you may now use a charge to refill your eldritch flask. The potion themselves have also received changes more on that below. The cooldown on the cursed curio shield has been reduced. Lionhunter's rifle no longer does increased damage on scoped targets, instead it marks them with Mansus grasp and teleports the heretic to them. Lastly Blade ascension has been fixed, you once again get the Ring of Blades. ## Why It's Good For The Game Oh boy, here we go. # **Blade Heretic changes** Blade Heretic sits in a pretty decent spot, I wouldn't call the path weak by any stretch of imagination, but there are few aspects that could be reasonably improved without changing the overall strength of the path significantly. **Sundered Blade** I think these are too expensive to craft, especially compared to the other blades which require very basic materials. It's not uncommon to run into situations where you just cannot afford to make more than a set of blades, and i'd argue it's not fun for the crew to have their titanium or silver deposit drained every time a blade heretic rolls around. As a solution, i'm halving the cost in exchange of lowering the cap from 5 to 4 blades. **Realingment** This spell is lowkey awful; 25 stamina regen per second really doesn't make much of a difference when you are getting chain batoned, I have footage of blade heretics dying to a single shove stun while this abilty was active. The stamina regen and reduce immobility timer has been buffed on top of granting baton resist so long as it stays active, so you can properly get in fighting position without getting constantly knocked down. Mind you, It's still no CNS rebooter, so stuns will still yield a few seconds of vulnerability. **Swift Blades reworked into Empowered Blades** You may now use your Mansus grasp to infuse your Dark blades. It comes with the tradeoff of losing the knockdown and the stamina damage, you still retain the backstab. Video Demonstration: https://www.youtube.com/watch?v=9cO9BOD8Zz4 Dark Blades also gain increased demolition modifier. Dual wielding puts the heretic in the annoying position of having to switch between the second Blade and an empty hand to use Mansus grasp. Blade is supposed to be a master of melee combat, but they are still a dark mage, so why shouldn't they be able to infuse their blades? It still comes with a tradeoff, I'd reckon super sweaty players will still want to hotswap, but hey, the option is there. The added demolition modifier is to provide Blade with some way of breaking in and out of places, given the path has no jaunts or utility whatsoever, this seems reasonable to me. Lastly Malestrom of Silver finally works now; you once again get the blade aura upon ascending. # **Side Knowledge changes** **Mawed Crucible** The crucible now passively refills, and has a special interaction to refill the Eldritch Flask, the potion themselves have received changes. - Xray Potion: duration bumped from 60 to 90 seconds. - Wall phasing potion: Duration bumped from 15 to 40 seconds, you may now recall to your original location at will. - Potion of the Wounded soldier: Upon expiring, it heals your wounds and regrows missing limbs. **Reasoning**: Let's be honest here, noone ever makes this thing, the cost of making 1 potion is exorbitant and the potion themselves are not even that good to begin with. I'm not gonna explain every change in detail, but considering the crucible is one of the OG side knoweldges and you hardly hear anyone talk about it, we can safely give it a few buffs. **Unfathomable Curio** Cooldown on the shield has been halved. **Reasoning**: discussed it with Rex (the guy who created it), 60 seconds for 1 block is a bit excessive , 30 seconds seems reasonable enough. **Lionhunter's Rifle** Made a bit easier to craft and maintain, it can now be stored in the vest slot of the Eldritch Robes. The homing projectile now fully penetrates armor instead of having bonus damage; it also marks the victim with Mansus grasp and teleports the Heretic directly to them, the homing on the projectile itself has been improved. **Reasoning**: another side knowledge that sadly barely sees any play. Frankly this gun just doesn't have a purpose to exist, long range weaponry don't really mix with Heretic toolkit all that well, as you want to get close to your target to drag em to the spook dimension, not snipe 'em from a distance Lionhunter now works as an initiation tool, upon marking the target, the Heretic transforms into the fired bullet until it connects, applying mansus grasp on the victim. Keep in mind you still need xray or thermals to use the rifle to its full potential, either from the Crucible or the ashen medallion. Video Demonstration: https://www.youtube.com/watch?v=AXmidKrx-Fg As a trade off, the damage has been halved from 60 to 30. ## Changelog :cl: balance: Sundered Blades now require 1 Titanium or Silver bar to craft and their capacity has been reduced to 4. balance: Realignment pulls you out of stuns a bit faster and grants baton resist while active. balance: Blade Heretic dual wielding now let's you infuse Your Dark Blades with a weaker mansus grasp and grants an increase in demolition modifier. fix: Malestrom of Silver grants the ring of protective blades once again. balance: Mawed Crucible requires 3 organs to brew one potion, passively refills overtime and can be used to refill the Eldritch Flask balance: Brew of Crucible soul effect bumped to 40 seconds and can be ended early. balance: Brew Of Dusk and Dawn effect bumped to 3 minutes. balance: Brew of the wounded soldier now offers a very minor passive heal and fully heals your wounds and limbs upon expiring. balance: Cursed Curio shield now recharges faster. balance: Lionhunter's rifle has been reworked, it now fits on the eldritch robes vest slots, it's cheaper to craft it and its ammunition and works as an initiation tool. /:cl: --------- Co-authored-by: Xander3359 <66163761+Xander3359@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> --- code/__DEFINES/dcs/signals/signals_object.dm | 2 + code/__DEFINES/dcs/signals/signals_spell.dm | 4 + code/__HELPERS/game.dm | 29 ++++++ code/datums/components/scope.dm | 10 ++ .../antagonists/heretic/heretic_knowledge.dm | 4 +- .../heretic/items/heretic_armor.dm | 2 +- .../heretic/items/heretic_blades.dm | 55 ++++++++++- .../antagonists/heretic/items/hunter_rifle.dm | 46 ++++++++- .../heretic/items/unfathomable_curio.dm | 4 +- .../antagonists/heretic/knowledge/ash_lore.dm | 2 +- .../heretic/knowledge/blade_lore.dm | 90 +++++++++++------- .../heretic/knowledge/cosmic_lore.dm | 2 +- .../heretic/knowledge/moon_lore.dm | 2 +- .../heretic/knowledge/rust_lore.dm | 2 + .../heretic/knowledge/side_blade_rust.dm | 12 +-- .../heretic/knowledge/void_lore.dm | 2 +- .../antagonists/heretic/magic/realignment.dm | 10 +- .../heretic/status_effects/buffs.dm | 36 ++++++- .../heretic/structures/carving_knife.dm | 1 + .../heretic/structures/mawed_crucible.dm | 33 ++++++- .../spells/spell_types/touch/_touch.dm | 4 + icons/mob/inhands/64x64_lefthand.dmi | Bin 130428 -> 135033 bytes icons/mob/inhands/64x64_righthand.dmi | Bin 132866 -> 138304 bytes icons/obj/weapons/khopesh.dmi | Bin 38734 -> 44193 bytes 24 files changed, 282 insertions(+), 70 deletions(-) diff --git a/code/__DEFINES/dcs/signals/signals_object.dm b/code/__DEFINES/dcs/signals/signals_object.dm index a9cc41b7d8d..53ac323b61c 100644 --- a/code/__DEFINES/dcs/signals/signals_object.dm +++ b/code/__DEFINES/dcs/signals/signals_object.dm @@ -15,6 +15,8 @@ /// from /obj/obj_reskin: (mob/user, skin) #define COMSIG_OBJ_RESKIN "obj_reskin" +#define COMSIG_LIONHUNTER_ON_HIT "lionhunter_on_hit" + // /obj/machinery signals ///from /obj/machinery/atom_break(damage_flag): (damage_flag) diff --git a/code/__DEFINES/dcs/signals/signals_spell.dm b/code/__DEFINES/dcs/signals/signals_spell.dm index 08074116be2..ebbdcc4e2be 100644 --- a/code/__DEFINES/dcs/signals/signals_spell.dm +++ b/code/__DEFINES/dcs/signals/signals_spell.dm @@ -66,6 +66,10 @@ // Touch spells /// Sent from /datum/action/cooldown/spell/touch/do_hand_hit: (atom/hit, mob/living/carbon/caster, obj/item/melee/touch_attack/hand) #define COMSIG_SPELL_TOUCH_HAND_HIT "spell_touch_hand_cast" +/// Sent from /datum/action/cooldown/spell/touch/cast: (mob/living/carbon/cast_on) +#define COMSIG_TOUCH_HANDLESS_CAST "spell_touch_handless_cast" + /// Return this to prevent the hand spawning/unspawning + #define COMPONENT_CAST_HANDLESS (1<<0) // Jaunt Spells /// Sent from datum/action/cooldown/spell/jaunt/before_cast, before the mob enters jaunting as a pre-check: (datum/action/cooldown/spell/spell) diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index 92c725bd81b..1740402e627 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -285,6 +285,35 @@ return pick(possible_loc) +///Checks to see if `atom/source` is behind `atom/target` +/proc/check_behind(atom/source, atom/target) + // Let's see if source is behind target + // "Behind" is defined as 3 tiles directly to the back of the target + // x . . + // x > . + // x . . + + // No tactical spinning allowed + if(HAS_TRAIT(target, TRAIT_SPINNING)) + return TRUE + + // We'll take "same tile" as "behind" for ease + if(target.loc == source.loc) + return TRUE + + // We'll also assume lying down is behind, as mob directions when lying are unclear + if(isliving(target)) + var/mob/living/living_target = target + if(living_target.body_position == LYING_DOWN) + return TRUE + + // Exceptions aside, let's actually check if they're, yknow, behind + var/dir_target_to_source = get_dir(target, source) + if(target.dir & REVERSE_DIR(dir_target_to_source)) + return TRUE + + return FALSE + ///Disable power in the station APCs /proc/power_fail(duration_min, duration_max) for(var/obj/machinery/power/apc/current_apc as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/power/apc)) diff --git a/code/datums/components/scope.dm b/code/datums/components/scope.dm index 46388a15e26..626668a48e0 100644 --- a/code/datums/components/scope.dm +++ b/code/datums/components/scope.dm @@ -170,8 +170,10 @@ tracker_owner_ckey = user.ckey if(user.is_holding(parent)) RegisterSignals(user, list(COMSIG_MOB_SWAP_HANDS, COMSIG_QDELETING), PROC_REF(stop_zooming)) + RegisterSignal(user, COMSIG_ATOM_ENTERING, PROC_REF(on_enter_new_loc)) else // The item is likely worn (eg. mothic cap) RegisterSignal(user, COMSIG_QDELETING, PROC_REF(stop_zooming)) + RegisterSignal(user, COMSIG_ATOM_ENTERING, PROC_REF(on_enter_new_loc)) var/static/list/capacity_signals = list( COMSIG_LIVING_STATUS_KNOCKDOWN, COMSIG_LIVING_STATUS_PARALYZE, @@ -182,6 +184,13 @@ ADD_TRAIT(user, TRAIT_USER_SCOPED, REF(src)) return TRUE +///Stop scoping if the `newloc` we move to is not a turf +/datum/component/scope/proc/on_enter_new_loc(datum/source, atom/newloc, atom/old_loc, list/atom/old_locs) + SIGNAL_HANDLER + + if(!isturf(newloc)) + stop_zooming(tracker.owner) + /datum/component/scope/proc/on_incapacitated(mob/living/source, amount = 0, ignore_canstun = FALSE) SIGNAL_HANDLER @@ -207,6 +216,7 @@ COMSIG_LIVING_STATUS_STUN, COMSIG_MOB_SWAP_HANDS, COMSIG_QDELETING, + COMSIG_ATOM_ENTERING, )) REMOVE_TRAIT(user, TRAIT_USER_SCOPED, REF(src)) diff --git a/code/modules/antagonists/heretic/heretic_knowledge.dm b/code/modules/antagonists/heretic/heretic_knowledge.dm index 94ecc0f9d77..fcdb1f19458 100644 --- a/code/modules/antagonists/heretic/heretic_knowledge.dm +++ b/code/modules/antagonists/heretic/heretic_knowledge.dm @@ -303,7 +303,7 @@ var/datum/status_effect/eldritch/mark_type /datum/heretic_knowledge/mark/on_gain(mob/user, datum/antagonist/heretic/our_heretic) - RegisterSignal(user, COMSIG_HERETIC_MANSUS_GRASP_ATTACK, PROC_REF(on_mansus_grasp)) + RegisterSignals(user, list(COMSIG_HERETIC_MANSUS_GRASP_ATTACK, COMSIG_LIONHUNTER_ON_HIT), PROC_REF(on_mansus_grasp)) RegisterSignal(user, COMSIG_HERETIC_BLADE_ATTACK, PROC_REF(on_eldritch_blade)) /datum/heretic_knowledge/mark/on_lose(mob/user, datum/antagonist/heretic/our_heretic) @@ -327,6 +327,8 @@ /datum/heretic_knowledge/mark/proc/on_eldritch_blade(mob/living/source, mob/living/target, obj/item/melee/sickly_blade/blade) SIGNAL_HANDLER + if(!isliving(target)) + return trigger_mark(source, target) /** diff --git a/code/modules/antagonists/heretic/items/heretic_armor.dm b/code/modules/antagonists/heretic/items/heretic_armor.dm index 8375c3ae443..a07150919aa 100644 --- a/code/modules/antagonists/heretic/items/heretic_armor.dm +++ b/code/modules/antagonists/heretic/items/heretic_armor.dm @@ -20,7 +20,7 @@ inhand_icon_state = null flags_inv = HIDESHOES|HIDEJUMPSUIT body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS - allowed = list(/obj/item/melee/sickly_blade) + allowed = list(/obj/item/melee/sickly_blade, /obj/item/gun/ballistic/rifle/lionhunter) hoodtype = /obj/item/clothing/head/hooded/cult_hoodie/eldritch // Slightly better than normal cult robes armor_type = /datum/armor/cultrobes_eldritch diff --git a/code/modules/antagonists/heretic/items/heretic_blades.dm b/code/modules/antagonists/heretic/items/heretic_blades.dm index ab98e1b9e4c..6e0d3d7d186 100644 --- a/code/modules/antagonists/heretic/items/heretic_blades.dm +++ b/code/modules/antagonists/heretic/items/heretic_blades.dm @@ -66,13 +66,11 @@ qdel(src) /obj/item/melee/sickly_blade/afterattack(atom/target, mob/user, click_parameters) - if(isliving(target)) - SEND_SIGNAL(user, COMSIG_HERETIC_BLADE_ATTACK, target, src) + SEND_SIGNAL(user, COMSIG_HERETIC_BLADE_ATTACK, target, src) /obj/item/melee/sickly_blade/ranged_interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) - if(isliving(interacting_with)) - SEND_SIGNAL(user, COMSIG_HERETIC_RANGED_BLADE_ATTACK, interacting_with, src) - return ITEM_INTERACT_BLOCKING + SEND_SIGNAL(user, COMSIG_HERETIC_RANGED_BLADE_ATTACK, interacting_with, src) + return ITEM_INTERACT_BLOCKING // Path of Rust's blade /obj/item/melee/sickly_blade/rust @@ -135,8 +133,55 @@ desc = "A galliant blade, sundered and torn. \ Furiously, the blade cuts. Silver scars bind it forever to its dark purpose." icon_state = "dark_blade" + base_icon_state = "dark_blade" inhand_icon_state = "dark_blade" after_use_message = "The Torn Champion hears your call..." + ///If our blade is currently infused with the mansus grasp + var/infused = FALSE + +/obj/item/melee/sickly_blade/dark/afterattack(atom/target, mob/user, click_parameters) + . = ..() + if(!infused || target == user || !isliving(target)) + return + var/datum/antagonist/heretic/heretic_datum = IS_HERETIC(user) + var/mob/living/living_target = target + if(!heretic_datum) + return + + //Apply our heretic mark + var/datum/heretic_knowledge/mark/blade_mark/mark_to_apply = heretic_datum.get_knowledge(/datum/heretic_knowledge/mark/blade_mark) + if(!mark_to_apply) + return + mark_to_apply.create_mark(user, living_target) + + //Remove the infusion from any blades we own (and update their sprite) + for(var/obj/item/melee/sickly_blade/dark/to_infuse in user.get_all_contents_type(/obj/item/melee/sickly_blade/dark)) + to_infuse.infused = FALSE + to_infuse.update_appearance(UPDATE_ICON) + user.update_held_items() + + if(!check_behind(user, living_target)) + return + // We're officially behind them, apply effects + living_target.AdjustParalyzed(1.5 SECONDS) + living_target.apply_damage(10, BRUTE, wound_bonus = CANT_WOUND) + living_target.balloon_alert(user, "backstab!") + playsound(living_target, 'sound/items/weapons/guillotine.ogg', 100, TRUE) + +/obj/item/melee/sickly_blade/dark/dropped(mob/user, silent) + . = ..() + if(infused) + infused = FALSE + update_appearance(UPDATE_ICON) + +/obj/item/melee/sickly_blade/dark/update_icon_state() + . = ..() + if(infused) + icon_state = base_icon_state + "_infused" + inhand_icon_state = base_icon_state + "_infused" + else + icon_state = base_icon_state + inhand_icon_state = base_icon_state // Path of Cosmos's blade /obj/item/melee/sickly_blade/cosmic diff --git a/code/modules/antagonists/heretic/items/hunter_rifle.dm b/code/modules/antagonists/heretic/items/hunter_rifle.dm index cb8636aed2b..92ed0d768b3 100644 --- a/code/modules/antagonists/heretic/items/hunter_rifle.dm +++ b/code/modules/antagonists/heretic/items/hunter_rifle.dm @@ -24,6 +24,7 @@ name = "lionhunter rifle internal magazine" ammo_type = /obj/item/ammo_casing/strilka310/lionhunter caliber = CALIBER_STRILKA310 + armour_penetration = 100 max_ammo = 3 multiload = TRUE @@ -32,7 +33,7 @@ /// Whether we're currently aiming this casing at something var/currently_aiming = FALSE /// How many seconds it takes to aim per tile of distance between the target - var/seconds_per_distance = 0.5 SECONDS + var/seconds_per_distance = 0.2 SECONDS /// The minimum distance required to gain a damage bonus from aiming var/min_distance = 4 @@ -115,14 +116,13 @@ // BUT, if we're at a decent range and the target's a living mob, // the projectile's been channel fired. It has full effects and homes in. if(distance > min_distance && isliving(target) && iscarbon(user)) - loaded_projectile.damage *= 2 loaded_projectile.stamina *= 2 loaded_projectile.knockdown = 0.5 SECONDS loaded_projectile.stutter = 6 SECONDS loaded_projectile.projectile_phasing = PASSTABLE | PASSGLASS | PASSGRILLE | PASSCLOSEDTURF | PASSMACHINE | PASSSTRUCTURE | PASSDOORS loaded_projectile.homing = TRUE - loaded_projectile.homing_turn_speed = 80 + loaded_projectile.homing_turn_speed = 150 loaded_projectile.set_homing_target(target) return ..() @@ -134,6 +134,46 @@ damage = 30 stamina = 30 projectile_phasing = PASSTABLE | PASSGLASS | PASSGRILLE | PASSCLOSEDTURF | PASSMACHINE | PASSSTRUCTURE | PASSDOORS + ///The mob that is currently inside the bullet + var/mob/stored_mob + +/obj/projectile/bullet/strilka310/lionhunter/fire(angle, atom/direct_target) + . = ..() + if(!isliving(firer) || !isliving(original)) + return + var/mob/living/living_firer = firer + if(IS_HERETIC(living_firer)) + living_firer.forceMove(src) + stored_mob = living_firer + + +/obj/projectile/bullet/strilka310/lionhunter/Exited(atom/movable/gone) + if(gone == stored_mob) + stored_mob = null + return ..() + +/obj/projectile/bullet/strilka310/lionhunter/on_range() + stored_mob?.forceMove(loc) + return ..() + +/obj/projectile/bullet/strilka310/lionhunter/on_hit(atom/target, blocked, pierce_hit) + stored_mob?.forceMove(loc) //Pretty important to get our mob out of the bullet + . = ..() + if(!isliving(target)) + return BULLET_ACT_HIT + var/mob/living/victim = target + var/mob/firing_mob = firer + if(IS_HERETIC_OR_MONSTER(victim) || !IS_HERETIC(firing_mob)) + return BULLET_ACT_HIT + + SEND_SIGNAL(firer, COMSIG_LIONHUNTER_ON_HIT, victim) + return BULLET_ACT_HIT + +/obj/projectile/bullet/strilka310/lionhunter/Destroy() + if(stored_mob) + stack_trace("Lionhunter bullet qdel'd with its firer still inside!") + stored_mob.forceMove(loc) + return ..() // Extra ammunition can be made with a heretic ritual. /obj/item/ammo_box/strilka310/lionhunter diff --git a/code/modules/antagonists/heretic/items/unfathomable_curio.dm b/code/modules/antagonists/heretic/items/unfathomable_curio.dm index eff1fa7ea2f..d5f09a1dc27 100644 --- a/code/modules/antagonists/heretic/items/unfathomable_curio.dm +++ b/code/modules/antagonists/heretic/items/unfathomable_curio.dm @@ -11,8 +11,8 @@ //Vars used for the shield component var/heretic_shield_icon = "unfathomable_shield" var/max_charges = 1 - var/recharge_start_delay = 60 SECONDS - var/charge_increment_delay = 60 SECONDS + var/recharge_start_delay = 30 SECONDS + var/charge_increment_delay = 30 SECONDS var/charge_recovery = 1 /obj/item/storage/belt/unfathomable_curio/Initialize(mapload) diff --git a/code/modules/antagonists/heretic/knowledge/ash_lore.dm b/code/modules/antagonists/heretic/knowledge/ash_lore.dm index 111c1b8cbf7..f897aebc3fb 100644 --- a/code/modules/antagonists/heretic/knowledge/ash_lore.dm +++ b/code/modules/antagonists/heretic/knowledge/ash_lore.dm @@ -165,7 +165,7 @@ research_tree_icon_state = "blade_upgrade_ash" /datum/heretic_knowledge/blade_upgrade/ash/do_melee_effects(mob/living/source, mob/living/target, obj/item/melee/sickly_blade/blade) - if(source == target) + if(source == target || !isliving(target)) return target.adjust_fire_stacks(1) diff --git a/code/modules/antagonists/heretic/knowledge/blade_lore.dm b/code/modules/antagonists/heretic/knowledge/blade_lore.dm index dc76f242c01..c24ed2c273f 100644 --- a/code/modules/antagonists/heretic/knowledge/blade_lore.dm +++ b/code/modules/antagonists/heretic/knowledge/blade_lore.dm @@ -32,16 +32,16 @@ /datum/heretic_knowledge/limited_amount/starting/base_blade name = "The Cutting Edge" desc = "Opens up the Path of Blades to you. \ - Allows you to transmute a knife with two bars of silver or titanium to create a Sundered Blade. \ - You can create up to five at a time." + Allows you to transmute a knife with one bar of silver or titanium to create a Sundered Blade. \ + You can create up to four at a time." gain_text = "Our great ancestors forged swords and practiced sparring on the eve of great battles." next_knowledge = list(/datum/heretic_knowledge/blade_grasp) required_atoms = list( /obj/item/knife = 1, - list(/obj/item/stack/sheet/mineral/silver, /obj/item/stack/sheet/mineral/titanium) = 2, + list(/obj/item/stack/sheet/mineral/silver, /obj/item/stack/sheet/mineral/titanium) = 1, ) result_atoms = list(/obj/item/melee/sickly_blade/dark) - limit = 5 // It's the blade path, it's a given + limit = 4 // It's the blade path, it's a given route = PATH_BLADE research_tree_icon_path = 'icons/obj/weapons/khopesh.dmi' research_tree_icon_state = "dark_blade" @@ -67,40 +67,16 @@ /datum/heretic_knowledge/blade_grasp/proc/on_mansus_grasp(mob/living/source, mob/living/target) SIGNAL_HANDLER - // Let's see if source is behind target - // "Behind" is defined as 3 tiles directly to the back of the target - // x . . - // x > . - // x . . - - var/are_we_behind = FALSE - // No tactical spinning allowed - if(HAS_TRAIT(target, TRAIT_SPINNING)) - are_we_behind = TRUE - - // We'll take "same tile" as "behind" for ease - if(target.loc == source.loc) - are_we_behind = TRUE - - // We'll also assume lying down is behind, as mob directions when lying are unclear - if(target.body_position == LYING_DOWN) - are_we_behind = TRUE - - // Exceptions aside, let's actually check if they're, yknow, behind - var/dir_target_to_source = get_dir(target, source) - if(target.dir & REVERSE_DIR(dir_target_to_source)) - are_we_behind = TRUE - - if(!are_we_behind) + if(!check_behind(source, target)) return // We're officially behind them, apply effects target.AdjustParalyzed(1.5 SECONDS) target.apply_damage(10, BRUTE, wound_bonus = CANT_WOUND) target.balloon_alert(source, "backstab!") - playsound(get_turf(target), 'sound/items/weapons/guillotine.ogg', 100, TRUE) + playsound(target, 'sound/items/weapons/guillotine.ogg', 100, TRUE) -/// The cooldown duration between trigers of blade dance +/// The cooldown duration between triggers of blade dance #define BLADE_DANCE_COOLDOWN (20 SECONDS) /datum/heretic_knowledge/blade_dance @@ -315,10 +291,11 @@ #undef BLOOD_FLOW_PER_SEVEIRTY /datum/heretic_knowledge/blade_upgrade/blade - name = "Swift Blades" + name = "Empowered Blades" desc = "Attacking someone with a Sundered Blade in both hands \ will now deliver a blow with both at once, dealing two attacks in rapid succession. \ - The second blow will be slightly weaker." + The second blow will be slightly weaker. \ + You are able to infuse your mansus grasp directly into your blades, and your blades are more effective against structures." gain_text = "I found him cleaved in twain, halves locked in a duel without end; \ a flurry of blades, neither hitting their mark, for the Champion was indomitable." next_knowledge = list(/datum/heretic_knowledge/spell/furious_steel) @@ -330,7 +307,39 @@ /// How much force was the last weapon we offhanded with? If it's different, we need to re-calculate the decrement var/last_weapon_force = -1 -/datum/heretic_knowledge/blade_upgrade/blade/do_melee_effects(mob/living/source, mob/living/target, obj/item/melee/sickly_blade/blade) +/datum/heretic_knowledge/blade_upgrade/blade/on_gain(mob/user, datum/antagonist/heretic/our_heretic) + . = ..() + RegisterSignal(user, COMSIG_TOUCH_HANDLESS_CAST, PROC_REF(on_grasp_cast)) + RegisterSignal(user, COMSIG_MOB_EQUIPPED_ITEM, PROC_REF(on_blade_equipped)) + RegisterSignal(user, COMSIG_HERETIC_BLADE_ATTACK, PROC_REF(do_melee_effects)) + +/datum/heretic_knowledge/blade_upgrade/blade/on_lose(mob/user, datum/antagonist/heretic/our_heretic) + . = ..() + UnregisterSignal(user, list(COMSIG_TOUCH_HANDLESS_CAST, COMSIG_MOB_EQUIPPED_ITEM, COMSIG_HERETIC_BLADE_ATTACK)) + +///Tries to infuse our held blade with our mansus grasp +/datum/heretic_knowledge/blade_upgrade/blade/proc/on_grasp_cast(mob/living/carbon/cast_on) + SIGNAL_HANDLER + + var/held_item = cast_on.get_active_held_item() + if(!istype(held_item, /obj/item/melee/sickly_blade/dark)) + return NONE + var/obj/item/melee/sickly_blade/dark/held_blade = held_item + if(held_blade.infused) + return NONE + held_blade.infused = TRUE + held_blade.update_appearance(UPDATE_ICON) + + //Infuse our off-hand blade just so it's nicer visually + var/obj/item/melee/sickly_blade/dark/off_hand_blade = cast_on.get_inactive_held_item() + if(istype(off_hand_blade, /obj/item/melee/sickly_blade/dark)) + off_hand_blade.infused = TRUE + off_hand_blade.update_appearance(UPDATE_ICON) + cast_on.update_held_items() + + return COMPONENT_CAST_HANDLESS + +/datum/heretic_knowledge/blade_upgrade/blade/do_melee_effects(mob/living/source, atom/target, obj/item/melee/sickly_blade/blade) if(target == source) return @@ -345,7 +354,7 @@ // Give it a short delay (for style, also lets people dodge it I guess) addtimer(CALLBACK(src, PROC_REF(follow_up_attack), source, target, off_hand), 0.25 SECONDS) -/datum/heretic_knowledge/blade_upgrade/blade/proc/follow_up_attack(mob/living/source, mob/living/target, obj/item/melee/sickly_blade/blade) +/datum/heretic_knowledge/blade_upgrade/blade/proc/follow_up_attack(mob/living/source, atom/target, obj/item/melee/sickly_blade/blade) if(QDELETED(source) || QDELETED(target) || QDELETED(blade)) return // Sanity to ensure that the blade we're delivering an offhand attack with is ACTUALLY our offhand @@ -372,13 +381,20 @@ // Save the force as our last weapon force last_weapon_force = blade.force - // Subtract the decrement - blade.force -= offand_force_decrement + // Subtract the decrement, but only if the target is living + if(isliving(target)) + blade.force -= offand_force_decrement // Perform the offhand attack blade.melee_attack_chain(source, target) // Restore the force. blade.force = last_weapon_force +///Modifies our blade demolition modifier so we can take down doors with it +/datum/heretic_knowledge/blade_upgrade/blade/proc/on_blade_equipped(mob/user, obj/item/equipped, slot) + SIGNAL_HANDLER + if(istype(equipped, /obj/item/melee/sickly_blade/dark)) + equipped.demolition_mod = 1.5 + /datum/heretic_knowledge/spell/furious_steel name = "Furious Steel" desc = "Grants you Furious Steel, a targeted spell. Using it will summon three \ diff --git a/code/modules/antagonists/heretic/knowledge/cosmic_lore.dm b/code/modules/antagonists/heretic/knowledge/cosmic_lore.dm index f6e364766f6..af92a55f499 100644 --- a/code/modules/antagonists/heretic/knowledge/cosmic_lore.dm +++ b/code/modules/antagonists/heretic/knowledge/cosmic_lore.dm @@ -172,7 +172,7 @@ ORGAN_SLOT_LIVER, ORGAN_SLOT_BRAIN ) - if(source == target) + if(source == target || !isliving(target)) return if(combo_timer) deltimer(combo_timer) diff --git a/code/modules/antagonists/heretic/knowledge/moon_lore.dm b/code/modules/antagonists/heretic/knowledge/moon_lore.dm index 99ee675c8ec..b23ed148611 100644 --- a/code/modules/antagonists/heretic/knowledge/moon_lore.dm +++ b/code/modules/antagonists/heretic/knowledge/moon_lore.dm @@ -152,7 +152,7 @@ research_tree_icon_state = "blade_upgrade_moon" /datum/heretic_knowledge/blade_upgrade/moon/do_melee_effects(mob/living/source, mob/living/target, obj/item/melee/sickly_blade/blade) - if(source == target) + if(source == target || !isliving(target)) return target.adjustOrganLoss(ORGAN_SLOT_BRAIN, 10, 100) diff --git a/code/modules/antagonists/heretic/knowledge/rust_lore.dm b/code/modules/antagonists/heretic/knowledge/rust_lore.dm index c1c1e2a4a04..9d45e8bb55b 100644 --- a/code/modules/antagonists/heretic/knowledge/rust_lore.dm +++ b/code/modules/antagonists/heretic/knowledge/rust_lore.dm @@ -176,6 +176,8 @@ our_heretic.increase_rust_strength() /datum/heretic_knowledge/blade_upgrade/rust/do_melee_effects(mob/living/source, mob/living/target, obj/item/melee/sickly_blade/blade) + if(source == target || !isliving(target)) + return target.adjust_disgust(50) /datum/heretic_knowledge/spell/area_conversion/on_gain(mob/user, datum/antagonist/heretic/our_heretic) diff --git a/code/modules/antagonists/heretic/knowledge/side_blade_rust.dm b/code/modules/antagonists/heretic/knowledge/side_blade_rust.dm index 2bae6ed5402..8a1fe6b5a87 100644 --- a/code/modules/antagonists/heretic/knowledge/side_blade_rust.dm +++ b/code/modules/antagonists/heretic/knowledge/side_blade_rust.dm @@ -44,12 +44,12 @@ /datum/heretic_knowledge/rifle name = "Lionhunter's Rifle" - desc = "Allows you to transmute any ballistic weapon, such as a pipegun, with hide \ - from any animal, a plank of wood, and a camera to create the Lionhunter's rifle. \ + desc = "Allows you to transmute a piece of wood, with hide \ + from any animal,and a camera to create the Lionhunter's rifle. \ The Lionhunter's Rifle is a long ranged ballistic weapon with three shots. \ These shots function as normal, albeit weak high-caliber munitions when fired from \ close range or at inanimate objects. You can aim the rifle at distant foes, \ - causing the shot to deal massively increased damage and hone in on them." + causing the shot to mark your victim with your grasp and teleport you directly to them." gain_text = "I met an old man in an antique shop who wielded a very unusual weapon. \ I could not purchase it at the time, but they showed me how they made it ages ago." next_knowledge = list( @@ -58,9 +58,8 @@ /datum/heretic_knowledge/rifle_ammo, ) required_atoms = list( - /obj/item/gun/ballistic = 1, - /obj/item/stack/sheet/animalhide = 1, /obj/item/stack/sheet/mineral/wood = 1, + /obj/item/stack/sheet/animalhide = 1, /obj/item/camera = 1, ) result_atoms = list(/obj/item/gun/ballistic/rifle/lionhunter) @@ -73,12 +72,11 @@ /datum/heretic_knowledge/rifle_ammo name = "Lionhunter Rifle Ammunition" desc = "Allows you to transmute 3 ballistic ammo casings (used or unused) of any caliber, \ - including shotgun shot, with any animal hide to create an extra clip of ammunition for the Lionhunter Rifle." + including shotgun shells to create an extra clip of ammunition for the Lionhunter Rifle." gain_text = "The weapon came with three rough iron balls, intended to be used as ammunition. \ They were very effective, for simple iron, but used up quickly. I soon ran out. \ No replacement munitions worked in their stead. It was peculiar in what it wanted." required_atoms = list( - /obj/item/stack/sheet/animalhide = 1, /obj/item/ammo_casing = 3, ) result_atoms = list(/obj/item/ammo_box/strilka310/lionhunter) diff --git a/code/modules/antagonists/heretic/knowledge/void_lore.dm b/code/modules/antagonists/heretic/knowledge/void_lore.dm index 6daa1d6fd42..4eb84326eb6 100644 --- a/code/modules/antagonists/heretic/knowledge/void_lore.dm +++ b/code/modules/antagonists/heretic/knowledge/void_lore.dm @@ -176,7 +176,7 @@ research_tree_icon_state = "blade_upgrade_void" /datum/heretic_knowledge/blade_upgrade/void/do_melee_effects(mob/living/source, mob/living/target, obj/item/melee/sickly_blade/blade) - if(source == target) + if(source == target || !isliving(target)) return target.apply_status_effect(/datum/status_effect/void_chill, 2) diff --git a/code/modules/antagonists/heretic/magic/realignment.dm b/code/modules/antagonists/heretic/magic/realignment.dm index 8ad6ce78299..86d2ff78c54 100644 --- a/code/modules/antagonists/heretic/magic/realignment.dm +++ b/code/modules/antagonists/heretic/magic/realignment.dm @@ -54,12 +54,14 @@ alert_type = /atom/movable/screen/alert/status_effect/realignment tick_interval = 0.2 SECONDS show_duration = TRUE + ///Traits to add/remove + var/list/realignment_traits = list(TRAIT_BATON_RESISTANCE, TRAIT_PACIFISM) /datum/status_effect/realignment/get_examine_text() return span_notice("[owner.p_Theyre()] glowing a soft white.") /datum/status_effect/realignment/on_apply() - ADD_TRAIT(owner, TRAIT_PACIFISM, id) + owner.add_traits(realignment_traits, id) owner.add_filter(id, 2, list("type" = "outline", "color" = "#d6e3e7", "size" = 2)) var/filter = owner.get_filter(id) animate(filter, alpha = 127, time = 1 SECONDS, loop = -1) @@ -67,12 +69,12 @@ return TRUE /datum/status_effect/realignment/on_remove() - REMOVE_TRAIT(owner, TRAIT_PACIFISM, id) + owner.remove_traits(realignment_traits, id) owner.remove_filter(id) /datum/status_effect/realignment/tick(seconds_between_ticks) - owner.adjustStaminaLoss(-5) - owner.AdjustAllImmobility(-0.5 SECONDS) + owner.adjustStaminaLoss(-10) + owner.AdjustAllImmobility(-1 SECONDS) /atom/movable/screen/alert/status_effect/realignment name = "Realignment" diff --git a/code/modules/antagonists/heretic/status_effects/buffs.dm b/code/modules/antagonists/heretic/status_effects/buffs.dm index 387301f2c48..d82d145b3ef 100644 --- a/code/modules/antagonists/heretic/status_effects/buffs.dm +++ b/code/modules/antagonists/heretic/status_effects/buffs.dm @@ -4,9 +4,10 @@ /datum/status_effect/crucible_soul id = "Blessing of Crucible Soul" status_type = STATUS_EFFECT_REFRESH - duration = 15 SECONDS + duration = 40 SECONDS alert_type = /atom/movable/screen/alert/status_effect/crucible_soul show_duration = TRUE + ///Stores the location where the mob drank the potion, used to teleport the drinker back to the spot after expiration var/turf/location /datum/status_effect/crucible_soul/on_apply() @@ -14,6 +15,8 @@ owner.alpha = 180 owner.pass_flags |= PASSCLOSEDTURF | PASSGLASS | PASSGRILLE | PASSMACHINE | PASSSTRUCTURE | PASSTABLE | PASSMOB | PASSDOORS | PASSVEHICLE location = get_turf(owner) + var/datum/action/cancel_crucible_soul/cancel_button = new(src) + cancel_button.Grant(owner) return TRUE /datum/status_effect/crucible_soul/on_remove() @@ -26,11 +29,25 @@ /datum/status_effect/crucible_soul/get_examine_text() return span_notice("[owner.p_They()] [owner.p_do()]n't seem to be all here.") +/datum/action/cancel_crucible_soul + name = "Recall" + desc = "Use to end the blessing early" + button_icon = 'icons/obj/antags/eldritch.dmi' + button_icon_state = "crucible_soul" + +/datum/action/cancel_crucible_soul/Trigger(trigger_flags) + . = ..() + if(!.) + return + var/datum/status_effect/active_effect = owner.has_status_effect(/datum/status_effect/crucible_soul) + target = active_effect + qdel(target) + // DUSK AND DAWN /datum/status_effect/duskndawn id = "Blessing of Dusk and Dawn" status_type = STATUS_EFFECT_REFRESH - duration = 60 SECONDS + duration = 90 SECONDS show_duration = TRUE alert_type =/atom/movable/screen/alert/status_effect/duskndawn @@ -58,12 +75,24 @@ /datum/status_effect/marshal/on_remove() owner.remove_movespeed_mod_immunities(id, /datum/movespeed_modifier/damage_slowdown) + if(!iscarbon(owner)) + return + var/mob/living/carbon/drinker = owner + for(var/obj/item/bodypart/potentially_wounded as anything in drinker.bodyparts) + for(var/datum/wound/found_wound as anything in potentially_wounded.wounds) + found_wound.remove_wound() + if(length(drinker.get_missing_limbs())) + drinker.regenerate_limbs() + to_chat(drinker, span_hypnophrase("The mansus has given you new limbs.")) + playsound(drinker, 'sound/effects/chemistry/ahaha.ogg', 50, TRUE, -1, extrarange = SILENCED_SOUND_EXTRARANGE, frequency = 0.5) /datum/status_effect/marshal/tick(seconds_between_ticks) if(!iscarbon(owner)) return var/mob/living/carbon/carbie = owner + carbie.adjustBruteLoss(-0.5 * seconds_between_ticks, updating_health = FALSE) + carbie.adjustFireLoss(-0.5 * seconds_between_ticks, updating_health = FALSE) for(var/BP in carbie.bodyparts) var/obj/item/bodypart/part = BP for(var/W in part.wounds) @@ -161,7 +190,8 @@ if(QDELETED(src) || QDELETED(owner)) return - var/obj/effect/floating_blade/blade = new blade_type(get_turf(owner)) + var/obj/effect/floating_blade/blade + blade = new blade_type(get_turf(owner)) blades += blade blade.orbit(owner, blade_orbit_radius) RegisterSignal(blade, COMSIG_QDELETING, PROC_REF(remove_blade)) diff --git a/code/modules/antagonists/heretic/structures/carving_knife.dm b/code/modules/antagonists/heretic/structures/carving_knife.dm index b93b52eb8e8..f3d37b87682 100644 --- a/code/modules/antagonists/heretic/structures/carving_knife.dm +++ b/code/modules/antagonists/heretic/structures/carving_knife.dm @@ -163,6 +163,7 @@ name = "elder carving" desc = "Collection of unknown symbols, they remind you of days long gone..." icon = 'icons/obj/service/hand_of_god_structures.dmi' + max_integrity = 60 /// A tip displayed to heretics who examine the rune carver. Explains what the rune does. var/carver_tip /// Reference to trap owner mob diff --git a/code/modules/antagonists/heretic/structures/mawed_crucible.dm b/code/modules/antagonists/heretic/structures/mawed_crucible.dm index ea962cbc5a4..5f329cfd7c7 100644 --- a/code/modules/antagonists/heretic/structures/mawed_crucible.dm +++ b/code/modules/antagonists/heretic/structures/mawed_crucible.dm @@ -11,15 +11,26 @@ anchored = TRUE density = TRUE ///How much mass this currently holds - var/current_mass = 5 + var/current_mass = 3 ///Maximum amount of mass - var/max_mass = 5 + var/max_mass = 3 ///Check to see if it is currently being used. var/in_use = FALSE + ///Cooldown for the crucible to create mass from the eldritch + COOLDOWN_DECLARE(refill_cooldown) /obj/structure/destructible/eldritch_crucible/Initialize(mapload) . = ..() break_message = span_warning("[src] falls apart with a thud!") + START_PROCESSING(SSobj, src) + +/obj/structure/destructible/eldritch_crucible/process(seconds_per_tick) + if(COOLDOWN_TIMELEFT(src, refill_cooldown)) + return + COOLDOWN_START(src, refill_cooldown, 30 SECONDS) + current_mass++ + playsound(src, 'sound/items/eatfood.ogg', 100, TRUE) + update_appearance(UPDATE_ICON_STATE) /obj/structure/destructible/eldritch_crucible/atom_deconstruct(disassembled = TRUE) // Create a spillage if we were destroyed with leftover mass @@ -40,6 +51,9 @@ if(!IS_HERETIC_OR_MONSTER(user) && !isobserver(user)) return + if(current_mass > 0) + . += span_notice("You can refill an eldritch flask with this") + if(current_mass < max_mass) var/to_fill = max_mass - current_mass . += span_notice("[src] requires [to_fill] more organ[to_fill == 1 ? "":"s"] or bodypart[to_fill == 1 ? "":"s"].") @@ -99,6 +113,19 @@ set_anchored(!anchored) balloon_alert(user, "[anchored ? "":"un"]anchored") return ITEM_INTERACT_SUCCESS + if(istype(tool, /obj/item/reagent_containers/cup/beaker/eldritch)) + if(current_mass < max_mass) + balloon_alert(user, "not full enough!") + return ITEM_INTERACT_SUCCESS + var/obj/item/reagent_containers/cup/beaker/eldritch/to_fill = tool + if(to_fill.reagents.total_volume >= to_fill.reagents.maximum_volume) + balloon_alert(user, "flask is full!") + return ITEM_INTERACT_SUCCESS + to_fill.reagents.add_reagent(/datum/reagent/eldritch, 50) + do_item_attack_animation(src, used_item = tool) + current_mass-- + balloon_alert(user, "refilled flask") + return ITEM_INTERACT_SUCCESS /obj/structure/destructible/eldritch_crucible/attack_hand(mob/user, list/modifiers) . = ..() @@ -273,7 +300,7 @@ desc = "A glass bottle contianing a dull yellow liquid. It seems to fade in and out with regularity." icon_state = "clarity" status_effect = /datum/status_effect/duskndawn - crucible_tip = "Allows you to see through walls and objects. Lasts 60 seconds." + crucible_tip = "Allows you to see through walls and objects. Lasts 90 seconds." /obj/item/eldritch_potion/wounded name = "brew of the wounded soldier" diff --git a/code/modules/spells/spell_types/touch/_touch.dm b/code/modules/spells/spell_types/touch/_touch.dm index 24eefe04d10..49d1f24e39c 100644 --- a/code/modules/spells/spell_types/touch/_touch.dm +++ b/code/modules/spells/spell_types/touch/_touch.dm @@ -153,6 +153,10 @@ return ..() | SPELL_NO_FEEDBACK | SPELL_NO_IMMEDIATE_COOLDOWN /datum/action/cooldown/spell/touch/cast(mob/living/carbon/cast_on) + if(SEND_SIGNAL(cast_on, COMSIG_TOUCH_HANDLESS_CAST) & COMPONENT_CAST_HANDLESS) + StartCooldown() + return ..() + if(!QDELETED(attached_hand) && (attached_hand in cast_on.held_items)) remove_hand(cast_on, reset_cooldown_after = TRUE) return diff --git a/icons/mob/inhands/64x64_lefthand.dmi b/icons/mob/inhands/64x64_lefthand.dmi index 4ef1c071abfa24d294bb6ea6be77e113f33d9796..e5dc62260453a506f834aa461dfeb3266c929a94 100644 GIT binary patch literal 135033 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≪$`7Z4)0e4JY*;SuTP2 z^f3$&%3Y^;#iD*4Ia5W;g|!vKCmo3>|0fY?7LuuATVNXrd>*E+_fUGYYSuz7N-k=QM7(}7+IzxgMuyK$a zs(6Z|j5rqTow0-B$IV1I+ZR3S-nFb)&MXH(R(RNh6RzW1e^I2RySRp=_4S#ctS{)% zC04S3h(5idVHGqSC=-Gl&w~6VHT{12l*k34wSj?hsZ`~r@SN%%0Dp^_tziD$#1OYC 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 CmgMsQ literal 130428 zcmdqJ2UJtp_dg1w13C&A8%R}95fK=qNmoG-5F!>j#GyzB={1RpN{}WZqIBs>iS(X~ zO0QBwO{A9qfj|f(BzgBT&iBpy-v7O~-dpd#*6;taR#xu0=iGDl+57B$K6~$T6LH%} zm+LqF-`LpLxb$vn-(h1ra25O>-~jH3-N5g%v9X5)-!t>ocJQ(Dc7EjR?CHVA7MQZ~ zrorRe>Eq8G=@Pd~E#9tNF_8=Wc=Z0M*QTF~C(ma*_{=80J{FKaP`gvoHuT~8;hO~Y zlzmonGw_X)iFk^KKw7WahZ7Qd!s35Cf^>S_c`eGbFJ`KB0{2zr(M|o!)4xP}C|@u& z9vLkA{lQnWJFnFab93;QXP;fXi}?h}H<3v^wSP#nxc%GX56{xxoQ>|g5S?qUqaO9q zIO5UCB{TEtTj%+{Cg|FZ>X{lm*nVfl9eU3AC@;asD~o;T$sh5HZ;g-2Am_E(q8`05 z71Q7dEIL8U%((hQ+)ahp{Jm-IW$7P}!?cOSv?t0znfJzYZbPeE(Fxyj6Mp3WVdyMw zU2yK}iFn+a@6oE-__tdzPyuDv{--jb$1|+_Wb-c|4{j}n>A21Y4TvwR>v5-gx9a@Z z&BdA+A4O-n4O=#g3XGxoZrU3kC3K0%@*#80Ypdxmm@P1oZyrapWM)?uS6=v(j-cCu ztGG1TZ`mAbGd%Y=nvLx=o1XTydx0s-6Cw3){8F#1^<+o{1+XjpE~hUy-qhDA?fT;! z!(H3_VuWjleooxf+oQE-1M8n94oJVqueczY^Wp9D>Vkypy!{G38`pyl%3R24efbM# z#pVu!y~nG2Qt*YcUxr(p_kHLyqn8n_Qr zEY1H10~`1}0H_mtT@moKG@nH#Mta%(r2Aik75ZF_DvS49mW&giB>Hiqy!=aJ;OD%v zn5Et9vfW1igN_UQxQ~0VW!AHwgv2Q(jgE~8cr&)Pwmi^S-^IQcR@elGzu5DyVaTeQ z5D2w#RP|bPA*%-06&=#Y^Jbzq2lI0@mD#HjDqGdP6as~2YlZyDuUX|s&}IrUmQU&4 zPePLRS(EG>$aGB`EYHPefa1Rhr`TPMT`&E68viPp5?dZW7kGTZ^Y@%Sox73%eY0@V z1_tx+6-C$)&MyGKbf6m1ZzIF`qegGLf z5z<)w$4{Euse$RzPMx{)3i2&JxTUkb8Bla9~&89X)JO!Rhd%Lt_Mpr)ETaOHO1`Oqic&Fe;yP) zW?^wHZExnWYO{~|luZ7o6oTjf%x$nS4_m1m^H^^ci*0;$Mr#TnqWkQV;L&l3ySZl< zYyHREt8`=v7H7}wv7lWGFeQrQBcSx)vu6MsC=i4K?Fxqc3NUriYI}0P85mvnN_pVQ;`L#f9$)PLc;SsI6Li61a~RywGU*pwO&D6tF!$mTUkYWYig( z{j&D0ubezRd%EH-b)6=Gy=+?J0qaH-|DRG&_c@L8d;%_}v#Gl`XKUEn2?U3#3I9mD zSaroJ*RHzECd}*N8jxSdXz6nAZ=n@QT};>UUTTrklg2ealtolP@v4OIYelVY+@2V{7nwFZCvaYSU{6(<>uj zEH2Q5KeF(W!ON1)TVtk&ZV<#MgpeDt@N-=Vy32=!kZfiMdZ7fJJ>m(IIu4H=K$1?V zZzagnR|=l%tQboZe#ts@G&}$2;EVlviNZlM5YoYceH6kdIOG89#YfhV2|!CGQ|T6? zsuCdbCDD4)f3msL~*jG)c%d`I(i2Zvrlej7l#f;1Vk1cq8^J+o}uNvFH+ zu$kHfIov_)|4m@%RtZTjX}S;!bolTk96EsP0iJNp9j0nCsNg97k8kpuvuXq$SCiW% z<56=-8Txtf-6P|lH+gT!H6gTeq3JfSkEH?=$zd9^iVPT8Ov^-?E~84C5=-;6UJ{`Y zY6mozuznwr{MKMUPR$?r`ZWadPMpWq>LU-(u2q}J4e431v|b#JI3@S+tlY!SBSepK zZ$@5F?@~=~C#B~_g*SuFzyi%8XoM?E=?@E!QLtVEnq6k%OUUVbWKxNd8mr37qK2u? zs(K3!3iFV!Wf~khdC6(vS4(S2!z;!@HNE2xJKx2HuC@?fl0tX0uS`BW)>zXCA}tgA zv6^1~-Kacq@2s5&S@k%9E@;$Z#JCf}_7-$T$0u3VPUkYUwnlcYRW@z<1JHQ4@m*SL zv>V@JHmAqrMGfqXiX7V+B@j%$?DkRH)b^0ql+6|Q78CdftRyB<{syFMwD$jo(DQ#y z!2I8wYJBcs==wk4d@xop`1MbSH58IU`5VscV`Ixu+0aS#vY=6WH+s}$Ix5(r6+8z{ zIp!cm)LEU*=Ec7{6$WK>SIaZ#3pj z_m5RLCaSVTIHDak3qNoUz-i~r51);iu3cwn^^3|dd??NWV z&1!v}0m?FkiCMRTHsmJgHzH5YJ|xZRF#Z9W+1T>2MMm#aviBW~CQlEpc(KT)S-m)i zqD!_mMWTfz3vMb#V@amqovEaC)^2_}$X?%NVb}BE7r<9b-*UJpI7D zqx3nC^5+yXbrX0V95)`^cVuN{MTo07L?1v(H{c0MnjKV3LxVao=f<;fr)Tn ze+XWP_0n!sKhqrjdJmDZu~8}pCF0}hiCBJ3n~7mMlGA!?rEiKUBLFZO81wC!_cVQh z$>{Fq;CevA+a4pKL|A;CSLw?jPrlb5(dCe|YYeC>?DCK0QW|c?<5i(8Uf_lOlBD}H z$J;EJ6YTPXhvp1dZ>5_ivLr68%ajCeO#sx2xC0dka|Unlfy^a#R1Alygl+ofhm~3# zLCSr+)wrYeVRAVY@Ob*vji}T#j`^#3?1^So+_E01J%6k9v+9nm!6@H7g?X~YYH1rtIO#=|5fFu+Ig14i~pc*#PpRajm2SrFFw8r6PD?q|DgQ7vg z2>&X%&-}CQzn0v$&)nZUgZjjI8bF_Ri+wqebz1M-tVkVwwN9bd<*Yjb52sE*ASHk^ z44~0i6po77wKIq6l#!Q?PyzAzXkiq0-AbjU z8o5<0ZgqWgvEPSkj~dVaC-T0nM{~iS>o94KpXe4j7+S3uX*5-0&YYEDJZ@XvG&0v zB#>?x^G{~Yrw8Eylhin+B%`VH)>GJyYUZ>02{m3+cHrgF4Hw@;5nPmtSl?I<6NbxS z9_l@?w-XSjRQ;?&^NL@#PN+m?T#!ZU1niU)GxKibv%IaBut%cT0E4mnwRYRcjF)h* zK-9acTl9i{XF;zuqOgD^qrKNm6ZehhBiL>MAYi>m6V?Enzh z1=AMu>{?%)>BZyIlEp@nzq~vlnF&}nTvrcQoB%wL3P_OF76M9eux5Guqv6g{bw_t< zk|1J@Zu=D*6G3G#lBc`rZyQs2E=5QdGZ7!i?`f{Hg2t?J6=ia5roz__*dmm4TxxFc z(b2|cNei)hq9o&^O)sFY;@9rwIYqA(qc`({ZvYCDvfnrrc%Tl`m%emj?*VPUmzQ^6 zEd?Ldh78!ViB3^;aQ#qCp;$FC%9Os<`$ppK>&*nhBIab#&if^4CBZP5c^v3U4dfR}v0S`d25ryksLa0y#h&Ws&JZhSqgnca5=b!}g%Oq|R;s68f6U^Qi6I~swASa!x?f8=)D9pg`6mJIY-kWUX}i~JwQq}1 z;;q}P2}{3riMITZ)rcMX^06wGSHbnenr|fa8Mx*BsABobVDw0G80ZHppUZIU`hHq^ zsdgh{&yO>PLZP0~1F_i#F9O^^H-5D1;)VbUzbk{Pz#* zi4d{Oo6(ObgaBZrdq$-p=gP5Be2|S7+=IKzI*BxyTVhrWs&y~0!2?EP=T{1$tVp^x z-*>QEwZ;8gxNh7Fk(VYcKOn3ZFq>d{K1PiY*fqX;E64EmP~xg#+00`a+DNVm1Gr1y z-d?giMZ(h=vi9L;hziFxRslZ5A0GMRW>tC}pu%k<$AHLWZy(oc+Hr-sL4BW@i4d$N z@X*Mjk9RhGj}`Gk{(^jq1Uc&;DvK)q!(Ic3i?Ld_;N=1*+X>Ip1l_@-wNb`tt(rFxtuUnIyXYvU7zx+2mlVbDUQ#~j!=RHmz5LC2d zfYc;F!tv2H(Kn)lDrRmvSW_1&l@rhRxGVnd!CI8D4Hx2Uem`HHps0v;k!n~yl~;AH zM`OcEaBY&O=}*(N$bGRp*FWC(t`;T>Zn(6?Em^OP#I?>$#0jHg))c*J5)i9OW>`kFZ7d5Mo4P&JAg@b(NY59u>d+1Toi&LzPF!823%Ww z+7r_`+f%M{n^k_9f@V4c4mhK~b^uHBEPrwMs7*qb*`9m)c2?_HU|Px zlCDEwILjuWF+Wa-D;wM%7R6b9u9t!yI;b%^Ult}-8mA#1-T=$HGgyyku!V%JyVf$w zSZsPEFD**QAAjzA%!sB2)YOqYnwYAp@czm}R!r^|Q2jE(ZYx$~ zd|msJC38Hu#9?|?Vs7xY7<{^o$HH0?cU6+$k8)b!cbXmJh7?)vD+(PulUd=Kk>D9( zqUgT)Ym1b@$VZ<<*M3FS`?O8B<+hmED030;F!vw~eeK zgp>z!#<=YZef6a3@|DligS$N%6nnMLE**T^?Mc<}N%i#~@O_q3gN#|-FR`b}5NW*X zAUOh#yC3HhW9XZ`dfJU)kxV{Z4^lx?F#?6!N98*L_OUxL#ysPXoUJj++c#iAb76|< z9*&$>6yO6Z1*==6fsS1@k&NA6*MDSI)Pw*FNxqVPS_YIem}fif$*;oZ1*D?_zeakr zMbC*h12GO?e?V~S^MlEIW9kaaU((n`=keMi!Tn_sG%Hrjcuw1%KSCNISzECNbIi-4 zq8{{V@|8!i)>EuG85F0fXKAnJq25br@VOc;MRFwnp7!{5J>Qg%+boaTCpI;bXVSth z!n_R-`50V(@fO@s*|@ru*bckAB9oT2R8H;2QJq~-oC5}kV5e;Sj0{=| zP6FOX#mruQFz6nbSsZd@d;B&LbK@&0T`2sAlvi8qs>DnIK|FM|(SAyND*_bvvT~@I zw)Qx)AJ)jN${i)w<1Fbg@wp?p#%KQgjabk`kgS0v6H|3~2Utwn+P?Bh#1cp6Fjb*@ zI|H2fqpHjG23DHLYoSa+&&ezfC*RJ3bGl%7s8s++MZVg%ICl15w&M>0-Kwq{`5=$7 zCrP6Me|()cx|MVW6m3I5qj;=72Nxe7up)jxA7dW!vN`Qrc+-j|3*X$att@F`jr*`XwjH^0*v! zW2LXGM~xQ}7ioHN-ngu>-oiVZTFjcP$Z2@tLFj!HgL)UT!sCiT?lm2EMe;!)iJc4w z(2y=G_=ZHU9G1TbQVPy)Chpj2w$r*vv-j7!yjA%>+^2rJ?-@{ZYkNGR4df#yFQcTG zYhFwv=w9jkXLXeqDS+N{5bskv|?Zjt*~8fH5m#f;@|5bW0Nz zGdq0Fq=ovExL7cOt*P_qWozLvYa6pNYQuCcA@fTr4+RCPyGC~Of_N2ty4RuRdmgDq zx>8ryw^4CbNQrTrYc(`q_ou#{X4U`7VK}`clbT*%xiM5id!C@cz!bpDPN7%o{j3-{ z8}Ug9J6fR)Xjt1!Mh~DJ8JaaK0-SHLqv>vga-brONO(TO)iGfpvq-=IZ^aIRw)%Rn4UnAY0sk z@C(tJ#Xr7ty9a#6KF?LG9zsEXNi7O)0d)SXs!sETHQ-z_<-77~$oE#=^>Lb@iX; zYKlt+e{`Fu+u2AdzfL9V1P0W6?kY%T6w45h$)-wlYbaQ+)9{~qrJ6Mc{~(K67g59! zptA&u6vD>#c#gVuEu9g4V{~{zf6#>QYrL$svE<0CO z)#@~Xrmy5=jHl&Rcprhozw5b$($@}w)!7obW2y5ufz_g7V_8yH?aa+-fYE8*e}EI1 zsB?rWmz&@gB`Pawxf2vF&NWyk3Oc8hLzqA(F{|f!F<6ftnNNd$eJ?^1hliF`?hWO? zqxxHWXHyP~U_u+j)kt-ok6S_&9(b~|S@bLPpFiKSiZKK>AL=g5uKU9GZhJT^3WX|hw4Oq^umdL$Z1MSW9{hDJNyZQeZg)L;W8=z$ z+s_mf!^$CeQX8)r{CZ(p^jgea&LL}PSlv4Rp1L$&@O+jyf4zZ!GSx`vLL|WSX?c~o z2J>{mkJw_s`L4N5e6bOn$L$NsgP{OaS^un(uDQMOS5*v9wGVs>tZGnG{MxSocf~gm z;j7ub;*J^}d~^1`srQSwaDJTJ=ki8iD ztJ2|z!02zT6uv%m;CrHCERyeY#2J*z!sr3dds)f_#5*YsGVLmnpXzi1#rV6-trMq~ z;l@Me_tX`>5+|IxmuinYk|ImHMTs9FHY6P%6I{-f5ZD{PlX}7ele4b0FH%Sw(nh+< zrs0dzw9^xWv@ON2uk;F9eZsEXI?rHp{C$41(E#=`9Q@E@ozcbpF9<8O}eRX&G35m2dio2Ek zj_>h8U2r zLJoT}rR|wOPgp480nWM&Nacu4Se?-x9=Zw7=9)|M{($G2Tjd|01$3~u z0SMqqDc{j_4%?}c(Lnkt)!e3X_ylmRmJYi-!d(L*vu_1~vkQt}J8%jc)#k$e3g4ee zHj8uIvd~Hsm=x2Ax>-DdOa~0~4tbCWXJ)WlHYa!2m?2CgCU9w6@}g7uFudJ?%p1px z4%(Dc=0={o=beKyGY{2Lddw&$i*6-n%%633_ zHQyI>0!M$W@>_DPj&>M;hT5e7Fn+Gm@}Ekq@IO|iEBVJO;uAruIADX*2~4zdGP47i zJ7MUiQ0;nQ4+DS17V=NN5Gi#$khwG40I|Vf>>k=ka|%4@el{H+#^L77mihen$AdQ6 z6(`%kna!ux=&6-%&ki$-ct^)h4op1y^5O+#$r;PoGFYu87T>}7oqC*~s*}p>MUxDQ z(3#wt+S;JouRE4__#GCEtpnK&J0KOI(^uIe;B>i!)j5^A^X)= z5-YuWA*@Qg7ktw&%@&lO>V(2xtMk!okg`#Z2Dy<o`B71nOfQ`{y4A<95J`U~( zql+IQX>-@b1lmby>a*Y7Z6=lj)SI@N3~ff}c&~m>=SGVp^S?T^1hfPv z41`jNda$({^dF6oa(<4DJvl#eoAoOM{!vVRdh4EMOu)XH{Gq&WveyEr!Imn#90lT$D`!i$MHqU)ZObpf;tZe8y+-hKe#oDd( zJM?JM^_vUM9Gd<1>#P=Mz=WUa-fA(~5*YoQevrOW1#78jC%k?#Dj|Zn$!T+k75Ia0 z0K;t8d97i>GSOZ=D{R_wdzRwfd`dqQ+O5pkjA_&$zFKcS-`qGH2bx8V&-}-utV~X6KxB=Oc(?K zE|{XC?tmuSpEUCDekg98uKKp=b6ny{a?N7q4$_Wrw8~1k8$Nr|M8o&CM%4EUnssza z-c~B@yIF+>Lo9LMkuLe&SD)nfmuz>d?%syYKj(!-@!D9a8V3QBiO0S0;ANadqc#tg z)GK`L-=ka`+ax(v@nP)L(}gfmz!(U$$B{$lDU6!}lh!_GpwVk&j({LHUJc63pM^LR z?Hd5dQ+y)^V%NK@)Es)8;@7&4=W6m_>lCZ&niYwZ6UKNun<9N>G6)fin5w|(B;A1c zLp4s%0^A=3M6C3hqtPg`Fvw8|g^*HtU*W;J8Zb(|~D z-ojR=k1w@{bGL^>mfVTBlZkyq1#)AAiD^&2rneGXZ`3y)3Gr)gDQGy+G6#jK)Qf*@ zNF6DeKA44wG@Yr0AlfN}O9^P7ez-r7k9dAB`<-b)ouG4a`Ih=hU&=hCp_)N5;aW~Q z6y)|SK)!kqnSSEj+~AUgt_Q2`{ywn*WQ{&0Jx?bvkE4o4D*KB+5DFGkO4F=OwragE zR)06ll0h~9E1=i9f~;CvI6xuXw-K16PAFyg_ASIu-wnq|oVV&_L<)jhI37q`kG8S6 z8;HYRiWTrw$F#7&K4=;R)$m(Lo&sP%3!KVzTTXub>+?efx(sq!VPbD-3~g4uYAi06 zu*2^X`!y9;h)VetSzCnA0S3})(D(n4)o3Dj;qZ7MYA+nP5XT3kY3v*7$A`Vkx@;32 zT=R;Ur9D5k$JBco%Pk#eX+|XAC!t%#KD2aEL$%q+An{>C%JqvDodtu|F>1>B-y0@s z7mAs>fP3!&?0OF?xL&Ticbt?)cxM11Z6LC1p+1YE!C+8IdW+6Bhz&PETY9QwLpr2@ zg^>WVFclww><5wff$1}H00}rjyc4P(Gzl>vk_B`_b^=crMeHp`K-)mTOQI#t_WF0e zxw8CfQ7@pSbM6BKKXIfnBb*?tgbxm_rw+?B1z+6q0WF5b*w`F;b*G_M^^TLMj^;j$DkF~|C zAaXJAuJ#KA!kLo${)fbP0r|ihHlKs0tJFs4ZV0oaLh}%4%*?jx&UsBE(NS8lsVnm? z$3nJWw*f&YoDx!6RP>=RHJE1s+}w9s_7Pw&Q88zpDKW+pEPi|XNaa*=f! zZ!f*$9^Zo4yS8 z-Zy}#H_rkI5K;UFp{ki1H*o}rGI#S(F4tYMJXw|=C@LyyvqOX(>OYX~Pb}<{L^525 zIxZBhm*Ma=5_dWa?x%?Xtum+eU^ci4X5{w+BC-YU-%+UnK}NtKupkC65P?}r0<2!h z#2^v?Ig16mgGhpJ5eqbj6M&paHcFIqqD~;~A`7BQBEtdMSubhgfT(r=U=HgN0VLed z)@OP@2U+U&EHCeBw)nL-tO%4-vYh%!8x@T*%83!N*r-cV^}eCyUGIexX)80@=F>5i7pLcLUC|hE@3^)OWzbrR>l)N6$1eq-r7lHD zDUHedPpqu$Rd`r(FAamj3l09_ZiIA_?a@?}2x6A#>7^z82p3kZ^95z*fVDgt0)KG3 zg}=<|Zdo;eRnJcJOuX}7z8LH&9OMg}UX@#jhCsYXT%OSzp6_t2 z=PFVxQkiibAa*dZ*|J84@F9QhZje#mpLXjM++pX zDLdURM9d~^ll8>UsdDolkIyygTCuSX+!|?5^DIvT<2dxjQ1mGV{b$Gj(!^2+h; zM;7MdUwsWAskI+jSpkCb3kw0dGnJ>98&%lg4>VHU-#ws7g@^LqG$TTTOV?VQ#X|oK zM(=7mZ?-`o?}43&m?lq~F*1ye*U=U9Z=IFh(j=kEqy^tM_5J3#+(JU3*n20&P<)|I zT!3Q-t;DBjL{_EXfE3#X#drXJ@7sJ&ED9wcQ+FlJ znr8OaK(bt&@T!sf8y*r4Cz4U9n^bE5A&aAhhL|@4R32z5IgO(h zNAJYJYP-`EYXH&SehDD|dBX29s|}My5Un&4pY+XeE)}@Dj_dBAJ66vhHWmu?PY=Ad znB;sc{=H+@MZ;>_P;$Sjn1-@iWWou{EGVlLIJX$g{}s%cC9T^(OYcle)z((q{1LWZ zqU@8jx;3c3b4&}Sv6%h!mT9mi4&z++Xr=cFn0f=!Gk>Lv29O1JSU@)0B!{UNei}Fn zK=KfBw7zmKGDkjo^W7MIwIlc(MFH4^&t`6vU<&<)p5N71f~qUDg@~yMJ-x{ihODPS zIJKj$oF03AVpz9Z1A82@4zL?I2whA!*pR$_Y`0a$+O&3+sCyoZp-yi9sH;L%HP{h{ z-4`m?8_c0i*@{|4aIb}uG6O=gf^-Bb=1F3GV=8S=DOQikT?{awb*qDaDm%EJU*t7 zMj1is#f-YcCsa*oCO{S}guE?UBdmvz>wlh>8X*Xk8i?j^|+~T(ADq#_KpWGG}bN=yL z&0nuG`fq{sr%-u9n$m6H$}#VQf~tZhfc?ZCH-Q&MYAy?bi@w}Ao5MGNrWK&*J9^#beu#j1K^pZ?>Q8c<5Pg^W zCc{O>$@9Y4InW4ltIm+O2`s@QAS&5sng|6BO>A~+s-FmlGiM4D~=eTg}d#Sj4#F*i3Ulg3i{Nt~;wla*~t}vYhuXy>*%Ir_-9>W0# zZw_7+GIUWz`vOF_W&R3VDDk4_g_|@-N{$NDT)ObA_?xsfrzp*~KM5`lL@$AlsOZ$Y z_lb$%mRS=#^Tg}V&d5?5?%SN8cMkZHmQ&P#TT6gf0l1Vm=rEfo7{PU$T~S90%KCk8 znm`w~b97H)1w&TK{eOHIFC|DtXsVZQ9e)Q%KebBtF$ei1-`+@U_syyw{jpe1M~ZNA z4PORE#Eeao=7E7v0eCBqcYJ7JmYu7VVJUNIg0i96f`n~oYipOYW}E&4pkRbCk8SqL zw|^$7z-}+3OnyrgCnN=U?f!VH+0r@vun70#-J_=M84!FM@x#5x0|;zfN1QJIEB-GUzNYQEdd<_#uYKmM=+txE>){z9Owx}r-aeSDy;$nw zTAJ84&r%-=?l83*yus^BL!c3h9c`72Aw)iLKEFX{FNRWCW2oGbyz#G#)3}o~gF(tvtl17gK;xa5Zn4d46!mNzjZ&&)n z2O-T8>Q_p#URSC6-@8oWDX1rZFsfbk**Tn*MD+FC}eBA z)bTY;#vD@B)ShHbsx&)=wJ8-%v)sDX;)keP+nQOLAe=-xCm*HCAS<$zp>QA^4y1BY zbD|&Rv2WrRK21~v;y9Ay=I|)?by7Ksr1Vg%_}N8JlofH*JZ?3f(|XH*spDUk@4Gw zZ)j=Ur3wb_46$y`v6elBSi*j5xp7STdV);L2Rau@okdBXwdGO|9HhRsT(uCc^Joat z_Qh{(5~5M+6(t}32sgQM&{oTE)#M6$#+`VAaCx)vX0r)!>=994tG-1aRbKBikZB?1 zr3rNk9^SG09F7qQx(#Y}FohH0p4 zU}jHBQ7*D{+V+ynsSH3IZTljHU+S_pol<-zpG$cqyUxyi%sU^cIChb_Icz8EGgSC> zW#ZZTbbM6zH%8`XqD+`WklsI&d_p5oFRrnH6S;W!>rKppEIz1g7Ftr`*z(%OXL# zUOhstJ4%4Ck#@yxGoSC#tf7$WFwHgI4!0rg@_x==%;6Lm?d+ESS`e@?a5vsm7{>29 zI%c=brF7iCr&xJ+Z6?~%4U)W~Vzx}oK3P-hT*P~0#ahnY)_Zw%3^;fU?_nwQq{bX}V8`lKj)~4=^ zR79__fB?RT_f5foh4F0R=rvvZXFIZ{=7fT%O(ctsWkqfPhq~?vQlLcSq%rF_D|EoP zjcV&=dmz&jKp+Lh4gM<{{$+$b`1)JGB-H^ARR{1C85S!jD^Q!!l z2H3=bEJzvvKpIw;t_02LP1sD&Xo(`O?2uwg!QO> z#{P@{STpjl5I@&W6M?Zl!3@GOmyW z2(NsUy+?Vm?^5JQ^Xql4OfftiPkm_^uO~1mz<&XV&_aw8``Lu+mqOacII-nlCOJ#J z)}MKv6A!iR2=sME=3PDhxa!ZflY9cSdUdC0^@SpEq3glcvEcg@d9YD=Vc3?HRaJ+g z*YJYz`k$HMQ~f+Fi8+m$>K?;JkcFqpI=)v2Q>&T?JR!Q{S3D7dJ2R0b#Ed7h*(`#J zO&1Jv-US`Em-1Rp`o;rIL*VLcn-0kYszwPPXSmA*PaS_XTHsK;SumKH-$2%}9kq%= zU73@TRAJVY629L$?=r7eVl7CH+hD^bSt;nVU@H5) zqH{1A$ZZ=MSF!EAFXz0keiuqxU*!*NO- zyEn*`&?V>A4<}xThz5IjRO$EE-S=?x97*RQjvjz*0_T=+o3tj-tREAx7KCcB zEb6@?rD&l=N**OQ)OL1Vy{57vr=Q&5X;ONP*lQn|79^d9aP9~8>xv$&3KzRNWBxr; z*4~VNq_qf*RX;iAUgtipM!84rt-S*8%brPSNmQIz(`p>OdllR#*4w8IrZ@HC8!@pi zsgfM0y^HJLzfmaYKOqOU7QUk--uxZWvt3B3tN+Kx%my|#N=ssKTdDEA#0l#*M>^fIp3xQv1VnbcLYaM1{8zr`+)D|QuRz?`lgRLTGpVb zZ`U(n%v=U|mxl^N-T+JzfaKm7h5CBcuUQ<8q+J#@)a}m&XlbccmN$4?T%)!c zIIu{l)-$^X1S%jFMF79-Z0g|`?sr(iN@0I5 zC#Choz9Y&ec_IBXEd%lsw9YoL@TEW=a@2ncNUiHcXPE>uNVvJEIAw)I+^k!*khL2D2hr!PB{2 z7u|jOdUL+MSs*||!JQuAok8EkGwSocQl-W+S5U`FrOW-d9i z+1rNiA@@Vz z4iI27hJ5k^cjA@G2}N+3av_Otbqt{F>nATX+(lc-vKb$l;Nq39Jyio38vCF5Wa%5@ zY(XIu&7DkUax(D#Ymob6>?Fgou>}La8S3B3J5?UpZARL#wD$X$&ZRIgfk^Z3J+(d} z3q!@i>8}F6(FKsp=ZYNH=-gew2RE;}CBfcCukC2k$AU%b0>4(hCi}T{TKe5?AU7Ct z8uc~E;H;xs!(GDpliUwvj(&LY5O_BsXdGq#<>lFS)*IJ^IV5gu#1EPz#rg}Hq17<* z9?TA{3B|8sq9=iklDl?!Oo6T*3cNoCEFkO_)d)Cfkjx_At|xEb;aXK`69v)py@L0I ztxWMEZ&lZ#Gyu6}{s2?weF*wWqC9!<&%aWlw4R-pFc-g9E&ZCU>4n5}TI=+ph`bG+ z{|8o`I`2inG5N5twd6)KUHvD>N}vhQ0kd@ve5h( zgs4>A0vIc2!;m_T03mzOd_fdVB};zp!u30e!z> zNh_PTkBB1$1_{37idUwnKH>tCK{D7&dbQ4vW=iz>1d5uS2IUe_N3?gxgXk*{f$N26 z6T6EH!4RWm<)@m;69;+(zh_(h5Z&F`@E3e_kG~ytyz{Et^`0!ahx>tZh!#|ZqCNs&J@+kBIpBVp#e|7^@Fr@zb}9EuSXU6EU*Q4y)-3l} z##07vgVy1g;_+-u)u?{6J-{Ws@9Jco+OXX_S!8`e)%4@s2}1sLvtLR|=DkN5(Qkk| z4?9IX^-gGs8Cal6{?o(+s=qiz z|A$aNG7I?L-C`!AF?Uy!&71Fv-DSGR&G%-D3R{*mk9fQ}Fs_j?=1R_22Y z@t^3Ks>}1?hJTq#bWcb}FdVi%AQ@#P`Q z^T?|=FD!}lW-uAVh1!Z-uQHB{BglJP-7C&|Ib3U-dQeLq#|gCIIiftW{XCa@kb58O z)=a(Hb&w@A+gmq?(m55b4!Ia+rSA7|wJ#jHN<((@+{q}LQ~Dn>-OJc~{BOIDDwdr^`uz8iGz zBfOu3UlSR7R-%X!5yAI@G&1>mTmhzkQ9bWNowGf+)18yP?`xLxvu6n0zp}l$venQt zrtS2sZsgTDgTfnO9Pgn^O7~%ToYU6?mXs*tDJ?EOEuOwZCl}*shLo*puemR}B9xVq zW|zUngSn&`-OvCHj1;YpO5|UU>#VrW_BBV?b*;kY{bj4zOXeS=@^s$85P0qRD!1$& ze-V@Q6G}tFJF`c#SfYWV7IxP?e z-DMu5n9JQaeDi+y%g)u_*GS^k`RVy}5#;EH%@FDMv+iSouP@uIihcAIUV_0J;)}_gaXE;__P}195w!=oaQ`i%0L+*{9s;F82KO`H#Q8@AZ94(9auvr6T;UE0ZrG8Kt=v&xJJ%+z1p;Cl_Q23#O84 zf1oez_Yfy6d%7am@u!e%mg%Au?<;V7Q*&!K@7r?aZAFwa%3;FN;TUD3p5|Gx+)Jw0 zSyxBCG$AKQV-Hk*Yn|plCv{|MTemi=v)U~w9&wRXui)&<=Rgcxpl^2=$RH{JL3Nk!& zduBEa4>*js&hTRKVXT2mVa zQ$cM#uu%7S$14Rt$*R)nFY3_!YsutR4k(1DM?#`O3QBn90|5rsAv6T|s^B)7ovoF# zf==xS79t$>Iz(J0+bt)^+#!5m5~k{O zVDy_RX(yP?&CN;d z%$`?^xE@87dfRA^-D8v!-Bb{V590dLCGfr;TwLcQ#!jvev~6bOvzkeZHXh_C(UX0Y zY5m6MjjLxCQTL(%((a5GR2Ho+I}|2ASZub z&w+gXPSA(o1V~6wV4*P$^AbC1xWqZCI zVYLQH7c^XTUl>u%xL1MPplRS@wXw8zFSsI5AiXi;wj(68m854&cpjs@hCmIjca+FM zDyc28R@4jH=&Y)t?vU%yrgL`rBU^W8c3YJ>INl zEAj3^CmCdDSV$)Bx^PN3Yp(FC4!EhXNr~+iy|%~?DhvmTrIJU$*TTOjEj2!FEx)1e zROK|o7)Ip`T17_jD3MBi!ORd1)9B{gno9@6E#`23frVhe=w1+!Af3zj%reru59LTc zc(1MZ_V&*NK>Lyl>qQ@cw7Ku0K{rnLzO)fIi!r1d>#$vr5+$(T1Zw-4Wg^gp<`YU~ zhy^VnL_De8ZF1Bh@mx}_=Gjw2Jtjqjk*fUdSze`tbK07#?SqGcJAL1|qnT z^Akz;ZjE;1McaHnA(*dWrz3DMRDfl6&!1e{wR>UkFQl!^mwEuFoZ{6p)nm=)i8F8O9=_?yb; z;>&yZwZ?|O06o-ukMPj2mxR+JV1$YLS12bbKT~tw1|+jjZ6tfQhiLA5m$?vOemfK~ zazj|fQfI93qlVnQ3EbeN>n~dv#T9MKD zKBBb-#+dYalkv>#2oS?yo5{;eE-!yRnlaxQ_j@ujigjLEJMZ0MRTay`R#=#%^K8~g zc~;s)N%B=&E0j}uf!Hds+F*~z)z{ykck`5Y(yOaao`C|QW%ai-DpqIeERoh_cIrw> zksMm>{FfxfyU$g5dh*ICfsrUnhick>YVyxQHaog5&P`)dy|Jo?78EChdM zZ(y)ru_@)yF#bHD=3yWkGUdIL)MC+#(S8ZP07-lHj$Qw6Gbf;}=VfkVn`3a-X0?}f zEA1nR-|csfl@D`r5$W!1@TLYNhuqus+AVpahO{etQlScznlqKA6-Nn`X+PPVP`thn zlOhJ8n@2d!Z%dkhw>3W(FGcuMvYi>$SQ)iy8{ubyaf?oycr~q$q%|K@H!&=laPacy z2oy+aZ(6gxc;!$iP(TH0UYFgV0-;=7IuqP8;HA60o-~$&G~j-}Y!#eQyaz!o8M>Ap5)Z~N zsr8AA8$ULeAEj6E79WNJvz^x)s`lC3;-%H84fv(SeiF#q6@@Xtj82m@q=kNu2$RLB z`?BO7x*&PTjGl?L(n*P~P<(m3Ey9J&M{C<*y)FOi_XJR3q>cU*^bZcDDEA- zji`7n_Pl#52C-B>e??$~vns{Tn1EhnLFs-JrOemubUzA?tA%l6*4w2@4a?hf-g z#1I{W>`8z}xs9oElgFNhFz!bdx5=(gQ3FK|ZX0&LW9uCp3*&Bm_XT2SBu}4pQ39>? zcHrJEFyu!)mQpFuK_+#~Lv}vThIQo&=dmLjS>71`C{cJY80w|vV$uTHzA&olv5zh1 zw`ni8TZS;G9KYCWk&z{r#;UcW>S+|rRo zn=+!@*hGz{|N4IK4!q6n`F*pKt@uU{;{cSGT}z1LKbRu1p2?-4GM2u*31&h0e{{{*i>!MbwK{buG_3{Q;p9yR<8URMaci$L-ix)2;5&0BmLi8*%^S@tDzO(N z-L+g?yK#_bsi&ve&=j_Vubr>Ij20Zh;Nw4YdUQv!zGHY&{9^=AXV;?VE5@@pe1F_6 z-C9h-@6D4yKaALr7uxfR&}{CE*Z?}=e0WC~(Xq+Gup953yFco%)Wi_)w!*J(j%^D7 zGI`j=0e9FL922Hqb=pvN^r=)j5W+6D0`8l0r*#sfj>$Dx(PZy@o6(>Gy^LJ}RXGFd zgxTwr1bex{gNOSjxiMQ!+OIF2SgmK~@c(GL45tGI6kXCWR?!|3J9ZHG`#y&4%2=;9 zNWqC6WABCUL~YOi>emArc@yu^N9-QEx?j2=iGd{(nB%weNQu-~qy1~srtXV8zPlmd zw<_Q__Zk-yPTOXEci;)tjUSh_i=>^a40KKi?V<{$u65@RM*Fzm_12E?s}q*gpOQ80 zPsVmGFdkGY=FAKzdTyqi-X1qxiMm6ZqXz|idgTudk3y#Fdnp}d$(1^ea8w}$mL_gODx?$U9R8=53< z;TUf3nMo`)U4? z&Ov?#p)?Ko@2s}L7$~#o%ePoDS=#1h5Lpcoii7vi8JAGBANwvIx#;rlNeN^{VDy5h z0HEr-Y0VM+s2yKWQ*r2fz+BU-PaYMqiy45sPob+4M+aZW#Ktac|H;IQ0eGP zy6v;QF@x68>ouRERrbiV?<=B&XQ93|MN-I^`7b*4y};4f-(emiaD+?l&j&9kpJ@V9 zm|>Ugg5cM#Ot}l(NnoZXGQpU25}Eug#Ka^zC9j*NEK!VOm(*ss2IopL^rBp!Hp}rU z^G~?bAeIlISNa4n2j*V#$~{{@!`%kT0^MA2Tyr+0e>st!!OiQk}cXHU_YA6&viC!mrt4I5~i;>>{A&@}8sQW94W)ea58m#)+e&JgRf%{)3c_vD_z2Dtx2k(-lI)iPc#J_-dTmkP;j1qIW zby>NZ_`15-gG^FgiG zdL>BxLtrrO6UT=S$vqPfh;w#%ETz}sH(lkGn9c;Z*ZY!wPrz;>L=3Mk;ZqTk`17ZE zN{IHAD|3x}_RU=&-}djVP*3k|Su1{vU$_pHcnaST^rixEn3A(c}z&#%2{Mg z9e_H<-w=A@4w^jDb*5Mo|A}DR((KWy=Mh}PkBPhD{Pt!M&EH#T?_=zmq9akO;ka8B zjstd086S64*sXvPp&K3$C>Kaa^Eh)ywHZIBV%?t$Jn=Tkn@hQ^o~rL-S0&Ifqb&=p zQuWD|^NEd7#k+|05#4;Xj~u=Gs-7^pR2D9V3h^@A*Hvf)qVP0Z`McpM+Cti6jZN2f zNaGrh-I|0dJa;O`nkO!%W4^>X8y$iLAiPpo)`Nw;l~?8?I&`EwwDvqJ=xZKCQ3!`3 zx<5Ob@{Tdeyjek(H<~iZ+>T&Y5K8p@TvBDJ@Y98~xMdxckc_Hq0_K0l;-q@#N2HAP zipk#Rq71K@feS~bPVxggGsx_egSG5HTBEf#H5hDCDMqvrQ}eavU4lbUvWKcQuPfPS{|uMy z__C%v-39lZ1l(|qe$;mVguLXJyQh^~FgF*(&gEDIvA2Fw^o*}g>}02xiRH^bu+aLc zc8=%v-nNK5U8)6uzpH(r{-f%%*VspfLD)>JhNZsHOi3fzVJwO#Vu;35A@`@*L|=s%TH-d^i=Ki zQW+v(h@lM|8}fDoavJUdcjjs*`XbLt$@Zx}8c=?_Cv@=Wy!+KqILZC8QMJ$sz~4)A zY=V;eQh|JUubnAb-YaKyE3H^qQbMNCX1w;@aOtMJ-Ee(LqbcWT`E>0u1rYL-sHnZ5 zT>X4eEt>1)R~lwsm%{GcLZK3GLz!xq9^2&pKfgKfIG7J%Q)WZcfL?n z5Ayri^@XCRnQwoD{^h@jD%46Fhx28tUN{!EcqBW!&T8qz%AHo0MkZ0_bhlG~x$ntF z6*e(xENzzESAOSLn^gtIu6d2^!(SbFU)OE`(KNUQ(57FG>-(@KrDb4Xuv5-?%aI20 z=Jx~lRjKFTTOTjDHT0bz^JcHs`j@%r46n0q6vklldZ^#X7en$fTR#)|hF|)CS>_ta z0las&GmJeyr)%xknBaEvOH8}H{L81GJ_t9JV)ptr758c{_U6s)vQxJuy@3A{kG>&BX@8`L6WbYC^sm+1H`yH@A9) z_}nUDzhecHlbrad&6QLU)T#L#ppT%0D)6KF%8=?A%% zZ^i48s5mAtzGYqq#JelKxW=T#3Sa-leXEf4cOL6-8&qwsq z?OEN`n%_>!x$}-G2f?E-^$f3iXYOnb*TC{>u$4J1G7haGxuva!)u)fBtnWFkB(yXd z!Pi>!^U!Q3#*aR2B!n3B(!oDUmQ}2G>fM|o%Gbq-%c#fo7Yz2i$rH6d7e83#)@5o^ zh^CG)(OHB_>7w?4QeLBnf8{N=y9SL+r=;%iajMuU1iDQlgW!)I18LRSHT{fGwXN}z zNpj*ju~lvKev~Q^{kV;b z_@!cp!M7a?ySZek@{bnzQrc2D{xYlV$9jo5R*k1N_}v5OxWIl1v3mHrZ?`T!-hX_% zwT9GQux%{tQ6NFeOJ3UMimi0+u%8c>KpzD>;ti|&p|6G86)RX!36@xR9??NXX{yDk zGJIeJOySh;zY%I00$&|vy>*+*lXfa(rjgyGXY*3DP$`Sh-9hfcoKKufwhG?M{MK-O1hi=C2$BB4|~)1(aM8+ZBGX$8BMqZ8BYBmsC^d0U*NW zy`J!j4pw{dmRQe(IJ@xH0>pzH&zd&-7qYMmGS1GiMu@sEid0b1iu;_7x@cErb4>Qmh4msR@C5e|z2cRB8#S8n!2z{#s|} zl}rU0q)7G~{Q-^NG0GH* z6uRU=IiBowN^g@ zklsOXUx88+EAd8g*0VOgs*HF}n18a1+zqV~%w53nT})CW8Oal@5ssQ&I2YA>8Qxm` zDCs7qD0&*^C%hq_vR&p$HayJ!cdouVxoY{cT2;XIh|d`StQI5Qsqe|3L*Nz%){#Z* zDk+_F8_mU<{yG60ilynrg0IBSoV^z{k4e^dmkD8bARg71ZJWavQ{ybI5q-M{PnpfM z6ZE~NQZU44TW@=T#dek-X_q@n@!_*gKlM8=1cAgF%|$ZqNcW{va&4TkUW0t5$Of`> zA8PGiHv|#USNZu{N@c7w+;O*aa2>jXAjdA4TduBnN2tFn!+LcuvBT;8JjUA60)sS6 zdu7)jdHYkf`4G2qkB$%1()+V2t{UMVq7-0_EmX?%-<##ADr2#y<>s@V6VGkCy%UaS zw*pX>tU&SSPwku&mhwVby4XXidKJFWH~2kz<8g4I-MupY-59>Z%rfQA)(uLYVb}<3 z;~H*I;_|5CEdii}n!mih;7&JPlgw(>A2+`2p@A#rRC{?%gG|b2iTowEf-Q96Vte_S zBAAm$nE_!PgL45Jx!mGqFSv`@N23HpDqaLvRVhXdu>Pe<*K*{_!Sxw6m$ve=73^~E zH&??kGD0NjnteX4=XdT_x9zODAi6X4kstmt9yEH0PI;un!((`e?+T!6D&$+k6A1$& zgCDWyI+A<44!pi&`zvttM6z94+imyzxsNY~Z3Lo+r7l-if$ZHEU5Zib=Y`A1T6W8g zd8KNf3_s4}=%EkR+0A?Ve&x1wwVu7H3*B4GKysSay zzi_|}Ea%C??oHy-m%m;Y9~@$s?5-HU?3<@1q?hh)H+srH^xf!!gwg8ELtrBWtus&m z+>lSdWMPheFjqLqbY^1cL|yTKy^OM!c#G{QU13h^n&x6kHGV}=D`Gea>!{k{q0(m& zQ7VydSXDR|l6W|w0NO~TnKp!?+By*g<2r=_lr+GEO^M=xF0^S8!c8P_edhGJVK_?X z093nod{T5Kq?tFvHhw)1^L0xeLN$xh^Ww)OBqS80xO^5TPM{@jWA8D7M2#KAO3om< znEgBA%39cZnwSy?)D4#&;@=ID-k}-9cVdbj7nd+Fq(0RJvSkyWFxp~nyd=HA=#S($ zPJln`L#EI6HQ3THQ`w@3-OwGQI?h*chq-rGjgm>aUsWUZKgQbvBD^d@_wK_73x9F5 z&{f4E{rJX|3SsVpM^g4l3krWsDchgnEl5D4Z~R2-$6@91M(^Sb%j}4n0~{qk(^$?< z%)Z_x*pfKXeEjvg`Xw56tKVxlCf*m*+Xb8jBr9CmpI)g7O7 z%k%3x^fJ6G`M_mz1Qs-#sOUNH%Va*>@1owp!Kv^Jci$ikc@lf_hFzSvJ3%swaV6aw zn8Fe1&J0gUA7J?!8ht=H%*A@=uG;al|4fn6-Uh1FutUg17fjTY*0}a7Nhu5Psf?M_ zyUSdrd*8z=>gYTc45Lr(im1IgkBT#`Kk%*LXaAfR_Vj7N=@4QF_9)K*bCBr|r=2eD zDX9;$v$G$o2SkLtic0*qqO*gzXK^4@ie>KLmU(ad0aF z$`KK0>T^aVW|o%vfK{@&b}AB9Zhy<>xuE=VVvI30n#omc_szLn`$4yyjUgKJwQ{OZ z0iXE(olM`0-&Jal*pUH3zeJg5O=;7g4hEcVSziXYi%{H~UWnC=G7~RTN%U4H*N~iF zmJP8oa{Tpprl&8P-)H^H%))T4O||Otq9i2pYvCK?I=`A?B(cW*ENiT2Sfc&ekVsQY zry}YpZ3k=taG}J#{dB&v>UBjGe*VdLje9@PmGcpoyBo(0P7}*}XTn47RggAr6l|-U zL?r7V(40jk1*exm9~zUSO#%(@J5EfcUH&qg+@J=Yu977KkfnzhANb)%1jGa z^Lky8E31b;Ob4(3KHJ**=LGnof|ZFf0!oQgnPuhnf9tgF=jcJ1qD0 zzV(l_*>HF{m>1bBq_Z2oTzitz$$c{&`( z+#B(okBOSCp0Bu_)M;sy&C2Ij?N@W`>{$V11gFvT&xjgSkiPLFZsldZY^}ds9I*3E zh$&jC&q%8Vs0L(8xwUIVzu@c7aVO-Ui5NT zbn;y0mruu|k|>+x;{tY9N5@XRq~lcLkBNLNz`1)Q4ESCuy>`(#2^W`wZDd*)kq7p_ zn04R}N`aQexFUVL)-|b4M7xjCC6U8O5@WUS#lo^TJM_|eW8|gC+I^`go2L~T? zXS&aAt5u%8=AFCS!@X%T|XwhZ+CvVck3>g{>BTf6MA-ypD`F$gd_wd_?b=TleF9dT6jGm`1H5N8=57vl@ z*r+C4E8P))ZkFEDT;}KdZu|M8eN+E4lDknClHgM3iW^LL`|~|g5bQy}^G=hbJ#Qay zD?b1Oz|Gn^qnP=Q)y8*5rXktG6|dlO85ZTm}R7I6oSa#VX>T`$ghusr{d_mZI%xOq0_7Df}f zLDCWC2cKUpX-+6HUI3Ag%L2WK`XThY^gIA*lE&(sg_OJ-pA zvhT9J;F}m!Omo9uf{AJpe`}O8WZe=bX&-v`lBxV(f{vf9nd${4zC1jv;+Vbd>C7ua z(Z741ZX-Nr9!t^X*GfQDgcvst^U#rQaj7qD60AqHqxu9c-bHsLEQOhd4N%1$6LLGC zFtRn`f1uZ1uLW1J6>R%pQe91%IjQRe+T;1?{eKK&P7)&?;+y2PTXq+7xVmQmoL86W zrGg+osyQ>++q(^%IoT+{WceILU_ARZEcWntotEU2I}#^Y(_PM{yHMHky`HY==@S*< zbbh0Zx9_btjLY)v`2M=y~9XfI6UQs8?-y|io5m62VmjyxJVW}7Had?<- zDGyC4NVr+p*8@jeg413CeN@-_XB&5zTohn&hEqNVA505V`}SUbWTLF(!0m?|(7^c!QWzc+ER;a-b8 za|$4d_xWp}56!tP)H)H|#RHuW99;JMy9}e!RrJIAmbQ1I?guhO(IH_n{TcR_yvpv( z7y8WQQ3A@uX{knPsp!_}IBEpO-voE~LiW||uf+TcUoZMU1r1sfJyaKp2M z>E)Kd_0Kix|2uYnhob&Dm!t%v4#j^qPpf!G#fHnUOg5lB6Fdqc)AhFQURZO?x?Zj0xAGh^hX8*(>VXB4=3K$A_-q`T+MRXJux zM<2SMYcui((j}9}Pg9EGLn3#6Fd^+*s)9$06iK=}fh+LdykRxTa;_VS<2Gke`fB1yMoNMN zzu?U^Kcetpp_U*5fml{6kH@v+#DNRbJ|Dz@vizDe3ysFggmsAgFZ?Ls7G*11t{YiB z%{bTbs)`n?5HnqPSV<|jV5XIJ%_g!S_)4pl7;ta3J@Ici57&T{y^P*FKkG6r15H{O zTffTKU?Pxo4ij7DUhY#T&Y-jmri$J_*4X~`Bg7DDLdUDb`DSLXj!k&VBNO{KPjxxm zc?5lzCpRgQX_*L2z$TLJLjsdy;}Jxi%Op=W)fzbmOd0zVJNC>jg=>P!Ia1`iO78l) zF=EZW;`40E8pJlOGwyz&BJSd^ufTX%UOL|Q+%qw5Wh68VI*)r<`tgB4!a+;f+fv1w zJam?~BtUS$?+2P4#mwlpS>k|uaRM#w;B*1;(&l>-KBr3v@$%&hA`{m#Tx=QXnS~n4 zf+kZaCTWyFU?oKSxu9Vk`neePqK@>EPok(-E}X^VoN|s0>+76m+*v>g>02u69w&%b zW?mnT8#_K5vk?eFSkJ0bSnS2CNLbr!D{U!oe*P73q4I=|xU4WWVy=2N{x$2+Q(s5B z-SKk&16f!qhSKqpzvCinGKOhUwA8D8bbifaLT7Qm6kG4Lc)hpwXW0Ff`F1$rE(drI3}l2SR#o`VD8Hl0Nm&Q;~>QDXEEwy zL%zRkctd_{A2$_xAHNgOOM`v|j~fm(Y;6;BANQh$h(WD&)IcK{S7tP>Q!HO%r2Hqg zF>&SU??@bfLD&L!pn&fJZD9~ReQRZAy6=pDr008r`h%1jSY^texQIIl4qYMLcc)S~ z2p!oU^t{aD$ZVcbvInyhhE`1X$;}0*0i}~&%bsCph=+N%*Nlza-tDa2{%ki|-#stn zpi`;z^un0TFD(XUm-ab4CT0cCQq0ikttIAOUA|Q0Fe8-S;=qBJ0Ah>=?o4A9&mC`@9-u5`-1ab zqA61$H@!vhvt3M6bge%uR%#sLK`+^sJb9(fger@vlrO)G`hx(FKyC!!&m0wo;72j5 zN?g3F(XT%lvEmYOesFJsoYl|l|9Dv4yFP^lCahGlGW7D^$IxXb_d z^g3|Kjmqb!yN0oifU>vy3X`&*KWQHv>4|+vXXK8YK09UQ*El;t4Q_KKN1GBJs8uv~ zRd=#cLpgkj6EmmcKC3UrCfNtSf{U@9^_Dq!%FA~;-hXLH`wz>QTvprz;nQIgLb8xL z^m_~Bssa!G_82j6qf=fLafbNg!Z!l*MUDtN zMZEe@TkR!lQdr{c+V7!JNcF#wRhRR7eGI0znGL5vsADC?!y>-EPG7)GXfJ~$QXpa% zpTP7mF|N+l>Vp{KG6!TzM#J}qHa7bpryZuoCR)RccYX!J=mP(uRoVp0v(hH^T#_Rv z$g+ERkzGgL$Qd80qc|^N`Ee7uREX3K;zhv>b8kQE`qT3Gys5xzy*`Btwq4)W*@hR` z@G9+R&C%2w5}L4pYotl`3P(%FM zI28;M!lllu!U}9U7}f{qsU?T|$O==UVZq52<^ab}FR~x!e`&kHiMnPS41b=&6N=O9 zUYRb4xLDRVe>7N?sZ$i7J_pzRp}Nx6v@Y$i+d-A@Af1vK4*@qSQ6bNa&3-CPfPacd zG0Wu6T-3JN-R&&5GuHHV+%@Xd-+J|msrn)QLv4x@MDfs}OwK3*nEZ|dOTRVCcoZ)S z`X)VARaOsSwBzvk9X|W{KcvY2AYSZ#v_@s*X-8jDab0Xcr5s1EN2$hE*Y17MG>#J` zDJv}?xA$q$)%}Y<5oNjr*R_n(+rKIw_s^<1EO)2KvkBL$J)vuipqgZvEdkf50~3tV z{42x57QU*HI7(Ux+V+f!@buQOwuAfyc5sxoYJRlK)UrGT>i%Qg()T)A^a?R5oPX!W|)qe*k)B&3M!+>cFm+w z-ZG6A=K{`jc4f(2TOH*n_~2myz-8lOQOuORX4?)-lHc!sQ`g+j2~s4PkQ9CC>08Ul zk1w6qv!EQHD*W}{MTx8fBy!^_AU%W&B{WS#fI%i6tF zy~EXOJL>gPtT(xm?ZoVf-JALzLAf*AFqr;Mg0!HeSzI>dCOPcb^_N!{32@2q``lg%Iz^+uTfRZu-9jK`>Nn%QVJuZZOTeG- zkI6J(Y8Cx5++Uuoga%H{M__47%9MB?Y89}_@m}AZ%Sh2i zWfUzYz11Uby6`n&M+&Fox%#^wp~o9LztU*zj;O(0Y{PGbH*OeDfT!Wx5%mD8Czv*= z2U`#+<$uzUkYXhkNb7NT(&cu$8os^{@#t{mZb)vLP)>rek8I_cQ((>plNbe;Q{@Dhj8OwZ>|dGRfGHrJ(o$<5@@Xx6 zAP~r())Kgm!Dz2a&1o(-oDyN4^5{d&)z+S-gFN~Zz_O}EU?O&FJLDl@X8?!B4i`%P zoqL_2@W&E#+6Bss06DlzUYlN70}RqAF)mo^V=Xe)eCK{DhV#0wl|E6;R6d9})8r8b!g)-FaUgI_lY3;+#OKzagbmr?0` z>xrI+j_jTMH|YN)-vbm>{K>Wqs2r)Cv%>?5u^lZ(XdY-e4YvSZ_d7y-JDQKG+8Z6f zWEB3JMg#PV&OfP}+&tj5HP7j5E3jV1QTP044*fGh<=+ZWQ^bGE^87PyK%f8FY{IEt zhX30BH_!9`kBPAc*$d%J=QCSi-=zMQe2=oVtW7&2G6#Q85?lC`2kj+g{qPz3j7;=* zPW?^(cN~KUp;xy4sbzy>fZPt<`4^R*u_NzFyQMyjD*GmkXW>d<>RB3Ze2SPxn99?ew#U=b|1ku|!Hyk^7{4_DMrLz#JrJ zN*dE)9Vmk+-0PWz_Rwymd=2wNxHcqZ8aCA5P-cyJojSCR8pMld;ZbGdu%f}Ao#U*D zoKGXm!Hv*%U;G^8<01x@M{u{B3XqS-WUfx|pmQ$N!y6X6c7jHa>V`8mvn785NuZeeXtbEqn9SdO7zV7&ELu z(z;M@*glfUt)6*81q!6xPcrxf;jeelPu0Cy`$qA*J$h%`g@Vd64rI%~Hf%qu-I^uu z{bY*fkTD#=O{VOp;L{*bC$XXY+y^zax+l~=rPy&K-r76=hT2?YUW|a8W?V%r40!%* z3r^X=de_=25sY7WtRqLO=eW~yb1C8(xl1ThJ?Mnbfj&a`FQ^V^e_01owh!=}CdcH2+)>eV;yH-n$F_t|;O`-Zwwv#GJb z9R9`}I8t8?bv7I?{>;xkb@?4f9K}b+4W)(jFW*+v#2WXblZD8q`*(E+GnOk$m}i?k zHAKv##A`v~aMbR{b8qI?g2GcTcS2q{qrn>?aI6q6L;)Jko(bMiMI%>7H__E)!!B6p zVHt&gc^E0*-Lemb$(*#bqV|G?Wd#CtY$@9gn;{L9+ZxcRm)WhSwU~GesXangv4<;N zdS(~OR3jtBvN;kFiUjMNbTMqc!w)P&?&phy4GE4!IVj{al((2HM#S9Lhrr@@vp9b^ zj0|t=P5wE(GHANF%G!j3rfXOl*y+hkYPrzdg8Mv_b_Tt;u?<-b3=A~uu`||7YV98w z|25b?U-{}*&{a_f4|}qjf-Yp)Ohg*{7||6D6B}l3Ezz%_Mm|C%H$w4H*#zwO!3*9C zMkAim&u&aN`6x}dCsTxsyte!e4C|r}%<%0M^U=`xSNUSBjYbGllV!8>EKY7$$h*(R zU6&iGR&s?a&g;bXV4VsfrA$bAbr@h@o z4M0yyD43?C7La$fk2LK9)O~IcvMD<>jq-2sBYo~wD}yK@yOBT86awvLIJ!PUC#lx> zXLr`4@oPbaok{HaAEh1_U?;egOy^X6y_Y+;qFZr#s21Akw9#CMFdP;-9J>3AM2dYj zXLd9#O~4Is&t;UC9^}{O2c0Pp{RTP{ZJxAQ~%xiEGWQ$c>Y+%}1g(CD> zih7~B(=4&#A-6>YG%M(*nC78PU1KhE^H>Ij^b|w!Fj@hRCtN~MAMAdBB3X!Js4h1! z>5);6b!$J|@n!x9uIK(daO(APia4|zv7fBE?9NkbN5<_nIB)=_w1V==nkE|Oi``LJ zJ=kC^Y$-BrdA348g&9L6aTX*9cqVfsifga@r1X!6Zjha7zBu#L5)kTKTsqQw*S<1Q zJV-bhe2%`UTiRpDc*5uFrZSXCGSNfa@xQrq)s8ogiTMJ zF}kG)OZIqfXZLfd`o?%EKX%HVD+|frl8$*2uH-dqY$u~yQin@$e2$MNfshH zqEwGe)J&w2+1z?JR!BPQGInN5TDFtU#PL79m zW2oQYH$?o6DsoPFn9oDTA^v`nmc$jvt&QBvdu^Y=z8MvD!J6#R|* zg>Hy#tSaPn{>xxBE72hns(sUAJ5Eooka`FO5@WYR_HoN76mbx;pNDES_w@#+8JQ*Y zKO!G1D&%2Q6#zTgi9R%|0KG+!$6ekc+h>&RwczG$aNgBH)04&uN}maf;uM*&UXzy&CAaROSHcUpemsS6eCmnl9_{s z!K0c_U2joBrb-SyqXSx59WG>q%9x2;dtYDCoct|IE^Khhb=#sjCp5mp^d_lb0jlaW zVK{y+YJSarx0uqLZ^Cf&Tq>M=K|4t{om_awI(@JPR@Cr{n_8|-lqxAVtRMEV{bN28EV9{y&ffEgj_IW$h`Rsa3HME{Zc$$ncS&M(vr*Re4$H&?C93|HoA3%tQ`YGQ`0x_O`8Km5Fu;xBTyomqFs*GGCGIMv1*Ft&vJqt zW#Py#OoP@b8?wmv9-@;KjJ)#nMQKK| z;1av9mQ`Ia$*4n$&<_4f#?FQS5phhy*m-q7l}-gGTtLx|`wlD9BP}t`ZwkLU=DDWvJ3DafKHM?Jb6kgt7d4ceyYKZ2g7|k@b5ofbI2Jp?a2d69DZE|9uU=^uX)3i zPdR~Cll?w8*i_Yl!Q0ED{>ef8|7_D;C*#zI9O}jV>7;m@;``=_oJLE5tI;i0P%vG0 z{Or$R^lGK|Tz@x|;TP!Pz%MfCO6QcX;72O>JrW*X0T+6It`pLQDZweC`})mkr{Ly; zC*g=P93XzWkVOlH!8xc^OA6QSa~4~$5->NBE?ruk<*)m0{zBl zDPt+RSVFK=Kqz3ahYL|HL<8kY?9h>?Q@p=XA{Wy3EG1f>ux(lds*w=~VCcvIEOml$ zy)$gCvpjbZJT=xaJS}a(&%IaRko2mfxcJgdt_$_~^@cvQ_K)^dfn+YoWz*KV$DZ2GOpM?uj*nirCbZnbDw{` zm=g|P+;lh91$lybELq3FWI>UPK`%#szflHP>op%~Y(qk>tNIj5>*AmnpqEMUev%MT zqqjlGl)4s9i+U1LZWJzt>?k9$@BFAS3pT;~`Q4&7OETB?X*06j*8HSlYZCG+>~023 zgS$1`SWU4$MQ68ba1J@&c`04$Ye#m?WBJ4Bv4jMPPb$S{D#S3K-=<>60?jLz5FjyQ zOtb2RkqFN3cHmch01k<$ZvrEG9_r({Y}7cM-O=~Z+pG0=dr|xxZ~jzQtu5g`-n;l) z-&QJSYjxEUcfFp@v94elXe7;YnBZ1FG4(epS*MOm7%+x4M#_12-4_+KR5L}3<56hq zUK#&_#XTZ|KI{<&^EJ9RZc{!zp0mXqbs=Gr0x)xgtO%qkl*e-5m5kdwcwo2r`5j*u zqYPtw%v8!yy&W4*JikyA()`^4tsKo=j_yGQU-`uyoKkzi?w9M_rLR>=ER%DI`N{6J<9*QI=iI@uTQdFh6$4oZLKuCnTW^>~(Chr%b8l#vwUO%9q+pZ{`X`QzQ zt*_>--Y-CJJVXTDi-FFbz3(ubxfPjGT@jsd0)`&^0ah$V8Ye_3*RE<9yZkf|8O%Su zt7Vy0vTx3fxvSX}0cdLV)r=ZOt~$yjeK>xS%N6M(VmYVSrz@H&Q(RIcGHzZnA|v{H z>eIV_KijA8d}!);vTHSh*!kAB;rvdN*H<`B*0r&a(nQ~*3E#h2>ML^I7CTlf>snn% z5i%pv^=m-qBHooXO)m(hNiTZF5Hj>(U1r!r1)tGO03_#_SHNK#6e459F%+QS_!p*& zFSDjMLhH>hx4wtk;M?+UZBr zg>msmtGx2^O%TUs8Oy24T~^x?efJ%`g0lZL-n~otxF3y2xg|gcz^?dzAE2v@&O$En z@$tE=XTPfAG$wL(sh)M)0nZ8@T~#5kqauDObX3nT4t{l$!Ibg0eoC!MZv01BJGg*` ztwejWcS6zqWxwbCFnY?H6b*bszoXTt8SfzSQykS^;n$vfgCKqWrov8fGFqd=Uk!jl z{`blw+EL1-Oux^FRx)mK5?W!j*lHiQ{{#5cezhZJ(j%tfcjwZL+&8j>Q6_tHIu}_m zWW-|R_kv65i#an$A;c0H|KJ7T1^C&n-u@brNjP=poZ5EerINaTS-N}J8rK-{mcFH^ zL(Dn@&`i5kn7NRYg~cc~r`t{ntW4W+z?iJBCcE0UVu_ z0AI`jFj5zeWNQU!cblU34`Y7-aycvuXBRx`!61DuWl8uKT46S=j3k{hM#z~YIVWoe z1yt*WXw5*i_$-CbMMApu)0jzUE6UxSLInqwWuug`va%zL<)XXe;ryp83`mlwu`u$v zK5qQkP*1O#nzWpwV)jp?-i-o^qgAe!2$_N`ZzBswS(c(nf@-OpaG{2~U-vvy?)IHQ z$*Ah2{XJH!L;x^_gJuci^;3ls;|G49Hh+pa&FAp$>7bctdq#9WdiFHMx3#W(KS(t{ z{ULu@3_U%#qMcz{x6jZ0?8M?fxQWHQE1`)=Nt?`1 zsFj%?gPXI;K4UD6hSR3X^hkbLpWD2guf`2Nix)JbV*)q*c~{hS9kUxu%A<=wi{njAWv0?8L@`!@~3c)6>hLWB^9`3s|Xdl zu7iaQl^6$D^wqMII+P@^1&K#=@(&0KWIh)v_7<$$7l|bNd4(WDVW<+I1Qf7~v@N}o zj4J%qtN=4KfmlGW%QQc+vdj8%;ZFhjQu{7(5I%(6L?_Y48X(dDJ_)(}?9?artw)O7c8; zJ4wcORfvm$MgXRSd&y*U1hh}A9D>GDjt)6fyrU9EWQ*zr1fpums4p57`qS%Qb)@^f z!UJe?VhWt$Kdya@~=fom5= zVS7&GP5-Zh@4m;RJsUREVZm_#lVrSYW#mS(zv=~JU64|dgdb6bK|fNTg3gYc_YzEz)7eJR<~DsQEB zxXr50RTdsbkpG6(J%M`nu_RiGG<`|#Chj|9;!h*^6I(m0n}85&`z)e89;_xC%YMR7&P4-_J`w61RS z^2yJ>a96a*s)#SOC%1X)?R(EWX8#HE961n=YJh9na?sgvAz^VJ=zq<~VjjqGpt_4~ z4ODs^(X?s)EY9vJE7*MI%SAcA}dj=Fkd}bT0U+2W}e< zFqV-9X`fa*gtiWi@n*1GT!Vkd3H+5rkXgOFqRFG(2k8L4c*xpU2`$f%=AyQY6k}FS z2pi)HT{bSZJ#(5|e!NkOA&iBPr`VZp-!=OB;%r=llW#rQSdJ;Jx zbBMJExdi7Rgxv2{kaEIHfmOBYaI}U$u8?=*iT3HL{7mN*FSBL?jjQZ0BPL!?P543PiXDJ9^ckxv9^7YC7 zH(N!U&FzY6zFr0j+6JY9_HT2@pJ{C)W1_e0Kdkj;3@c#It*mU1_@1qOFV~5@c-_*? zkXp>S)9q_zm32?X+Qg9Oia7@V6ieRG%hgND=+pcZ{u3KtYfSJY$)0u7bxjP}EhakP|Uf?4c zeeRonde4s}MB2oHeTNS(k;$afHqC06N8g3K2FUmHa`xdJ8Qym?akjbO<&zzuf7LpX zI@(@ZYEkM#!&9T&YV!=L;iI{NYh!W-oSPi92!#YEXcJ z9F3bz6aKzaMvc3dA zkU2oE5%P##0?m+_Kxa7>sKRjgigu&d_5#V(Yi}<#1DL~r+10h0rGHf zvS1pdnoX#R#2 z6w0v449nyTQM!Zxse&$0;fNWik-RWUU9eVrGPWXQ8oXh5Xd3A0L3mY8c`P_-5bb^{ zdCfUmNv{Hni1&QW>-~g$J(bvV>hQyxqLa6k>~ge+txgislJpemLju&E?FwN)1q!Z`dW1lo^`w;p>sGr_gV16YzV zOv{lpWdK1OkPU44ru0%5ixMmCojw#X`!Z4iiZUM>DI(^NTehyC>LPpjK9cD62SL7! zBCABh*aMOe7OGxk(p+7uHQRNjdfZLL!oC(<;L5hQ^du zwifrdrVq$JBc7FP5*&ZKg!GyCj$I&Si1|%TDLx$m>qqK#k`oIro6$@VTKbO&(P)=g zQ_!?P4}x4OEPOzK)CCVjFivhhKpEN=BU(zTbjsBZuQfMd+2ojdqs3n>^Lsw)7jo)B z|B8@T4MsXK*8#z>A!vYMz*Y9rZ%S>Mg3Ie~br5}BnQIWK^&R$S7D474I~}88h0KeP z99Pf9bmKIzRJA61mTFf@0)NQtq0#q2qga9Z2GeQ z5}eQ5o&|>2^6!GR9ORK^S>V!0@N>Idm;PkZiSnk%$f|S@eAF$GUuD;;1{D-_PZy#q zQvO5UV%3_3S`O;HP9mujI;vzGA-cqaQ=ojoGDzPF1Y}oA7zxnj%k<$QLbunHh|2rq zAluXZCPR=}WW=x%-y5puEH~v|N`J7u-|>Q9h9q+K>s!AczfHwoAMkFzV;>i=S5b42 zU?pl{ILSa9gufJoulfGNyAx_pf_&83XW#My@>X%WpDkFIZ*>#x{lu2}hl&tkY|bC5 zx0HR(50K(A7bhY&hQA*4V9tNJ^zv@%Qp}AQG+LLxMfH!lUUGBFvh>uem zOVH*$5eNt)Z&kj&iP@hTDz_rQ8IL=SG@U5mAO&X}cqCgGGxn1NJ<_DIZM30hU?BsUn#m~ zV+DH7QJwWsO=f0hG}c^cUGK@aPqfcDC`IqPvkHp#gNd;h+{{;P@_HY|KJmN^@>SQ~ zb3nLH2O-pfcou8VLTDPx$47?FpR=E>yqWyy#zYVPOS zg3s}L{Dt%!Gq;ioqGR{`O`S@UB~g)>0(H^sWGdm=#5*J^1wVR6tn@ z;!vy6ges7{Ml^IS10P}Be8y3e(3K#=RHAv1E($rsKz8wqhKUGpO2cx&;i-ldJFt_J zGYO@-qSUdpRMW`B+LQLTwjapc$CF^{16I?KbNdppp&_u9(ph#b*%cHyAkaZnigQ$yq*Eik|L$iBnu#|DiodmyDXtE1RX zISV*to@H69SAfN6pE>jAAFeCW@8434{*2V%5T?7(D~GXzNpLOt1vG7XliqnVrdfS^ z7>@_!(*w7YzFs5bR#RnF^o75Vji&lQsrm3aAss#$LcxzKzz}} z3EPN`8rP=ch$TiG^&C-H5cR2h0H`sY8F-0@5-~__Qf;YvT|p z9!q5%V5c0p;KrIuXo`z0*lfWp&TT4q)q+i(AabpT-NL`@(Y!;jLwhF%@oLsviIICg zb{<-PKJrO8i#pmlV8skxFmtNcD$n+hcH8h^_Ms|&~WwiAjFLvq4m=T5a;&`%=xpo-0viMPJne#>%Bk*bn3Mb zau{1AT3R0eKE~aOHvm%h`vl`M$RMW*dTmdqt2gW6W0@liEGnu4o8fzD?;xe2!b*nN^*^BP=onhO;2Aq-aPcur)ThsQ(8j|9I2g z;Ur|t_`tqrNka5e@bY`o)e1Z4v1Zg>#g#Hlv6Lj?iipjiA7K{jmWXIONDg?mLAt1U zgKuH>ZHfoZ?Rg0j;yVlv>%fSen3%?T4Ez7spQl2$cXAV947SsJ;r=eC`{}M|P-1Ff zXaY*)K=QuU{9Bv$Hk6i`(p$vLVg!KAm5T)qCuAOBaT%0lHG}<<1*=X*(3a z*&a)iFjSU4l{pVGqXFhjFn@u)Z6_4|WJB?QG4|n=BPaqA{4V3L{h{{m0LkCcekiuT zZ9_(d=mrYJ=(a>eUI`H6wY$#>VV2?AqKG)#30&-c& zpMmxXf3*xrA}uNhtaj-D^rQE$&7^m=Kg&sf<)L)a1(V}7?9L~JEMSIi+>9#1I{DoE z4-u>w-h*J;t`rrB9|EqbgB1_E?@HduUh@6A%biK4D0eZOvfKRTBVU!{g1Hlv2!2rm zavL(p7^2T(x*j`=yzm$e3afOlFcr_-`Dg}VTXI@ciX_tYX#m*R_-_DklD2hEUJ z4BoARMD}pfbrtYZ03>6I#hl=y;Yh-Xsopl+Q^8m(*G0CGlTP9SHgJ|!%KOnG5m5kk z%jbA-V;@j(QkQHSPV9t=H|J^vV=;vBL7sBJ86kqqem{rrG)-S`4Wo>b12)rAXDpM*@ zOj9I)%Ch?mia)7WRVbIPgTQ*|;=W#K$1_cq1f-DuHc+tjWHxN>)LjYch*0_fu-y-4 z0OweAi@NI+KWYrkl%e>Pto*ual-BS$Cd`CSO?qk#9Z!5k@}^U4=O5*+{jZ30)CqN9 zBANFRbnW1jz<{|H-K58HC2ZvrF9>UJ)75Vai9qr~g{l-48(y)+u8!M;SO*oh(?Rkt zM11WJ0PR-eQeVSMoF$P3*HJy7=0!r+9;HHc>aX-xgUR&-WIF81xBP!iGw)7t9h zkKss3N?}MTe}UrVyA^phBi3_JyiNp7QLIaYX>Wls6nagU(IIcD^PITvlV5yxHuTO= zdBpiteu4Ng$_l><@mnnw6}h}K1FK*Ef~NH+qSwe&v}NDnkH|^;x?jXE?2fK;w+_zq z`lZL}LQmyCDh>O0HL#7n_+n8y?%dAqz`FIv>Xx;i9(EefE$s6#0vd(-&lN}({+vkq zXD{M@2c@g|Xva5wM)|-P`8dgr~n_-y1w(705Rmr{-i4%`fzg$SvYK6e32wx6_I zT{UFgSZuw^F{{7-&FC{4urU}O@&=d*(kS$~N~sH+d>+zc)Rgt$6f8uucP?B!vbyTx z2f7z7R`ZO=oj7jx$huyxnMDF^Xzsy|-F+fZ*_8^I&1R)XPG77Ma>2aumE7ha1Vs#flWV7OEo@y4ix zyJVYIzD(u4i$FW>9I7LZN$J)hO~lP)Y`}{voZWLNJ#8}}DASUYV+BBQ&+dUWPE_-;TYREIVP@7;I% z!Pd{%`DUOb3PeXNI7*!VfSV8_z-R21ii>oXBKB+D*^U=yYu)io{n@?a2({8XH0k0p zs~@gEOr6-`{Ge+2!;9Y^sQc-b-Pn;2$9WY@EiX`W`0BTbrBaZyZS76iv$<-fm&W|e((AF>b(Ya z#rJ)|Q~vvcr)eJ)JaxaX!aDV?3Tw#P58QK&|K0SEfA@q0M8ks%vq|b%avYaT6*LMM z{$D{_((`PJiO-&^%{zwbgXRVU3|y=*YBEz*=vF|&GI`PowPcK28fnZ9rS~4_dR%0bKm}b zie65Th5P^z&DL_ScDX~WNi4zK{NreRaAqWLiD7udJ9Rn?w- z-JmYvyR}bR17{vqD|x!2A$E;}p&EJ&+!#(2L{bSbz@^(Yj9*6;2K zeXAx{?yt_>EXc4$WPfO4%GrPVal{G9UU8D2vs}AXgrpf12 z#oQM8Yr6IYeI9PeZMgTgILwzU#L%@3&Wii1J^%VkBVpRz}=+*dMQ11OItlHnKC2$m3|<#mh$_=gPM)_{8IScUIU6U)R}Z^|BI*R+pRq z&GiO?)(%c}$(-^hnJLDEEqbDQ`73o&CXbg(N}>3!tt%PU1F(C^$4mavM~vBqFC~w3 zO4rA>=`PJ!Qy-e2-j&yw&vW)VW|+CqXo81?WQR}HYlMd@FG@cy6>Wr6dWRiYj`bRM z7wP+Z%ZOnHT?LJ{^n%8ppOo~W@@zKh=RHR)?P7vk-N_Av1!T6@;}M&EA<<+0(P-of zIx&<|IXpwR;2Kz_{5xO90Jyt<0n}HDo>gtMSkY4_J$b)y?Ir6~$At4}jG%AE7rTeP zfsv`J>9AKl6jvFQbHXp2vd;`M)4R(WR#SA{Nt1XcLE?!}i{+62NW6#C_?}1cLHrPN zHtWwiwz}^0g};&->v)u4s(!iaUAZB;AVjTjt3$O>_j3j30$dd!W{{kV@Q-pNb|yJs zI?RTP_!X3UtxiZtcqx@ldUSS5poxSWYxKwly-CHxkok$?dnSQXEV7aG{0ulf8Jg*= zI%(CK$fijtUJ0g?nkM=8qT=&3rX38R4o;|#%kJN;x23|il^6nQSwP8HTFHINxA2LdPH&WDQ)sMC3a$|TpdrQkv^gQC%Vp?r3&-&pS_FTK zIiQ5)OVFfkh@M>?H6%r}3z4~Owmo@6Q8)8w&(7gGk=hM(t3G((!=ZxbZreKEBoety zwcf5zHS~UU)2f}d)srk3T!Jg#gif}= zE#lcvMck&k=0JN9?g#gh5cy?Lj4f%@@DNW!>q+vbD6FWcXm{bNH!I(!+~5!Ald{B) z!tFsYjrlf(^9t1oAHA?3u~SM$#stBv;?BS?e&e2JdF;_!vn@$a4?2XwPu(cV&@fo2 z*SM?5MSB?8mDoCVhaD1S%F$U$ehq4e=95-HYDI_y$Dt`yvx1g|@6BX18jRTRIlfzk z+*}E~$BzO|jc=-A&1 zE%uHO3F2FCt?z#7BUrBk6;a8rPpr_D-vqeKR&JiY01oo}-?XRuwa0+Y)b|74SI|rN z8jdU6Z@x|mzXacFrEZ+l*+uSy^&2+JY;hvZc%f26%arlLIfbslC1CF}lI1 z;@3F2(5akiiJID$)iohJoT9^gC&SG-QsHDlT@(m^^k|fzL^4-ZzYbNY)aF)h4&|gJ z8PVI*`m(RP+sDQ^rt`>rD2S5oy}Y#L^EJ#Sv16YlsuOdb8fRCK&k2~F=C0}TVu<;x zQAS8$JGIW0M;oL^{Ki)Rf4Q6DS>(N*$&IbAl4 z-FxzB*%CrfdaEngeB_m3uxJ=302(=L2#}tlrrd)0Sgi5=A{3le-Eo(i@-2j9tDR5< z^*KANT-*u+R-oW#LFHGIhGLB`(tf3bYK0d~e4`G)@eB0lfWzBZAwdny!}q+z z50GYMwW(7vD%E~M` zNX@1Bb_M8GI~3b4r$PIL(KP@dAsm!4g?V<5TL$_i$df}-o%V{>)K z&Yl?DNwhiUCC12t=NxQ-iS-$py$j+>Kut%`eQ>x5Hoh{klyLs>#~)h^U-%{DSJ&=L zD0Zlps@iI6PzieqEsQPkdy-6Ig{0am@aE&w*%UjfiNHRgh_!{cXlpBK6uKY@Q z613cCF_v%epOLwqUik4L%0K@lBYYbEr+IGpUt*#6u<98B|2Z~dN_ybPBAV^W_*9i= zw}@_j3Ow)`PwXQz=dTmpK1_qUMb-WO0VwfqD<^iSj9OrR46q?CO#vf`1=YD+A*7?P zU@)w_(0%SETs0mZ&=Jw3(7U6zJJE?#$BtNOG>QK;W*ySD?sPfC8wOz2s5Y2o2VuMw zXh)PLO*pR^?F3+w$InyVVbFXn76rm+kt}<{V@(3FsH&Ag2N436;X&2Z`WJ)+6yHED zt^iWo5LH9KRfemhvKP^49+EW)NlB;fXmogIo?<68RXFDSkY8r%(NIT(u-WsOv}iQ*Qs9(*t`wh|g}YO1)o_tSILQNhqk|fI zHlfTg4&}KQ_83%wAf9XEB=^HdWZ6aNR-wZH+YnwEnk5Lh@`Vdoa-Ibz$QU4Hy59XT zjubOQAf%S@5ySeju9_$qgJPkMAY8)G!IPzcq2WUETSkom0;q@McJLMVlxrnr(>*-y zx=qS1C~mk@)1f4uYo#eVOuSSXQe?BY+JH9-L@x88CJ!gU+hd?Jg*jf@c3V=f33OpH zgYT<&AR)q2JdJ_gHVi<{h#l%h2yb>0qt6kD3HOV`s6*&o3c|~CDLHJZ8GQxa=1dNd zOv*MoRT}N)sB-{?@`seXghx$yXPWHR{2dxh5Rt>9E+5h|#0O>Jkpb_z)Ql$e*3{0u zDI`McK>{=}cm%_2i`i$vB>^zjMsmKeTqEPHL@zVOxc?~}ferCGF>DUf#6?$8V_+6; zOsg`okzF#o>-#$Oe(++;e@sOKsKl!#N}#Cc9S~jSYC~Wu& z6J#*nkhM@oCFjt)ORQRmL*6njxuVW;f)>e86A{y8v8O2jAN+UgB^2AaEN|ZcS{0-9 zt!+fmRK2irv#T(6xNfIxpPiD>IG$s0*-P&27?`Yf(VU~w8IFu73X>OENHaumxV~snTx0u zNG>>=2YT6NJ4EZADMWgZ>FKcUZ>zn2@_4EsK25&0Y4>*wHlHKiD1pe(lql3}ER}PJ zj31U+T@FZ*_f<4c)o<3bU?+08UplKZR`NDW568clNxHoIK1o>pOGZ9aeR%RA8M zMKBl~szW!%biPo-SxAP#*ZaQI{g_W8>QaW0GWub2ITtOn+SkWOB==1;MSKf)ihd=R zhj!v!Ie;?`sd@H`2)DzlM(3ak!Yvd^;eHQ&TkNb*2QjO+r<~i6jxr@aPO|)OoY=t! zI`i50{0+i%Ovgts(MClsBWNrKvR4X)O}L(O;M89udHs9_jOAs_-}yxgr(LfdUb7{H z3EvvGba}ym*Zem0F>L*EP(M(h;1>SHpX`fuMFdI6Y_I*I-4NMz#SwZ@5P+U9P${7Y z>vn}aR4|O2i4_^NoCOu8i2k(zh4jb>eTe?&Bk18!e@qBn-*M7gm>XZf>8uyLAFDPv}Wsv(GB8=u+XrkpjmMEX1S;HDI z8e;A;M#}ZI$|UIIxpU{1D7r>&gLLIyp`d+Po@~`R)14pCRvL_s9+Kj6!@xE7|83lQ z$73;jZ>DHZ*86>QGyoF_>(agcZ5wbdVnbn^=)yI)CSfkKzjX6|h`lNZ!N&JoS{HN6AglNz-7KE~!u}ITe zveecEqJaf#rW~rb_t%c?yHDq=38K>ppRX6T=`M#M_q>OHvOF5O%XmLtt{1XexDk}+ z1iYNA>jv6Z(3;&DOl7wIqs12fPH9U%AO3h3>}VV<1#(8fFs%k^kD(7DhNh4B3kH(i zk#)}*U;kFBVwNrF3>#qQAmx-SXwx0C(_4jL#(#`pLR|f|F0(Faw9FK~2;)@r5d9m( zc4c@|8k;ee1h><*80DyF7aVX2L`}Gv;Oky`T)(UgrV0Cq zh!6-Mr&`aSzx{F44Rp_I1Db6;x(>ZGhvtJ9E&HIMW$>IP1--}r5;hS!Ml~xy4=Xq= zAyQQV>o6_1$iiw&Y%sD$8s4*YM>||yD{s>*b6oLLy)|9m~sX) z53&7~T1(0!i5i)olaDT=r;`Z+Sc>E*B*2j|a$2qy%02$s5#^eaXnbK0CuI<^%D7Vc53O4uN3H$vUD?+a zUtZb!vM*QorB%@NKh7KfIb;04t9o@EzpwtF{@UWe8i*^|E%hjCW5{561>ANNI%KEOtbXFqTfN^R-voerz?rQ?g%WT0p z2mmpCR!BAFV`^UXAtz~l%igH+~T6gJ%N&*;B?CG7@z5=yQ=Syr|Ye^k?<1S}HkP52WKX3ViL12O{U zLMXDjFu+v;$mtbH89L?_=$mb5#!iyo2dSu@b8U}e&Vzx|gTl!gM%E7c!X@GuIIGpd zdmYsCi`xsfg39Fs9T-UV>C`&1Ps=p8lxkar)u-&1nLB=pCRDN!-v#s~JiR72?V@-w zPYfQZ_bT6m(H2lk25${?@?)yw@;d0=w+5_)&^jE1hDTCjlhRihz7%OsuI^~N;xJ8K z_gKkJisy42--}BxvA87WSe`XJrn8sggOfAalh*#^^cv8VoQ9ijK=P0QP3ib;(3C#V zWIUmZpC(WXq~@=pNeL*pD}zO?#1~cq&#KnsewV&+-l73LXbR{-5$f)<>MpdHLEFPS z=hjvEWuH!!_kp`_Z3_c?1qbw|jaw0*;wUG@FZe|I=q@VgukOm*6^kSn{bhh}{QU4} zh(``=N07u564M~ft`Y?>&;b_#_AbL>mWGoP1P*su&2|Es)}UUbh4rGBM7G#AQu7g{ z$|X+vB-CW#ax6m<@K{-#b)A5oP+$)vyn~=F3qs?HUHnO6d*f?>^kwFsPrMp-axId) z_*5nO1L?@Mv=8#2$Lu4{`nbULFd!5`FNz#lQQGyNEgt>2?d3bk$hRYiG_dm_ytu3_ z&~{J7N$)TSim-@3`Dj32Qg1j8r~e}uQq%o10IJlTmRTj#bp<*-D>uIM@IsWy#=bGX zd%feJ@$veBRgjip$9LHT&Zo)fkr3K*zXYWmeviuEH zp#zy{P*s9f6`6C9MoB#xOpSHR3q2r2(W!7j3YC`trXF~F2XthE6weJb=`x6$l&5jO z!U;|AibNHAMiwIjkmF@C!&!i-f>sfG`!|)1tb_&N4>Z#fycdzCoB_p|$)waJ^gRZ-xuD}W1-Wx&0 zi8;C3fpHxT1+!kqY7H7KQ5cTsXTv;37bDNvSc)Y^%VIU*VFJkZFgwwKP1D}WEZCN( z-fjH6w`bEcF3C^i%3m1H8t1XN&HEpL%+<>p6qTiXAsYfWBCI5h)=pQhUUs>q`cC`VcT^^?XP z8K>BlwY4GkoRbv-i_4X4cEp14{aVG@S|06&$P|{3(V2J7@L}O4s5U0vek%T0A}Q21 z>8$3`a(oc+g5cl68`;3wtb{qv;Gfl8~#P* z2k1k&D;wPJ{raCF&5!MtHAA|uy~h(%z>~jR=@qI-eUllSJLbPA z4`EPA&K(is`*X4OO6F?$+K}ql_58v@zRtQPYsP)`#qO$!;)vR7sA&2-mkr0H zYRJR27(Ug>NZZ&Pdj8tOG&jP_8ss2(-j6^Q9p2C!54uv|wrkMH%?}D}p`6JY5A3C_O)cbkRWq?{Z3Ik zUhX@*{iX$~OP5npgLJeOEZi97L4~Q^c7M*CtI{>=_VU%vVEf z6;hq|`|m62T(&>+(sfG(=8N|{@166?B7+Q$jNEbB#^N-)Mdo=W@WT^4n0((8rwOFD z2&O0NEXiz(%`!^~jDP!u0S;cMiFQG;(3wm@Ye+}^8 zwOxWr@jXM{H~Vfh2Sdu>pQv;1n|c4&+XiRl|68+P7F;(ESpPPJ_=R3oC6K7DQL6^o zfeqdqFh_hu9XZ3#?v`0qLL%PFA_nJ3C`mYR3X(7Tp7pPI2|@EXC+*9Z zAt{y@Bp|^W>qWJITzcn*t&l;(1~(j?wN`N@#0nV?x=;Xql;X`&sS*N0=|TyXe6UMS z%@G+LRI|cIrRNNSOqW6*JH~v4JGR+hg4!x9>rDUbM9h=14LBRsXRmiR=Q5O)f)$7q zjl%@NHAyW)AFDx7zEA@8H9XqY8N8u|%aOu|Ur@kARp4c8EMmZh$8<;==5Eyl^a|{4QKhQ${(vRmu2TkL(jIc;TrE}u6 z8^}r~3C1%bCX1@595p5&$QOFs+1c3zJt(k0Yw&1*Q_>3#s4!$iuda*W0C3c;cW80{ z4;^p;C3}u6s>dSF6)FInaVgMIyvj(`8xM1c(!!?dI`P$qQqY?jWsZfbk>5RvQ+lKV z?(y{pNW<85j>zrxF!s?yQy&@_=oG93GD@$(u+oB^Y+fI{3$yrWRV5SXVoHBok&;Zn zE~K=yT?8`0vIySiY}~B-0NBVr@WH{^RW7#$fxi&j$|MZ`39n@+W67w!zo>*8myqNE z3;}Qhsn8+(iS}{qTm)~GyG~sn&1^g)*Q252scHBm=fDo1?zcFQy=SaVTW70Gs`Pd6 z^LY(e?TIvNe}>k%V3JwGI`IgCQ8hV8H_1w23HK9k7(B$vu10TK1**NQjRhceN5quL z_!1NiTS-DCPbXKPW$uUBY%HNGWgV|I#~?LU;`jOJm{=vJ+!8JIb(7tp+^!MN5KL5} zPt0%0OC(Nkir=%#ZJ5~{BZ54yB|mYI#o|B;-wiSN1_-BGadP-+Sa?>5uSO-aU4ILhu0(-hzC z)RI0z>7`qWVoJ-9Y?aldL_aIA#qu5~luRS$tN_Ub3LGy>i0PmL&q1+sLnK6u(c(kY zLmCacbLOOx4X3eCqodS&jI)mPzsVHkBW>%%IYy5N*@~H$>n1)m4jdnGLmB$hlC6a8 z*0tMYUfo#ONuHzms6GiqlRH%KHE6M|>@1#QT{|4oC^V3&r$CrZ8iKbk0RiG1zb%;{ zL{p%>9fpGd4iYj_Rm;v9C!=3APe#eSeSJ>UoC;J5`sxn8oM=XOKv1pBL=O{@Hhvx# z^=8F5nn!1TC*KJ&o)=E{Prl2dR?MuJZM?S>G!zILrj9R;Qu0umPfkd=JWGY7o@ z>$~OixN#PdGM1pLe`%mU2vLJhU3p){PNSPz>h*ssUTxiWnC`sPe7A ztydmQq7?jzlh59$8{V}A@m5>ANsmzKpfmepEh-80V|8mJo_k8W!8XPXM#>{VG)K20 zqrGZYdA$s(Ez;P#-F{yVY1gfR#H$0Tx^$HvpBgiV^FT{?tGwZfP6@malH0cjgV$YFvG-R# zN)uiSM`?vyeT7iE-;9n>O2b?I=dxH#Iss$d%aMTOyS|04XtaBknx8iFNG1<0`7T`iFDfq9Cn* zgRXdS#o)kubGqXjd2l1-7@C^8!t$)^)b_A(meM$As>zYkn*TfRor=7?awH~C;0ALJvp7wy9#x;o{mbdk1^nvpZt1o~Z5acKK_KX7pOG1{ORYOX~ zfGm~bE$=VZ_c&~(^aK8FZ)6=iP43h}|8nnY&O&7AEDOe_JlFzW3AR!K53Z_o*D*h! z*#hpnPQ}Qz+e3i4qUGuZPjO*Hu7p6RAqAsbcKh%;j25Gza|8=^ooOS2h}|=_ zC!c8l*lL&eGW#P1XmlM^34Ls}i`s>I2%e8!gwmXJI80nHM zvX4-?o9>AI()Xl;(cX^hpEg@rRdCeaK>gDoZoSumio{Fn)E;AhU1MT!_mda&ID#u; zV#RKRk8Zm{%CD6E#YL!2@-1}X4MxuzATQ|7`0mtaZ9_-1o}uSvQA6e|{X_s7G~4wr zfm|IeJq%E5cY4i6H<@@767}6>K}pn4*f98B`k6AW0!;=E+dclj^o4=*e|xDFrmrE- zYr1%fI9UxNU>1vtv4KZzsMvq%UU<~gXMaTd!AvlSUhkZ9;P8!L>~R9CD|G+ElLkRH zaT+D(G_>dCe3_+2Yl}UBDtZ3?%4+@b=p~Cndt3RNUKqwi2fdHNtEZzoT_j!1< z(;u z-ITys)R6*Co-xWCtg=2yDF6*P_R^L^uW`PznyDI>6^%WgF5`PCz*7Ys9-zgAlBJ3v z>lOipMSu{2d?8Vef*_w91NAn24v3Sb9Z%#mimHOaO?(%x3vm^;=aJ=zgF0&}`#Tum z-D`jmFOJ<}!h)7ix0N+KdbMzhRqndxF38|iF9>tQq}Ab#1)rc7t(9TvptE$fp=vqS zWtHx_?3P1E_GB#pKid(J%1H;qE0h#L$2^fzb8LX5=<`wEMAKkp(U@alk&L(vXZSYk%q_j9Y)R(xK5YgmT=kRf8WW||;|7@< zojW5oqTFbVQB&I2if}UsBJ%WhTgOArS-3t(s>SWnh2hvEHAnDk!LQl@*PFZ zVvWu}Ze!SGcJM+s^jiN==ut+)&?*9|hp?Cg*jEWpdHO;KPj@$+Sv?;nX0?GJwiWdwJsjg>nyKK z`4d|D5TS?zdzBAp`atc`Sz0$(AY@qHJXNUsWL_zO+B$JrkgA+0=N&+a1|=War?|8T z{e2~odh_x7j`v)^9#dyIt>RyF$eHprQx}BonhiS6`${8gJ}T?ex41N%3@--TzSBv_ z(X(R~gtq`%O@N9Zu*5-Gmu~Um7Bt}_sb_tw38IgM`l4n~g>5y-SZ9*q3#C(-iN<<` zN6!zvN3-xUbe@iFVt^r@tta|C9+-4NS8{D3&t}zrTMOYl?50<`-jZoXk1AaCSQw&! zZKhPEBHw#;DETy_Sw{GWZXV8cxQK#ps<T)bvV5NRPz~PKt_xh=hR3GA;t11vz|FK=bZQR_1yTyq~9`9G8-F| z$(kD|;tx{PbD0&X@HmDQOl>(fKaSpHMeqS|TJGZY0~Av`Gs9O%{C9PdkIrlykXsn7 zmg$0rmPSAEPaX34dq_JSNfAfbI#Vz8m=L941tUA@vhoQ#?i#=ZOr0-7NQalA99Rvl zD0FJIK)QPI8r%|q4q|mKkCNXChksn$=sx82 z!<{QWT~g+Ij_p}4JK9+*f>E2?t}YkVN`i$xh1QM=A^HRXpE4^$jItPzQe+26smU5r z>Y(N>jhX3@iZd`JwwYfGRPfwc-Y|t>Fc7|nM_fq3s?wHHtJ>@|b$G$D%q!ie=dC*9 zrs(cAeZzVNtV%-@VmbawA#~xKLo>9NrK(;}(*UifX{grI^nwRO&FiG?PDO$CH{(9n z2NtZFXQtu|P9ePp zr)aUD82KYrUhJf3Cj>m*@{q(U`q^xVnblJecuQJSP&9_w>NLhzDBGX!NOYTdn*8)- zFi~k$b9b1oR}?J~*Z_bV=4maRX=U(#y#w*kM#r3RSJ zSUeHRErKJ<>$~!XvqY-f@Mx-HP~PqNNS5FYFc@jXlb1@|-*tNp#6^B`Po$r<1XVo&ln#zNXSfmOrX=@W$ItpJa89w_C}cV53%$arhcjwux)o z`6MaUWlDNZIk~y^{n~(@UlFU`gIIMfP^D@0fNL}qeS=uV`=`mwt&0{d^8dOpceYP* z-rYbiFVc9@GBaoVH~8Kz`)m@gA=XhePF--6)!*brptO69(uJC+x&M_Ac60X`JFeG$CpbpOGmvLyq#MIMhud0HH$uv1zcmyUUE8mlm(I&=5#{)gh z+iUmYP$|5WghQpKV=fAwy4skpwkS2U)|{hEBHK|E@}^!?7cbb_%FMlskFfPKi<8T0 z2%1cy@&7p%EAkJTYV~&R!cH1}0Bzo)MZPPKgll3ToP^ZVH2Q0j1W!%ln7Z)6`YqYv zPr};F5wz|cI9%+aUVdT#z2q1l7xgSkTq54q_R-3fN0CNxas)q}Vy#MmqYM%YtVJwZ zt4L->eSI`}6DRBA1?JcE^(Ws8EH~2ARgzYjOMaPzy&>}HcR(aeps$Buf(@M^oVAkIGVR<% z>k<|$X;DX3)zT`cEWF1yCnCun>%D#+$$xl<^`Ez6Y*j}Yc26iQ$a#gubm!MfE&?g8 z!?w;U2i_?xUWlEej>LZNdz(v4lFWJ&lASNI2M>rD`wL2#i`24F){YAnEy@;pBPU`b z5*L~jE@Xi91$;qoI;5~(>VaYDlXoR1BM(nZ77$T6%D|)UY*SGOL0pHZ+g$;J(8bI)5qK@H@O^@SD`#qJ-;G2JK97y=+)2z z{JM+Sdzn!NZb4%!Nnu>dXfe4P!;ab9QKj!^2xXqtIv}l1L4oddB&pZ^e4wg^HFuA0 zW_-FIO9clyIicR2#&3+c+`iqc&t`QLhH*X?O?eJ_V#b^oip;<3$J80LWQtN=*rber z0l90Atkl8D7FSIqJ>ZPn&dwRRWdk%zF;#b&of>!gOJsYNky7eMGCK15F&uQxM*@Ap zbIqDos;safp^}SJgLJdpQ@#f)2;8QxPwD{@mP5F7M zg(b$@UFq>6%*wF2>u3=XeoE<~kd_3rH!KZ+w%Vk8D>GN4+>^8PnO#oPgf1n>c#!gn zgI;=fTNZWesG8Kl^yD7R+mij=L*B}jW{uhJ950=Ug{BGIXO-oMo8*;=Z3 z{o!fKgka2HVajLuJK$<+<{6zO2U0on(m231s3wnb{{`IzJ)dpl8kUlNlVC3rMuy#A zYLj966a9@i@WMLEf?;WLz8_@eYUSF{9vfD0zv*_&C@S1D*WX8ldy^(!E4UxVXYI+X zdl}@%-@+=`QJ&^MF{@OdrW!m7cAqa7FO9K`BNLjrMbs|V%;U!H^UYOy$l#dJg2LN- z-3n4&w$#8!&9j4`ue*&m?hqM4NiBjim>K>Du^{x91PLm?VI|Q=V9G|oMUkn~`-L%Q z%ok5|!Hv-O8k(xH|t>dQ;ma zwu?6D8ZH#F2U$c#{IJC+%eLGrn08QoByA(n$x?cq;jB&)XK@MXDCRZNh!uJpqy@s8 zSlzclgeQ|)TSr}0U?tvh(~uwO&$0_`lvN~BDU;;OXZvKjd~47ucUgHf45!|(Fx=|s zS(taLQ{v?LNp8d*YF1)KcC@;vovH;4FX2#9@auN>y2sSnswFl9XA>uCLfW8=c#PFm zcQ-Ln>we1Ju=g>m233fd1Alrviv_be=88MQ6%u%N0UgRupCeAlpdFh}3R4n$(bNq0 z@X84bo>Wx*Tq*yXfvjP1l5AZRl8rQ-he~m%W*qXO^HJ zU_d{G_Z!EQd3S}Nrgrx91zafLMJ|M`j#_q?%Z1QI9KI$#V&@%r(`bBzbbOa^_Mbg0 zd49Jr0b0Nr^o_#8A~OAtoB2#sukClZwOjDvs92vBicot$CDYJ}11$+;RR)otX*ye5 z!h5HW{?A-|=G35mhijJR*cAuAI_$gf7rAY|#@c$;!r04S8g~2J9bq@UIjg_J8~~Ds z@(iFYEO!8q79qri_YS4N5)wYAI>D-ffjaBHDZG8SV(H=PV7Qg=((#39B`MyrNOr=p z!WI~W-T_ufObsZ4ag)OkUWgl-GRNF$oPxYkwXLBOPu-8D-F!4u?KVasF5i%}Iyy!Z zN$p;|@cf~JM}BY2(Nm9Z=|=^z@G`|AEgUqH&-y}z;V)JjAn=Pg-~W|8O{qdA_yM1} z_~f&(E;%E)m8duHW$wFquMH9Q0agZ=NWn5Vmryg?$1e1hTDXah8Rkay&s#1_nW0_B z$_BSz|Ix|Mf6oW8J=2Vii;BK^0topujiVP`d2L9T;@hhQNOnI0bJ%&HvX07~J)7kR z6ueF9K+oGwH|moDGZ{7mndcRnmkNZ3**n-!}r{A zw>mMUtG232uzh{uInz&njwie6A3%x|zDY=EDZEY7A-b}qr17lW@So2K2L-`>lI~;+ zO9oH^hyL64<$pr*{x4BkN7o1RYnAA_GmA(K-}WsYxtamaN(1gqM!$@+T61w?Sy|c9 z9_GaI?B)K8(PW=HNEj2wC_z{~N|WtYyh_*f7q@>1uU)>M+gBfAm9!OTJ>roV&ZUiT zE-|WvgoK8>EA4IWGWJ^wH#SpQU@Bld2a=$;sZ0->yFp(Bd;4V)+x#L0FP_4tb!vjKOk|Q!9bP2r zH?c^t$kD!tDh}6jkr3MF1C>-|P}m4BkH>?d!?6*H`V3RBgLkjBg+-eLe%q=))o}q% zpc4P;?#Wg)t4Dj`ooh=-pqJyyBjPqeQHA9Z9I4NM5lm9Lt-w@o$CfQ_NGj03hL^@3 z4D-WAZB+~1TMg!7ZwCk(P7xbGOVxR~K#14CgsW6J)*Nk6SmVLYbi4)#ZxsQ;3)M&r znVx~de)AVe*JOU7`^Mp`z9v^4seX{cn=@oUUeSZg2Oh-HxI93jMEo?a`yFdxEMRkr zHr=(1n8VE#O83i`WYB*8RhpOwWEXdqgH_-U;AnywhyzQ_3O=hrDPr2dRyH;=egwjM`&%$xFf@uCM zZw+k9?XkK*VhtmTKZR=WU}KlCpIWr}j$*q%8#NGCGcWwkh7Ib=XIV7WuX$Ze(p^;V z|H#rMuOZgN!`cLoKzDGdddGUVZBS)DJv~hFM$|a2o)TbMkbPNcw&vF}zwJHmvuQRN zsu|5s+dkp8La^+25qTV*Iz;%@Gsld#N|e=~ytE`L@O^{gyL+9Y$G!4FaW2ZJzHX+! z{W#`w7nKUq^;JAwaXohoMpZDro?XUo#r10I(JrywEh?1fH$cqAAw?zy~SMMIvrR375* z+t%in%dkt3xZOA*g@0rBU|;*(yc#Q4pY-NBgK(_F=IS0>i7CTuUhweQCZ}A3cbO)V zubcSesBXAx8-;P|#qY0DZ0%CR9GvTA0$E^c6}jnjWZcb^VlrY1i9gN+fbT*sM-%VI zqjIJfh{Y3=2P)hG=xbcR_PTMv76tQ4BQcqAXJFW>mt>Fjj# zYaxmQOKto=f*Xpc$au_w^6C+q*U=0IT@hhiS*P3hW#>@%0v_o0a&O}xx|K)3lOb46 z;>jn7fhmPbE;_Z0%=()9B>^p@r_Z> zH#^7js{zHTyTU4RI*K2S6y3=nwr$g`;HMhYOnz$vF0;;L;>~=%mhr6fEL*LK<1`^D z9N9%4-X>kC5;+n3c8bY03E>rw7@uy^P?BlVB+0!#qHBY%b>mZP6>c$pt~I$HwoSI! zM%kL`O{9WIMkPwFPdzCJjxj9~@KWB=Gao&!3ay4~a#I;8k3QkFYkK$J zd%mbbF`|%^pe34>3h599JeMY#FHP-mv6DbGp!QFL%+QI5Zj=0vo}xGZaXXWU3C)tg zG>vj)F(fMQ3h$MM@wik!;)XE57@_;-$gkI}yH?kY{dsOx%a_U4?@~|H!{zyXsxzxTtC$;_>KpUmJ zGh?Pri@D^3a({E4m#TQ|#(U~lZf^^si-lxQ@Thv21M^#i>}l_#I#L0&7(8U-{+G-b z4PG~|J3K$@Q(44GL3;4J4sCJGlKP!q^KuuL3|PMxXFe&Ugk8+}e*p(pJnH_4@jv&T zO*y`+x$8jxwZC9SvvBKT2_pQ^j7ymkIqxADv72k@(h9kLZG;=Y6!YG3W#d0{nr_=~ zOD4{M$CWw;;}NS)X_lu{4X2Bn_S-<6JqehI+qFvQY3JQNuk2sCXptiHgw|?QN<#}i zn|qXj;phjjC?}apG}JCXhEtVib#|)qQ-kqQ0Ar9B#+C-Aq4R zf;h!E0MqReH~w~daq_sHlj$9KqDp-p?vTRW>BKIAyxIF|StL9B{ z4#5f#5rWX$Oh^WVn|r?hx5pG1avS!DKuCQ_C-0bOU`|+#%RlGYLTH89TM-p)BGq+! z_^aAUID=e2)XQyQYm)QfSpc8rT?m3`RNCIOw6s(CR}P8o%D#3B`A3<^R1$JE_~Mh_ z+6&KP`0ilerLz3O?nS%qLaEtY-5mxq8sq5<-*7VXCCN`>qCmSX&GPk%h3f{;`H`y`3VUq_4|d6>glhqtY7FU451txcFU&AnXzoiDKF^Do?J zi!Q+w8RGuR&4_7rEjw2|>kVNvF~&}T-iD*Qpoq*0P?(dFSNhEYM|#7X&Z)Kre8s?U4k>$2;!3&BQbDOFX})EBj_fXt9`Ozli9JzdZ_GM(=m zAuU2t@5#+KqL5ai!1PZ}M+6{nsGA#seOf4|`9ncDA4m(~KgVJexmEFwkPG*w% zOuA{2VHJuRK`U#Vh_yJ#;K`GV5MGXT?TWYhUw=x2&3Eu*EdAv{!%iuWN^Cn%fc*z-J+80>JGl{CYvsMBGY}fgYtbeL)xKEG2Vn z?6i=9<*~0C#v-o|P|=wV-_i$5f9^1|P=mc1yvFee(H+U#iHZI(yh-Fe(!ardGkjbW z41NlWtS(q1E#d)3fmCn6UA2KbaT;6xvqLk`X{+6qA3A*Rgevo%NcUm_fCaxOf9?K{ zu?r%>LU2r0)Nk9h5G@oCZR0q)7(cFDch*4>6?So&|7O}Mh4-;&%Ke%HVLVUPzr*KU zj;X5u2uzheZ_n?TDh))W8w0^1$3nEy1UOvOp95W!E>qE=W?nwmSx0<3rnr~D`a@KC zekt?)nDIZ&3##lIzHaZtiPs8SvgwH!Y2~_q0eCTX`S z`4|hWjdAd_7)YxCy|Fo+9?i0F1ePoV)r(3>=vN62BQ7(E~`A2 zZ@H&#|7{F0tc+Y6HjPcOtm@hvdE<6h^Qq7;&WY?IPx9@+8-pspcCe-|LK{~%NmN$C z*n`KiIMQ&8m^`k|Pw7%5Exp{;+@xe=ZDGQByI4nea7TP7KuyMsD?U)dAu!bZ>QY&u zldf39R%r+<4#M4G{&BrYP&#J(W%3{_Y{?9Mo_EBV?zGn>f;wroTl=?c z=vpD$@Qs|8QWm2laE>OS>;6baQDnZ7P+aps#Seibu}(ysYMI0tGgT4+of#C8^DetkUX6h2Bs(HKom4Yz}o`a)AsNkVY+W_DPlMDor z$AcaVEF)e)CEU^2rz-EDt`(Ed!gRSK87osPiWoYJWbt z@s&iP*VUIu!Xv*f>_VX~^To3XL_8Ams>Gy(7VR=$oFfe?9_GX#(jzVt@EhAedzsYV z`_am%o>eO`r|Wp4QjS=m=N(rEFBHfy8|4x*LM9PL{o`v7mv42`f{m(`irCn(8w`Vd zjGW~SC4YoHv%lMkwf1vV(Q_ibQqWIISufZ0p(X*Zna7`~;6zDxN!Npf*qu|_U8ulA zE7-fALS%N4kOWzsf1{Wp|(zay4LenpZh`la9qK6==0tRTo|Lg}EB%0sAt z;!i4hxU};0!@cLVIpY5f%IMFudq-LYi^hy^-xN~Y6F1jkBc0jYY%I~!>v&SBJj1p{ zjTY^FOcBi}p3w0a*PYuNF8(|E==XW#M^NxJKc^z(7v^0sFO#Vh#&f#ucRwu!NflM% zete9DI^uuJBwWe)dDR>VNqtIwm z+STuuKSwBc4B#8`e4<(*UBid~xg4gxxjGli06>%kQzRMuGhyB;;GIQ_e$-@)Yf{=O zZw(CliBiNGnckq^$@I?Fg627)Rrr--Q7$4=0#N#NKZ@y&n?+n6jKL9$r*b6qp4ayO z`n{5uF+E{I|G3AG!X2@s-@+wLG=7HVcgx)vlo|Qn1EIV|Mbq7)QmJJLz;{+RroS&1 z<=M{~u!nMBeYhj7C{MHfpn)!w=T=rOFL4_gSd(8#86Jh|QH|+E-6eMSYeuDGoE;W+ zlsD*R{0q`J3@e)tpBnVt4d9|&58e9fkDOY_MX7|&`@=KZ+gQ1p6f9&cKYz|bKOLgDtlW~Xe z4jNgJS<$Z-io7YIoT2vL;}d-dr2kYU_3JnD-T>g8H>eP=-9QKg%NukZC*l>3$7sXUf^fng8~7K zDNx*D<=M`$nkVxviipN=pXmUg;RAaPr zh<85tS+w0{y5feRdRLKX$7PAUwjrLxKxB;6mxcwLZ zYwc!!k*6@T0oG_+we?(bvUR%K*@6*kw0gR885$H}T37}$2VF;4??11pYs+r(+&I1V zB_t0o9%4IWg3~R#BW3t0KGSfm)sRKlwB|cv?Dzb@dUE4Mm*!&P|)%@>UlWT;gPQO;VDctlcm}xR%NuetZ!^3J!lz8JrBJrv(Q_tf8`| zF((*J#2t(psMfu!(e(88CowjjJKkM6VglxSHz2-??3%uP9n{uyb-($EONZbnpM&1- z$$PZ`FXehpdVc@?=3MJlLpjT%R5fXQZ-|M?&Eb^wS# zB(`ct(0N}+ZeXvSg&!H2K$-AcE}3YIVx^^8#ojU+ z2(Fo`EEAL5<=zuKeaaNfuNpjXofQ#9(b>1muf=;g&Ix5h*9pb=VOpyX(#ED9ihCck zd^uSUq3f@3vx4@^kK`Wr!=m9^}M}Rb1 zi5%y@r1G8MXkqF9rz5al-$~;ACJtyLbT+8+TL$r#@54{nYT~ z=Q>p;4J!ad>=!;KyUP|hZe~OEI{pBQgh6AquxLa$D_cTkb*vMkRnRfbrkWUtO!EfC zs-Md_!p599QK_AAmU8SpuayeJIYO3CW@{vQ?IS^$3whQQGs=+xVj_L%y`xPfV3OV+(&jmtk zxJ=?5EqCpFEZB-e$usT9eZyR(JdKQu5e*=E@`1TlFin zhNfADZ%lE81`nN){Qht3|K8NaW(&EpO%5By)`wDts(t~eXa<6BE{dDn)Vi0(USh<| zNYf7lEU#f%89xi4F8hzb5MSkrBo+TmmpB@8Z}U$3tYzZJR=c zP(>M?MlRYf1{Msw8pTmaUB|_l4$SwkMm71%dr=hgAaoMHwSCAktB&>d_C+ttiP)ZY ziMS&>9(p}J=!kR=^3ITkG69vPzh8SfLn&fBMEd(b06FwRmPZ44FR_ERr}?smzl|7w zxetS4dE~n*GNkXMECJ=?u5D$qh2nO?k4L2fB!+vdb)Rf# zP%tN+Qab(i)cprkQAqiJvXGa8s?|KkLYb(Lu&rl$;jfL;5g*1L*-pL3f)_#g9Z}Unc9XHvPL= zv>@0!o%#u>k!jC;Mr=OwDd0I_kfLtHEYd^QRh{S(zO~;=Wp{JG9pVUynCaw|r)44f zpR_iUniVNIIqh&AB_yO%S_d7pP>4w==+aReh6ZCA{S;xLc#>|SoM+gnRoqcUo+XJ- zgvd-ci*;A?rT_tIa1_B(R>4mOpY*e$zLn#Ekk9>8OPIU4Oyg17d;WK*%H4o^j_Acw zIW{9Ze4fc6=;lnWg=*NFMQWzI-Q>bKGh0QA5bP=9?kV$kJx z*G@ma_mHcmhkEabWzqBe_6*-QhrdveT#ZBN_rY$9WqXvw%-|x*J(9)xfY*^LEjGrw#foYiQ!cXOER!)h!62 zQZhk%3)gas@Cts;mt)hkF%_VMZYa1+3bYx~0B{a9Ia5G~Yz{Xm^Q)%$>9@gNOOzna z%uh?n0=2GJ&oJe+O&zcqLu7!%Mx+nMQT#&1*Q`&eb*b#*ml!_`5YLG8IneG`HXG4e)E`pB6lq`u9lH zdrK#8>LK>%s4EsNoz*o<70q!=t){*uM&>xqJ7MJ#O@7}an%@U$4$^=l1}(w~qUQRj zu*1y=89%nNx2-nOo3_=0EUH-=&@c~Dy|rCxmq7FSj1d58_r=Vk8#QvW7DY`O{T=l* z9oGg?9A_?D5T}!36*H%ayp9YDIKBqnp={Y`JLLpGA=?REQ#<-so_slN__^QZbFK8oLv;ppWGwypiM% zyu_Ni4zMqow~O;N9ThCyXj3uD(L=gMRac#y0PIzxw6>$zOLeOhvFg`SYXkyJR;Lrg#rSNDx1uSnE6?gR8gD8GM%aGYAoVNf7CD6 z$Q0RO_-lkWdfG;4m?D}(K{ly*iKPE8ESE~*ulBOgKHXPcL}U6;luMDEgRRo#@cu9p z9`Qo>#_6J%D^X`!~t%db*%kGB3+Sbz0j^lVV|YQk8j8pSdWbl zQM#mLXOGpNT+kM*v*n^jBj<9)$S6G{!+3^!!;f;ANxD(}VwBkK8C>KLqd+xoTU*<@ ze9uR-9$WvuYDxEL)e@YN&svzYVdXIz{DfYwWa9NeP5nwk>jh?;+e(%s9LmY)3@^BU z-0#;PP*J;15~35S^!7-0PO7hrjdkgHOMS_M~8Mq4DM&E1#FYX(9~DZw=HLdAz%MQt5n3F?l&sis@--?NdVL zA>}gCc)WNr5Cu4+e@;_OnK7$E?0>;I9^Z*sL(zA8qQqMV)*VwM-KfT{4%k3aW-%c|+gy6RjFN^nupe88DtWjPG%?_;kS$%us^NPZKGC*R6D3T zbdsT@ZO96%j?Z2ms3%-mbPqduH3m@iQpb+EC;6oUp*(}~={Kx(Wvr^VP-)3Tw~j*p zsH~FT`H{4AQ#3HrYI|gKl^&s5*zC7wmkVp;1+#tpfLWpv97dA<+Ri4C)cV< zX*y+CSd&2&1Ri0{fyMY`W&Gr2mGjxOV558FL7J1xnfh*6rOU}qs&FW_5}c$A6KZIe zO!N=odX{K;E7&G1SX)$@-12y}{L(*iw!NpdDh)bH_5E>Zy>0V*3w#2Cr>)hxMI$!u z0MEX(E$Ty8QNiA@9vrAQkj-!j7Nuzi^lQ%<9T)ecElFP7p@`e&z8&&EXprun))`52 z$6e?XU4C#3Dn~NayJZ4ZnuHc8;W~&XHS^+WG`X1Ze;>Uuy9Ou)ekQfs#fHYkeASmPcn^Rex3=K|vepNFg?0^o8yKe=tCKA4w z*@~CxfxX4U-!(Y6hCZ;Zdmd5Ja@>~t3`{W}D;t76q=n`hr&4xUl}YBet-g9u z4TrNH`}yASt`am|xPrD?XC1>*COO5&h91H@Bdgd?++QCtMC}2naE?tDjG+k-1GcQC zl+%$Q<7x%7EpjDJObaNMFy;dGIxb*0X@L-u7tWEu{jm+}nUHf4 zx8gpotI3Hr!p6M*Lh_M@*SFNfi~uXuR1H`fD(WRg3Vzk=N_*C zPf*iEwhEfXmr?Ih z;qJ{Ijb~}RdCN+jXd*tzJdHW0xycY*!H%w>u1w0y2ZoikpjD$i?W3sOZp(48pizA- zhjgSarfP%>Ant*#xaeWzNVYc742ZrrG9L!>`Wt;5mbSfp)B7J(hXbJ?>^v8W{l$Vy zIf#9rVdq?7?cLsNzM`6llVVBB%ZqG*gcUFDxcz9`DSR8;wJK1Lbnx}Ow_ll6KmH{s zh`tfuZl6|9SIXFSD_piubyYaq-!4TO1WZUT21d;-jL!_Cd8n(UkI~lEY9Q5l)~Qgz zH8uee(fTG$>8+HE5PJ;BJ!+nSkcJhX*jLkQ_;-3K@txnGuBn9*RC;v6lhSFnbkhgq zau1RpGTz=tMmr<{0mVzuma73kNXFKj%Z^xD(?~xcB>ihMC_*~UhW@H@GL5)2{A)FD zp{){2CfFRmj-aAE4Y0C>UZ-*y;R{F8U?8O|E)naY7oB0F9~Ota4C5( z2kT|2)O0ddklmZ|VukxCc;oO<=a;&l#c(g|DD{{}=x+%cE_5C0#g9d{f zo?ZwRh^=19k&>NsXHbF74`kw}`}j%tV;c+tx`n>RS$V8~{?Ek3 z9RP?!b-7~}Z5&hAT}A}4VPz3!XsP88#&Esj%N;djY8|Xfsc@`^l^d4w&{#VvsWepc z7}@D6HBVAHweTaF`rtgQl~l$m$_YFOyzyv$!g0;@KNXFz?SI_I?3~XxY<5rkE5U)j zCh#js3b`x@_?3J!AA8!b%p4IvFLqy>Ir|T`j-RvN2_busaw{ep-IV89-K-5&3wbDC zmzv%Z7FfM2)X;;Ne?fNi*;J0ZPf#qOvn)13SrsL&OqL za7>-#Mtj8LG17DW{TdZ!JOi5b2Y{y-3|rG`f}wP0W^9t({-sH4HY;0iOIP$hf+!}@ z685aFq7J3kHH9FbR!3>sX4WxYGIY3dmS>yYz=oa4PPvIpkX5ZRv&6e4gS=H$RpniG zx4QPD2b+sX{S*6`9JCR8dU?^{(_{)j8jN+dP; zt6>Y%Rz#sC*aqPcan0t}G8HZrLc;G7B4`db=wBPwE>sCk@rSlisxNK}WgX)rhTnJ} z!is#+9AT9lL{^P$)R}DM1Zqygb$FkLzh6k5^2BT|jBlbgj4!%Z^7o21jPG@A7~e}C z5E1+?5^J8=+vw0^zb^#i%t_HOCs{o+CmsA3pfS#z6ePryXNm3%UZT2q?A&|uej0Pq z;^a-#oRoYP<|Gf2L(NIdls`2m6%|gt*Q*71#%xi5R?ZofL=h)5P6aR6U+GvP%p2sw z4@;tbQuMQWD~{eFb$_MQ_D?ZcG{nMdop$VSre|ub*pRzId(E2V<)Wto$vF0sZ3u^|9&scHG+yq&%{kLeWP0v?MImObprirFm ztHw%ch=d;vkvJQy*!NWQwgt$%ap^kM=iwRHJ@jcQ1H7}ZfBX6e?Ye(yZ zHT~l@D<5_!FlNEaa?uiQh?X#f5U{O6y#hIU^7@l*d@{hT@nShS3rXP0BgivO;mW4e z>LsD99FS^B$Bo%oZBjuVR-^OwuUmKJyRm>_YFL&0NQum76CbH|xPWs_Tj0tdmdxsM zIxrV!+)~?tc`HRvQzRq~D{ww|@Ld`l z5v=&U)JlNV=1QQ5n-3w-~R z$Jejl|2#DB|6wa{;Hmch293I+kVWb?EHS5_&I3r&S@xj z&R%{)9919t=spdN04&J4xH+Yg_fr_w*O?{L8SkJ*F5X;q2dE<0`aFZQbCk`dn-fXM z+n=B_6>RueiYA(nC6SrJiac_7$~&y8nuA>6ujqXh3h4Biw^j(0?s)G*fLL$ot;#P_ z@egQ>OZ!_Kw(*7`tU-W2C?3>LZss!$wsveI$4kuNS$cv#uk7X7;8CoR%BPQAT5b^# z0Te}fovqc~rd+H9-l(<|hcA3fzA{Q46@8De0}T@6ig%w&Kko%+Jl+z#gf{(rI!!;% zH``u^KBct$&V80{HTx8!KgwHPcK9n1Hgu4bpn4{Fc6$EJjKwo%NI)8u=*VaY&xuLzsqi zZ;Tg__<_?;&kqnq>vxZ{yw+pYdcA?04#s&`CN4?*e&_}wuCd$RWV|h?XK22)FzdYR z*Qt5sYfNSYs=W%!N=RdCu{u+3`6h?&7@4Eny&1&iNC`9a=_YNic$&Qjy&!m~AI?)A z>e)7LUQ34ZAp|wp8AHOWksZO%_t!O=$W~&Oy}ydgn5`3D<*C zjeRLaQ6PP!>B_a$E2H8;fAgQ-Zg1{|Tu-4`Z%jJ8$p2MWZpr8ea$+`MWZ|!L>I}c* zVrQCE8+HIG=f4%q;e$qd6aWmU?wbF8?4foGDd@BLlE(=ac2B1hdr zehNA20o|n0T@QB2IY8JpM9eb-m9$!u9Dy>bXSCD{$tF;yP50s7wznWfXSFcytegqM zt3F^0<-l9ZBYF($%-xensOOuVOdK3dMS_({kW<=Jsg+cj(y1r8QCQ@%w{-MC$BjpN z)AZy3RXbz7FKmiI7N2sFw74rHkjWoZ-(cOBWNK(V9qJH)Ct>X_KeH~$?jG z=Vt2VAf@*#JLp#h-}&jw-oC%V?W-@zfD@VqC`lvv4CQ@WRh=YhzHY?m>9jaXj?Z(U z(5sp0hjIZ~c8IB8twcvew5?L)s=5!((@Uu$`@2)ux2gmmu4fH@ZYUx!hopd2(%KF7D|zO!K__8kvOdspm}`%Ej_axw zx?u<3MQQH$$V2ykyMd>TOh?XNdg@3a0^&7C7tQ@E5g^5V3ro2zSs@8r`ExnL;F~C? zDG)S?wrupk$yU2{EQ#J3l!a~y-?)j`Z*nrOGV)?0W-54AF&-}m85cRSO zsjJ{>a;X40y!3Y0;hsk;2A|29Pn&rw5 z>O8N1K`-y6dva%U1fC!MKyzMfj6V)`iA&={?3#P=Wp5PehRJ)=;keibnxRb(Gm5FS z2NiGs9W0{9XZ|Ua(v_z4cl{NkYTtW8Y+<+!De;jH%0b z?|}Cz_-cUtEHG|)c{d-{a>Y^Rg}J~)iqKsgnCoqu;y@nyq=aCTyL#$fS8ENNFE`CL8gl~tWsp2@}qCNm?MRcN#1 zop`cS&btP_5u{fZ5+VN3B(5|0^$@g*q2B zNf{QZxhAQ9ph?Qh$Ow8M8bjiA&*uHrufB+`))i7?V2#@Y9b{`^8iuI_@QN}_;3OJZ=Ado29?=7WTm&l?+le7^m&-?PbE$C6bDBnY`8Enzpk9WPUqoDah2>GI zavL-@L#-b>XG%j7C5&1G^!DzSQa~Ui?19z7`bsQuKv-Y9AfMhP5^+pe_`JzeB4`nn z^%hn#)h{w0BNQ-a*ig#e{f^9v!xly%Z(ZQ!NVo7?4X`>yQh#9$$3jwd7H?fePwQm& zmWt<5R6`d-ZxOxIqvZ5_&!CjSj1UF-dFVb{+R1TQnD0-6sVzmpTdV2HLU5m~!TzZ|425v-xxj!h`FJ;5m>HJw!ueN*2Fs9OcCdD-&KEc~hL~S0W?;HAs zOdKx-vRZyoAJ-(`sE2!-1&pt332r{g9A`O^A5{UC3rm?Tn%n=RrMJ&r13KrdGOeC! z7JP~p^kQhxRpOYk)%71`jy=CnP>?JP?};M&!)_S|J*w7@XLS=GroS9&HXJ#5|2uIX zB!2i6Ah3MZZR)Tp`2U3SBkih?7LRp-*EVm>z7;)#4*F^v-b}C?=(H+j+A{a77)V zKB&{h3|S)SnHdyBI!%{A|2VkFkA#STR*bNQv9GqU=IWkS>8yZ88(D(sl?W5Y#a)Y$ zDiFk#tJ*{ob&VHmN~m_9&&G6Tz)1>>_HHhRXlH zcXpEEL=;BVqA)57XMOc8O<@$LO|_4a*IhI^o_)D1spog87~^%ohS zs6O&N(sWPI-?dzk<#-~<<+lkC{mn=E|58jP_CkRAUCYvDvia}k3!hYQrA#MjEZ+YV z!7#z<^2;>sqky3YMA){k+SCh${eE=OuLp=HC&RF! z{xQa~ry~86SlsKBeP94no7rT4rfO!@>CUhK7e`aa(0Y4B3G| z5>YC_O!HcmXVdk54iZWLr6`2kI4;X^`unTxBWtKgZ|LhIcbhs}Irr8y<=fD9+NoPL zvEiFwkLJp6lk=C6@;l^?`OF}NGI^M~6WI;t>cbBjokAt0-6+cZ3<;cbWgP@~1^1zr zy9>$(YR2aUhlq?zJ|*ME=w15FHf7r7p(L0#GG%4ZMkW(Iy;U!7WP13lk%@g5jZ7C6 zGHdcSE)pr*M0K@%5R>9h-D5o6b{AH|AX-uQPUYSzF|Hw?x`l_( z$Apeq>QQ_o@5kJS_fsU<5$;WTo1m zehM@8_4nTSbu(QZ*I&D_fw<4dR=F^5ie1=Bs*#INZtW6Co|ES(6-@gknjk^tdpuso zQ@$w8x}$If8A%(Qu&f`pf-pEmxQhKrt1|T|OhQ8TFD(5aR1%2b?qrfPwgNL@t1?0Z zCHg4*-WYW(tXB)rtM*$DQR5g?>QGpK&*7i5eU1B&!IWEW9hOc}2(X-n`iWi5wc%R- zLdLm?wo%HB;+gPy{3H&~WGV#grreX4+Sxw3JEYuE+_Hg{O!td)r&7z0P~+V4|QamF0P=x}3D?B&|G8%qR@s&}#K!dL?sI z+?Y~ELih7o>|u*13evBPI7xX~b=Ivr+c+`^olN9V%>0VL?Abolp41pxw@t$s<$*EM zJ}7RghnRH#c3tV;;r8w`_fnP3dE{q!+JY_`SA&wKS+u0-8JJOXjw!0gyU$z)sm6s$ zU|)d|!jS(ulzD5+Gr}*jqDB>`-3?58tsDzjB<*VSsK-s z7Q`E$@;BiZ+^65x3T?=E((Zb}p7|cPBhEjEWj^tE=0JjCjUprc0z7;>A?+?x=ASpAaK4hyTw4B#{mO0WN|`y5 zZ5xei!(;h^Hxs81iL8A33Wrmn*gL@v`jm9ty)dRuSU?V>bZE!a13-Rd>f6?aQ(2y# zdAft`v<>$z46X}Q^WdVQW2Qk5uCV?>vCLJZj6&Z5zbN+?nJxPa zjt$$VEnyNiliRvzY?3S~>TPT?&Vo9y{Ivj%4r0`drjj?d=x67KyBuqzA|;H`$!Z`u^t-*-?o|QQ=o}Bk*DV zSD)(gguz1)^1dJNOKXtY%yM9?PQkHD`KL9xd%2AJ1A1Ms=DC|0^|m-g|NO6%aJimWIR^7W}AO1ysRdlux;K9EOWa^%sb)7tbsjr?zZiGU4!R@h|v*FoBc z`}T}Z>+eciaix!1IP&On{9Y?bU|vHiFjK%YaOR?v{q>UEWD*vjV7^{x+GRl}FAZ;g zOqF_%;ZWBhs=&j7 zzU?_c#)K_5YD0~~e}OMSSYIJ49e#2ZtW(m;$&_5&+sJJ$Ex z4&C1d_#J`Zz_7zXRnB|o-VrJc%k9#&OxqNb0twzqk{n9QoM4Npek~p67C<=mInoFj z;o%1(Yk0^A$C}SDP%YHT^H#$&H8z!5O|$qm<+lqJ%)=M@q#U#mtXF*390)nyNoJ(6 zmL+QRF5^fe$p6I}vlLbLVdJv8gr2m{$(PnS{kMg9Ugzl4UsK`qr$RjGPFPTW@0Zf5 zBFo8*T59NvEc#>6{=0JEmuC{aqyK-QkFF4RNyx`ytCH(cywB_VH~grx^CN5XG0kP; znv&O+HywH3=%4=>dbD(={(wS(=T4i=aNB5e=aUJEQ)9#4>%KC6 z`{ltkxqHvfHL;$h^GWm@v*t9a-oCqNYiuGf=WezrOC}Fm+)!~?si;a>$dN7(1j`S?f(oJ(y1=fUmyjoU!J7-cJV)>Z+N$ z&X<>`{WJ~@Qu#uIaE6rd8zLS>?F!IoGc8=)@yG)K7MAIW{(0t1@Fv?$AJlFQI zhtcIom%!!?ZxDu|c{Xjd>{LC-fVtz38>muC^OXV&4c2otJ^~-${ z2^HYwC>Q4+V5> zmCpbjF2Ts4ay;O*OJYfRopjz|ysIuXO}n~3eWKH@RqCResEff_nH1Ztt~5zrm^n5hmIhqJ zCH)5d31^s^gR{CH7dZ|vD&s_iT&Hhej>+VjoLO8(sIC%e6ZWZOR?qxPL`VjP9axf} z_B+<@Ys_bTCti&=8S60nfXOwW%eIWczR4XWg2H!tx=vhQxBkiQ^8=)Ud`&n6MUQvr znEV(qz&G}iK#2+&Z*k-gxX8wfxA=y>=vUXv;`}oOr+qWwb_;)V*?HN_-(^RM;)z(9GSeZrmLzH@ddk`J=<=c|aP z)(ASnh@(GbEy>h-qv1TE(~hv=t{dmogzpv`=C-uj*BGO87(Z;&WYb|%y~%Of3<>&x zOUkFw5xtQT=*Rsp)p}4uaj=bf)456HvOG36>|*yvxygA(^-uJ4_txAlT6NmUXt5;g zZz(gz>g9WkE3TV6_vkrj_^fV8DdY?T`7>6uNBY+TnwhSM$eZ_m4S(kWCZkdiygNXZQ#HLy%wTD;cfq%Zpa*n97= zrm}Z!7<3$+u^@vAiW17$3t#~SBq#`DL2QUhQy4`>K}4FAjbi~s!4VM^A!0*8h)7df zRGNSgkzS)z0U?smLXy3{XC>e`^PBm7?>Xmvzw2DzdHusH?ChPa?6TH#KllCI4;%!t zK5&WojfdV1AQ+vzk7^d4Ti_M&E0WU$FRMgu7n7fG>jkyN{Ny#Nj|A(f~0$UIy@891#hzUo6Ly#k(RznCZ+J?vQ*55>~US&#tV)5jwa+*iex zZ=}1z&y*N?$+5=OTGd|SRiSjAo%L`>tMZgz8cG;)(l9*+$jrBCj$i~3!(q^=$uTR4 zCit+?;2QT;Eps3YItT~(`-jpCS;eP!MMh50&Z??;e{+`MU_@p4&Bo>*g@c>X>htm%lA7O~Lnjw&XlOJE9^C9c`?Apr#-FenmJ|Q#>T3Tz;X#^* zsI$z2{moYeAD;?8%BhKtv|<0dbIL+hU$I3M!li&N{=`pVX&oyQQM(u>SbYb!M1QSf zIsuM{-e|(5%p?=5$2J_YO||l2caMi*cbw|0?NkStxIwLu&YMUJSti0N|IxaoQPyhZ zz?oyd{%>S@x8Hzu2_C&5TBc@L=N=b@ke{Rzme;*Cx?lcS#8W*5(cp;EP6I|OR@!Ah zB!q)vV~J{jidLI2u96A|Bq+vJ2mZiS$KaP@Tvb>-K1H(W2qPnF&sqz9#(Viaf7C}34-l041SrR2b5R${G+aJ)4w=OSo_Id=v9u;yxw?gAWAL;o{-DI zj5Ra5T%_(RwY4wXb+7N{JJe{{k=f%%rgu=owgaAuLQvy-@EZ6{d}4$HoO&<{r~ch; zes+g(%@Y1hY3bNRnbLiyuZdHGJ)K_jBao2ua=IkQnTQ6Q>#*BXh zpl7r{>mMzZT%Jk(cIGJIlv2xPdM)R5t6dl~X)nJ8JMeY8n&Ymv;<}enY9+ehnC~6w zeVc=A`b&leM5;Rc`r}xk{(A8jo53icLa7i0YZy;;(6p*0UhVhh?Mn)a@8La28SZIM zIBn;(M`g@~)`8x${picOq=zMw?03CXv$(a!9ko~bty;8SZVJR0)JqBw`FHKDM8kfi zoJqp5Ds6YVkalxCQa`1kr?!nIZ0lM}pj0;>>)bHpEC2qTucY<~WM2l+ zUKAmx1aThLnQ=uOsJixIgEOnuwI1L6xCUuU}SRn-4O>S z=IdVe|1|7<$LsGR#UnAYfI8MZDcNd}AzbZ~KE&^&vPmQOJ4eu9RL4M2^7rZu0L%VN zl6@&((7;ykh$iGLN3PJ<8Yvl%G2iKzLC|uCGFiL2Q!{-CK&?D?N1Skw7x zIOyB-%_;eBqu{f8|HO^!S`d{=vPj)YpJ@6Aq80t2g#g^FhH9H37GEfJzH;-e4 z>y+}C3~S-1eCj3t=wVt0CGPQxVG{$y!%G0H`~KCXD0{rLeVMpKi3z%pozO1{`VC=$ z-TR6dE+Y;(L)Tky$^{vO>ssKGO^o1hs7_i|Y>>0R3SF+3D23P_#1)*dqB^1gj#?Do za5<1IbT%+p0`cQ^X*D^hD$=03Mb*wcn9~;KY>;Ee;AvG7LOS3SIV$qO6+?6!LZ?#l zb8|aJs+Dx{5j@Ljy_Tr=Pq1bUVy_-?jezD$vo@b2gI~vEj0L?-a3K}0bZQ@_zHU#1 z#J5*_Z<(l42{xhf%=oUV*|(vmE#_LRy1)cV=qwBlIsl2@{7CF8VSDgkZhN9sx2tC& znv?IiO{nQQHpd|_KZ2q~d0JZ8GV#C&z;O&Z(BqTS-E7(XX_f1gLjnQ6!Xf{7``xlJ z&Pl60lrmst%PV<>&ocm+wy$D4ih;$gQY2ji?Fxt=fo$ncCpA$tE*9d8>?6(|QMHU4 zfjpr0w?u<-+T#=1{lFGZvp_`!{Z!=(o+^Ty`6t0m&{sLo{7mS*;kQSpK<{BT>f$v+ni4tp`xx} zDoPD}>G0_}Qwe?+A}R`ly|HmH6soX{m=cdl1ED8vc7}8#vl@U(Fd(UWw-HS{X5Hj6 zfPRkDlm4a2Rk_*bftvYR!Fe^j8*dL(`(%pHQGPD-73lRmBXsKbWvr?6SZQ@!$kNTS zLtA~mZ*B?+OQo#I`&65XE?|#yJS;dZ@*?sDFBvnt21w+U`01d)(5N(5@#8)E; zXe$*)Vr3Ha1r|y0x*iR~N94RtFzHelGkJTyLG`}V)9B2MRpnr__wNCb7$q^c4_Jfo z*=oQaZ9Vya3yK1s_J~^F3PnWKsDWPG&Ow`x!{figql)STeSK@r0i-(n)rkv- zAijsk@^pJ>n%~J^AI>wWT6^wfM4IeGx^B>UTbYFAIboKt7P|9&aww#nbeP{z;R`T( zeR^?Ec)aIoqxHz|4p2^QsDLl6zLV=e#RU1C=(Jjr;jB4hnYWgJq=k{H_jm>NZ7+SbuOa!(P(z+g0o8^5}y|sK=M70H?nNtG5R>BV3 zO2iBEZN;_{pBo_qf^8)x*$P=u`-8ZSSdhn6bw%8g4Z%_>cU_uK9_|*!_+b91MpHky#l?z=l@`&^a{u+I#RhOu8oR^Qpe!8ub|ZfGY1|Ntu_P} zY~a3GWSuTQf9q}k%WmX6vco#-B69}0NR&=f*P=Y>h7L~@Na_@dIy^1H{89a-E|)V| znMpjip?>5*)`a<-uHk!1tmUJ+QHsfHeE+O4l3$jH!bsY~hkcr(S^!dJVXL9L-J~{j z&z8jPp2D4l9qeFG213gl@IpW49B++C><`gdgEXzXaC`O#BB}~%SCNq+0s-_aS5a-# zdlS{*+yY$Nl$U3iQ+p~yonKmg+Mph4o6epfbNyuqAuAyvLAv`!yw?v<+a&wiEz8Hg zOWmD9I4@}wlyQ4MQg2_9VGPqT`r?KiN@09ggW*PLpFEhGI0fr3l!y$E`ThxWoqg}IWm8TYGxV|Z660MQ zgFT#TKVvk^7RvAY;b!k>2T=7Dg~mUnL#F&KTBV=z?I6=<5r z99#$H8z3tASA0baCHpB+=*hQ`ELMw89JryH68@QT@$Uc^u5P*qazB04&_^p;kXa>s zM`#M$mv3UbQ2SWM=*6Y?o()n$w=!bczuj%Lx~W*4F=7dI_Gxa72J^m5LGw5tc6}O1N;@VEk4?p zq9pV+d`NE$!a~fz8v;NcR-)BzHiO2t*u)&nBHErw-c^Dz<#$H(c4LkzsU!~16u7); zryU63ZjegRm6yvvnzzfo<98nAD)#x?cluYMl>VWyId{BywOQ#e&ESW@6eDGC@bZcP zVnH1!?WP#mcfNgkVcewb?q=*0Hj2oqscNSIMWv1%1k<{ExnP;w1#JqzFX9u_I6Y`p%b^s;XA4z3_XL$CF}M3!l8TY9xOHB*t=NPcmOU0M_SK?6Iw7qGSGS zw;@&Bx4vQQ8ygo_<)-fZ-nv|t8S)sUY7mW87j-y7sc=oI1EKw zV$EQb2egm!$0_GH=dRx2x8?~aglGMeJN)bNzbXc`5^GSsu$Ta;=tod;8RR^G8(@qj zWbKtgVFn#>I~Pj_qxOE&ENalAVeBYLwHj`3NmzM{aksbnh+{0vxxCAqoJqF)sEU zv#WxYqXWzV ziVq(Kj8!q|Hk%5nJN$k0e)Knx@2g2fw(VGhv#WUP-C=EX=`AP*5FxJyA;v~HrBd7dyxZc`u*00=ZRqwu1nQ@)$6S>* z=BmD7hG0`VE@zs82{k}X;u0t?1`n4--RR}A&C=(9b-4}{Z9wUgf~a&!_BEa-_}%Lp z>;--F6+h^%?NHlyOGi2daMuXDa#{AGl%XProO+LO&+nW9UZDjBVr(S2ZZwMo) zk-bdKQED)|fsxD9vk(zZ`Er*064+++WRy<|N8_PYEiQ}#Y$PTN4$zCoZg_%@`^b%g zrvpMqZub7s9jICwdefei1Uz+dSPRBS2Zn$RvghM|QP`mT8?5yA<`3v_wZ!)4TI(^V z0C}!io%Wmvxc4g8em86VzhRC>>7?MT-SUb!2@2WV)#YHZcQH->5x>6-b2stCR7i|M zxzf8n7DMd3hc~zNbp7YtAA;XbbjduCU*6J@1}$na)QU(?IMGqIXJ%7TJS6-q_=-(t zwqV5PPrqF!s6P)Hr~Z<~kS>vS%4n0G6G=*aEYIBI-tV+zcDS4ma%2S$WmEJ~c47m{ zJ{pTSfQJ5oB7z17xH?H(qjU;%YJ(~^58)%N8iZ9@l1;z{T?T#f`;|cc)Sk)_(?|)h z)OL95*oee@#mVg|^HS&0+-JiY1`~~Ju80--hCaG4=7ge94)mRcLLG7iVE6O^hDIF9 zndPkVmWTAZJxHp{p`U|ZkhBQWxmqYd)5XvSoTp3NN4*~~$V%c7zTi0U(E@`>kbp!^A1Kmm4P^jpC!7bhRB;&6NBz`IA=K}qMr1P9tI!;IdHK?yj>0f(f2W+m?Kd~qF4ra7_GIv) z+nckA)idY&^jl+0)UH~5jQHVMDnK`nC0nh)%^YYZ&@D7yt_jYoR1vwEekHX@Q9)b--xMXTM@3@zsIAISR9Lv=KV$FIWDw+DvqnA_Hz|+B-gYELfybZ<(KvjVXuzZL&2uNrZ z0DiuVqSjYBO5IlnqBPLs1y%S-^-28z>YWbCRUC?G3J3#zFQZdm^y9=0=iaaO;7lWnDcT_c-DQP5Y zc;<(f6L_3eRY>tMML6UKm0htHK&=S#bRx?uvz?6wO4y=kExBV4B-Aht{C@4c{i~3w z0?Zd9bH%S8tD~WuiXnB)|2xxxK6|!d1DA zty>GQGyBts7!nG(RR5^%I(ii8dyFwKg7k3=tpBj|FNS6Jsjzx;de;6vmwu`n!KHLk zc0hr;DIiFsrgOA%ldj$*SI`@W9bO6!7%&-TR+1*f2r34+=Ms>HM+Xhpn%sV59-W%6b0c!*b zBB-Z=1xLWAk+U6_5aqa@3MaZCG&L}2ua5tQzUnoGu<#Fr1NAN*R7h_0(fk280U4r& zJk$Rf8ht)ZVpjy%RgAyHc6wlw{*}p^^bF-W`eKA4lGh~|9Lrh*&SqjpNx54e?(}~U z*KNG=>g!=49PoZXpEa%Xhv}#S7^3EO7G30&9u~hFKJ5AP)pJBeQ@BwhieumPp9A$@ zOgowun^%IH=VBNHhJcSfF;9l|d4!WIrkI$+;F@kdp$^v%Fo^U>a2PMcybK5fLCaED zc#$b`ImgfpT+WY*-+}t2ZwarnkzWg{fCUURv1**1Ef(KdKNaB}IQ3Y3x29ut3aIO_ z?=3Bz0?8YZ*WTHgK*8a+JxU9HXgiGk&xONKJvHSafL(xAxS|TQC2pdwO3Zz6eyCtuFr|RXJHF6t0p_l-aL+_*=2C1mc!eCC^#_F7huG>O2!%Z&^tcc$oq=*L zTyiBxQIPR|j$YG>cqX zG9Fh+S%r_kxCg<0pxQgY;v!foB9PPtV9Y!%tC!da*=_B5;DlbCiXPI@x7t3rykSPE zyyC#lc7y6sehNsYWTD9SJm4wL8~klK)mP(l=JvN}gQKtiqxt75-`{ihZi|b`n#bA; zDK+eS{x4#^QONa;tS=~gz`E~y|G$G=e_*oJmoNT%@CBG#Ok>>~t)lu`SM}{%_d3|; zRpgAk{}9;Oj>z(yy3hJsU*3?@ssw$YxWK8vB&1C@cw%gn(|gP4l>5$*=q{+J!UvjB z@?R$ed>lmo3rfBxVqbHf$mIN!=>I+6vQuk*Bf<8t)IZ?Fajm8bGaItL4J^$;YCCNIYtMz-Ze*~~E zqVg(Bc(5op&qAV@765m5n@EWWdOxV229CI_NRf%XH17hr6QSNW%gpl#m;I#+H3$+_ zg?-OdbN(JNkprk{KGppv>3b^@juCmN*9pW9UZ&9N>E4b)gX&vaGSYw6-`xlIh~gJM zLO#~+#o8g3R~)ut4I_bI8fyEC$v6}tio54#>xep0`M1Hu#v6`{%ir$}F}6F`gqiP$ zPAuOl=w#T~+NzXT->M;h`qdFe%-M501DlQ?I|jF5zI-C(a-2~PHXWbvH>gWj+O?mW znmDS)Gb%GV=f-CJ8)tD5vjpl)+zLt#3hDqUc}+u9qxeyFC_%%re9BF1fA_yruE%^j z>*!~IFVFNBczhNSIJa);%mMOsSw%vp&b);--1bcsYp%~*^djnNzV4{p?!Q7J6{*cS z3QG6wQ$B`O$;SHG)2hf%k@Gq;*fWEfkYVZk14RiNXb;itZ)u^$!Y=TB+6$t=zhja* zJJ9(9neP%Y0d{%E1gzM@a=ZNbA*?*CzU;>?kX8EL$VZ{`8erhUC`1hTk?qFc-L$rkyIQl{7 zr#B$wp+j*}<|$KL*%X)vl})!n5%!0K4;{k&pZ*Z-Vctm06>Sa%t_Wm)^vd@tShpuu z`oUlnp!t(xgKid^7?%d3z3f?&)eNY^y;87*iV5izPk`Dv`GI7{N!kDMQq7B3`)Zi6 zLidTZWcJCIqK>xf!VUpp6nhrDpQP^P!x9EnO_IY9DY1Ectgu^@<+ap?gQYT%rfRFc za^d?))o1wD;XxHOKM1oYfU7#zwtb627&W*!qYHXIB|*=pQ6wZ=@5mPTc-mEi3`0dZ z&4;pp2D-&>Pc8tO2dM2d#ISnbL!M9?ve>L;WY#b<9brMGm=Z$JB~9%aTn%p!)i%Sn zbfZSl*oBEr48IOVGi1Kr%PUyEv#-6fx&LOW&4C`Wjhf+Ij~&G!KmjFHI8f31xfH8g zrPQC_twPpF(dKw9IJQH9mlePv?D`>=?P&&oQ=k+X>p6;rB>euTc6@3vAu>m`01^xS zJJxTp&x46r&wmsONu6DVr|wTEA|ya>c!hP z;w1i6;rFeRI9S0}qJ@|$f+7v-YQI_uoI0vqv(QL{e#A`CG+bK*x3YApivVcn*ypaA z%d!TUkncS4xy*3G%l$Z_he`Qp`$iA3#*QIey=>W5h-(rLL(NP#kLXHYU}J>fK?|k( zeB{>PTwb{Ft2%EGq%~=>i-{MX@msQXntYa%0N9nIaByZN!qVP7sGl+HHE;m*bEXET z=1{rB);~-nJmXP6E7cODDkdPs!oLL%vji6Y2V4xpC8A0a4< z!s5GYnGP+bjIH095TE2QqG`n3m7{D7IbL6EZg-{)M16nO=Y3O{#F{{TGfY6?67{QB zgGi?rk2(m&5z*edHUeB%Aw~NRlC0eW~Y7xi5ZuM?S$TTJL;SpADc@6WUo?)79#QZuqN^gxo43nITc{d-p58DX661_f+G z{qO&&!_zlypRzmnKTMTg|D+fYx|$mmR-I0Tf+(yE@$v9>dIY|C)Bj?ShtWqD<eIw|JgzBYfTgPuNpn0kLP{J2as3sPh}ekJ_buW@%;UA97eSNQn4ULNb__4`ENCQ z(CewsBf<0GLQCgKKf83KO)p=2P30caS3}Xz=2i@HK2byCc?8GD;BC3i-Rv@? zguCCyB2YZ6wh{~bMjJsW*uRC6$TPLcDESEZLfnu)K+pOKXrWJpo+}MepgQvHFSDU&Nn42BBcK?_ z-|X$Emjpnmj{<5UlrzD+Ck;YmjFYm*hquE7b_5qc)h6{L-*8lTHXvvJ`V=wyuQLGFx;nM!fbr7&pg#P!*2pe_Xg-ljgo*T+NXM0{>y~lT;FRtC_2 zf-;8JbecEUMI>~%dt0i~Cx!9(TS&#}GpO#(EV+JEu6{~*V6Tgiq9p2~3+1Vf5fcbG z^ZBneD`}*e-_bLuYK2DH z>ta&O6A_gJ4bVl+YFNvBl-WObbtkld0tvglnKZh z`>zvP=*y(;AEv%55;OH;I{LlI_g4bMIH3+d$T$fiVy^y5Vu9}iCTZ57=&cx_olF<4 zdlP0W%KjB%;L@w|g6}7MA0x_B-UNl>oV;zmN+4LP(De}6PKdyn2(OWZ=b*fe+0FJJ z1ZF7-(tZcd`a8(|YO1y|?#M4DZnvU5cW%&k+g5aaWyREe-3G}lrp~ox6O)Y=@>Fv!M+Ahyr zHqTb1+*@I1)AQyu&u>xzwZ*>gMO_PJ`KmPT6E5+l{8QV~VdBjVfqtYRExmY%7PV92 zRqg3hMwg0p5hkP~x{${R5k6OZa@VpxLTT*^Y*{8x@>o0;MZ;@AIC0^b&&A5 z5neqtfuHE!`k}X}-&U1LWp`CSFmLqU+$y`W@~Xh(nEzv2yM2r>;_xy!awgKx>ihOX zRNQ>`AI^&>GUOUOG#pq?Zl68d{Nm~wV~2lh12%rKp{Ci~aRem#wpea=`Kl;f7B*(W$Qz0t-|Vx{cVw%? z)o6*))>Xem{@E}^?FNrrpoMakGl(4 z_xzajK$`a#zvs3CHML2q8*I^Ps~kVpCI1uwWiJ(F3hXwJ+!e0E<_)vcw3KJG5@qu0 zX&!+BI|JCPp|Kn8HRabsR5uQd7R1venO6nv`9n1L--ujTK=@R$(AlPmtgL0qP=&pf zbZHJPP>VJ}bcj@;N-c-M zPh8zw#~2_j&L?zHXiTDxEJN*&OJqLAk*LXTyMZ}L)0zQ=319FY2?;zwYB!a~+zDO= zVRKLsig77s^b)R@5Z6{ z%JQiF$R3%Gv88c{;6DHnXbTaV)<#SoMzu5aPI)?YM+8mWQoOr8;7h{I`4^3rd3j__ zW(w4rO6N?R=&F?zL0%FzyO$nkB)e&CRSS9gCDmxA8{B**K!>Nv~kTyXC{)_&JOtE!$D!;h#q=J zG}OCwJ|W@{s2XDItm_CC$f(x`dYUlSn~(6bvjcFYlt2>8GM(TE$|M-(+d0-Y;>9oWNd;ijrs*aHgZ+DDTUtl`wuo zC|p7vIYU$_*r97a!iT^P>&OlRMDsha^&EW{D62ROjqhuawfZB&$z>|CS@mhH6N-~9 zdS9M7%Qq@CZ@wP9W#;wD0fmNy&r98>QJ+laF|$vO4IevxF!)+(-jgK=PLVEJ<`W+P zXZ3|k(YjmqFDA;z322R0#-xcOJAw$I*{_H1i{#PyL)K)~IYIlYA=*~BzEA60*8SK_ zgi!4D;r%QQrN0}7ef$&RzFUD-QBfF5R)0fM3&w!|Z=G9x!|8dGJYr5N>ZEaxT}uTS zV+(E3_}BNsQ{NEhTPQ*ztA)a2h6!v1G*zAv`sP3Sx>o!l-d#R>U1S~wEYf;idUJ&n zKPcTV&3M`G#3l}n!i)YH@&3(A+PXIU5zjl?6C9cH>Y52ro!2c=9f&+UcF$cALq7POe%1K;l7x$u1frCY82S zNZsyD#x(k*w9p>u68PvmWY8}A8aYeb<3f=NTG-S#;Qu_WX@;dPk1+|4 z%v+dPo$8SNh0EYy_Gj=}N}z4LgQ%IAoo$oO39P^8F)#K~C(0o^ScS*+p}p#)o#fYT z2ah1QyI1j;h5K%!sx*naxQ~@v1Zk1;FwimU>r{t+3GJ3Y#~30bTdcF6Ry3`z?&y}b zMkeaX&RI*1-Bl}%s|5LWvRqVEz;@^=n_8Wp{BCNc>!Ii znb1-vnP+>c5pr;E+maNo`O24&^C1DvFNjBd);L6UPQEdLnrVp`c~JTUbM8CT{+355 zqzxeT=Ypyji6$XU7b)iQ*`3YSy6QxUUYwqsakHVPB%1t?rW%NVx z*LE#CSM1mO`Mv9goa(m%`=NqpF5y{}8N4RT`wFq+<^Zq3a9y>KFziFT zS+2-Bc8tGykN2^kA(Zm>U+vaok<-!bl%JERVyDuimwViN;-Iy>Q!$OC;rA}(4!rjJ zFxQ1KwK7Xs8aVwZUMSObhb(k>Gv2ygIa%w59j~~@eQQW zAv?P&u+7g*2-J@1piCH9;dqW)9UTQ-mI1JmsoIpub6G#9IPP%pob!gd&~8C%O4S)b z$jJ-;u??@(xYmJV{PEmT9PSW^pOYtz3tErwP;R3w-g(fxb3tp6T5F0_IE;P1=v)3b zyfhEx(M=_D9+$Cq`PhdX2(L{{ecsjA4!1^7ja}mD?!Z+qR0QF6Q)aBmV(^s^hoXdD zTqStHSCB;kLtylVh=;SR(n2+ZQwS^mVmR3oc+5~3B24Eog#zm}Z!f!q@WY!bj2Xe% z?NzxoG4eZPc6tuXFg|T^O)@%h-kh$AE9iU+Rn=IlGFAyqEFi3IoqA%XPs(0J87n*X z&@Tv7e?}fh-X~a1=2`y&ewg=dGiPxaR|M@3Hs+sR)j}xon43fM(`LB&zNsmX%mjz8 z`kV`L5o0`~Ul@TJmv!C3 zd#NkmhD4Lk=?wV>kKIUWvNN+-Xp+#04m_WxH)$O`UGMGMp%TFgU)RVvyF+{r41Ea~ zwxTz~2a+eqUDr1oWFg1K~bvterOK^7;Kzde#HZ#98(m$@v;NexMc{biaQ3CxL zICLs4Hec3{q@{yT3-QMahMpq<9^8@&flu&b5NlZ*MO+BN~sVl9k!8O2(zOwQZ znzbyI|3T{e&afjwA$36^-8^6TCm1IT4@jd;pv)m2xx19HRo0W^AJ~$?Pl8j~f>ap7 zI3Ckq&>p>$l%iQz4O@|1rN4xg628e%5_j7=b)yib3PQKl zl~Bg(i3yB!6M4qJWJ@@#^GQ|Zj&9qkhjv=%0{?v5%zwR;F8bx{>8qk1v$n)r6|JalSDk7w#E zM-5)I43BwMP!=F)S2-Vw7AC20$h=6|G~nX=;3pk*=s8n=(<|Tp#&FfpQ1m!y#fH|b?j$K$wj2M&-W_{+v`yMOclFe5<)7&FNu`;! zUyPA|*}3-Q$07(1kIk)9fc#UT`G*x=cxE%SE7{dBX;I&s^Q!p}A%-6F#ETjIihx^| z-s4{yVRtV>Zq1Uxdan&|N7SWFR?T(;m}AbgoM%GK>X_&P8tk zHZfid@8z-B4U&~R7IkkaJ((*N;p0HnG@>p>#9+q@o4IZiB!bXF2yWUVAELwK1JFW9Kf!Qyj%-1@+ho3?E~Jye>oHdeME1x#G^8=2NAIbH`Q8^+{CBzzDNJk6;x|nw#$l)C!sJ!c zGY1av+0$=5+1fg8DvmA)?%Q?a9jC`+O|=4Ks%6L9lac{fsSlxr8JHm|^AO>P)9G1nxCj$0h@5EMSL&W~pX__qyb3;*P z?a`Ayt)1?-!#@?q$UpTcJ8r6}WcdfO(!VX&bf|rvhQVhal_oanCI(~2M?qW-?en9j ztIjH+uythOGes1gYSwW3%oS9mi1z+Y)HXPCr%TfnE_>QqPU5a}$HA|A|KXfsvq>)L zFBWr&)ot^2eFk1pl>5W4K*9h*s1}+lhbGHo>ch3_+Og}(4s)e(!Y2aNz#o0^m8%YE z?H)II@sY*l#&E)jUg6qBmb)L#kogE}eDyT-WRJ~IWcuNQPrlR3!sgl1PE{Su4aY9t z@ca@nlDRVcEJA2o&Uw?XpjGASNJhSvGXmV!z}Hsc*f0-HKba^+zB}FHUNeJ7$=J$M zHS_LC>s&wkhA}}aLWKo{LJMtc3snjdR`cQoj!pKzCBMrFMaEvnlPX(UewCJ1U%Pf~ z`QRoPW#8`9fG;vK!I!rjZ`|>A&R&YMRF=#=X2T3T(_1z4@he%YmG-?DB!&%O@F;mA zp*#3N8wB8^5UaDtdB^BSbl01|ol}Ez(Ke^rE{VVvWPWcvzkzP9knYjB6`E#zE|o(p zY9V}wndthD`;1IGU6lk76dSoh5^T0EV;No((&N(<(b#uO@e>~Sd`(j%*KCr|gT2dy z$EK(l-}9RgP4Nw#f}Bc+F-fn%L23uoio z{Kl##Rg~}8-0f{{K3~^(O~N(Q1GtUGL^Th(f8<%m0VGBN0=u6>1HM3@qm{b2g-C9p z0qzSs{;7N!&pKi&FF0JET%n90mDvI?Ps(HQL`hvOp3j!7l`|nl2;*;V9$Yp}vpy}p zS!KfxMv)=!mXcd02b}4h!Y)@l?wd08uZT_Y(^WuKsg6Wa##|Q9#i?pM;Xfa7`<;q| z3F-Edh(JE2p;YS!8;{g_e)TUF$Q`a*PyGwH#hQZx?2JkbbIx3>OPSHaNQaMcVWM_O z-u(gUb~LEs&o=WUO^VP_KqFx-R4Txbxjbet;E#ncsn%&YES+JJMF<+t1EQh$^ba}> zy5-L)Gac&Br{!GMw2)=M)ffu1ew*x*b+DPXGHvKp1EuZ3GY;dJ3IDqcfpwMx4^^2U zkAhy4%%P}4LGas>k}1xf6M+@kp0hK*jj<-va{A%$zrw&vmO4Ki9fqV{&yJF9g~#b* zdGlK*J*Xeh0yzCo8<;!!g)I5h`k$bXGP6|ohkenZsG;_~E{{jGu4SEGDm^dNtf`HD zdAjvy3yIQR_Rht>eR&@E;B+h1=7^+$X$Y&KRtcRgU5e0f2UT?_eODl*^D63`sJKi^ z{o{-yfe&=1Zhg_6tpVXh0?bdnvMg3eMb=f+`rvldwL0BnaOxuN|F6H4=7y}tXYZ3+ zQ+nq{_SOwk=d*;yU0no9F0HiZHBGKE)vXErt)QUbZoP^4LYyPI;*ZBMydk34w?W;M zA)D4wnZ?OeknVk@y0!dScXo;eDQn_ow2R7X=x~^ZdTPO7bsuRKZ$?&GduH{gcIPw7 zBHTOgl+9VM+!=y4O;l8F8&BX&6Qps}`Nz7ad{A5Ep(xN~&R()L!Y7(zK3K8cqu#lm z${}EJ-$=Gn*OSh3{{hBsehd@)fLxHnxT*7Acy=W%I{m^Zs(de>f3M6l>303)8;s_4 zbLKn7Ua2iaxf`Z7{HO?b=75o&!INdkW%0SAg!QS@^vb!&YYhM260WVQ7p0Qe;Q(7<>DDU{(;Z-4PV2uAjC^9v#zb?hnmXVfqJVRYW zOcZDu`wS$x|CDqJZuO8lH;81ce4J8lcpX_@IQ@ext82qWy34z?RzjE@Mn3EeMcs7* zL2}ilBoo&nw7)+*K&$@;IHvO&+E*`$GmLMBG1bL?rPu;6c|0qiwA}#+wqF**lrNe) z^$h{!nzo@YJQti_;z-RDVQ#nUorMV86Ikin4BndjcB{O{Bs!gXKc?zvAKoU&rjxp^ z-h(hfI}PPBF4Mg_Vhb{vRXZ%r$ic+5kp7$3%BZtd-Q-e;re`;Puo*w4hqBP|%(#{f z{|d(=8iWnKzsoyVYF=%+f1<`AgeDA+j8r)Cy2XwW`>v=!m}|X)&JvjQe)6@dyM{vT zH<7Z`pB{v#wGhP<6(Ofr?(BzQynVx@J7fL=^?^VfU+Z$K+$7;$^s)8)0x^heX2dQBL;QX_cmT6|mfs`##I*IW3iIkzj{DhMZST|RH=8f5L@{cw2|yxa8HwzqH)9o0ofmHFifn}aj15QpQ_ zw-U>6;5XDE4Zrmelxf1+PPcZ6>i6XNwZWs{sbW)=%k*^=8jw+s#k{hgCd=FYe&(B~ zstCoDMk++Zu`MreS@4gpFe+o2bIGA&G>N#siLgV02!h)0|FMmvvlaSJu%IZ z#dCBTm`}Y*9Dbe)c~0s|8nFE^rqb9iQJLG;OMbV~sDUlmHtXnU7UD{Z!-lCpDkw@t zTvVzJq{J-w?T=i=q%Ec!rkYK0wjD`L=p~xE7~NPLQ@vnh!%M~gCXBP?-Vt)#_mw<_ zLQnfaLPEcF%KvY(E1|V1PWIbff`Lu@+nqEU|^uiJ?=HvJ%F zR{UEsg7tiDZN3CVh}AH}Qr(_lwE;hiB?`#s4N|-m9BkI`orG^xjEkg!L7I%8vHN6~ zcO5x)>hsqZzrS|(%)^YJMaiMMKr`RaPL9?7FFW?|&}**W#a#Agc0o~#2ybs|rWTo6yeHdqXY`c)4j+wz8>Oyewh8+QK-2>cmy) z)7uR`h3}5_qMWKF0_R86aUD4;ym7d(Td?h_u)=&9WMqr47Z#$ewxI(WRSzN-?(3PY zM}{vwZ*LFjh=UEo#JKrq?}6asP4RS7%{w8okF)?41bglF8Y3%$48#N zWgtcQ_Lr4=A$Zhucrn+Z{^aJa*G-#tkB^GR=Lwx8Ea)_I0tr^1h zh>IqNQwEH-wANpExX*#JLb)kxyle25wHa;&_Y-ZeW^MKM^rY}>d#ln1kiC;2T^Nor zOOvb1aQM2^`QtMO%&8&D_a6)QxGr9F8_q?HPFvA&MrLtiSZrA%a+?JOV2<(g4nEvS zKX~K1JaXf2k&y7U!fCpQ+3u$a_@dPILK=<~W6qqQE}r^Oq0!tTV@}(bS(S>JyLoV@ z24BmMDjXbhcBcXpBINgl<=#@CgZK*7nI8sa%}80(xbKz*CKcu11JGdc7(EFTyra`6k*U;%7I?UruE6oN?E$^cPk&mPz!;D z`QX~8>9$CfU;Ok|FWNVozZD&#HWNICju0AdI3+&V@#!jLWu9FXXd}l+tD7-p{fr4T z$+Ia}Z5Ja6iN1TTZoa=bwGwpGi@VRzEi4_JGOibz8f?857Q=^o?D$~W?%jtT@OxgC z@k1WkM@u5_i z(iS5X<$bvua0p&`@~0#r%Te|4zK!NHgRae6mr32-gRk|e)6+`!DGUw}>B3UYVK=!a zRx)#3hTnd!DA7uuzT@dtbr%riw$irVX1k@n4@LGh*NYk+3dTz4d6)M{%NgI^cDTvj zMy)>2Evn*)AUH61o!kX@xKbRvS*o(@E~q?s?dRG^347vdJ*l}G2*;qMee?j2BVx4w zWM%KFiglgs#SV3hT?|N9oc!GI7-qKj+l#dI^g3E)?E-PY=mj8d?)(g6kECDtaX)pP zw4vQS5GP^hK3t5-vpxOlo~}|vPv4#7IquutLYdKd9X#A3GmVjZ^ld}8I z1=;KK;4)3x(cL2<*}Cy1es&7N<^e8WY(0Dwe*p&QmkliT1rW{G&6U@OdY4=sUHe4&KrVI7n!R49I70s$sy@H)mT50L{c$sc30$S1>iek|o?)f2!-k^Nz~Ny`o7?=G{Uo!Qs@ac7<(sOBSQL z)P=~Nz7|F7-gw_a@brd&x%ptLNp#8^w0~&{YGRp1%pB)*HVjWM-M^!vs^bFI5yC72 z6(v0HUdXtW=+OsO=DuAn>!XK3v9>b=m_ zR7D|vLY%-Cl}th)AcDu5u!H@R%zRV_Yn_vaa#D7ZUC%fOuSKo=FYrZ4LCsBqROctM z`yBc$_?{n=J7nT$tTk&~JGva}m!Zk;7bBNjf}TpqEnV{AP=4>x4Mh)zXQHZuoOE;T zOUTU5Ng?erl5J-Q(Z&FQ>RfaU=Jy!>E;4MNF{yHaAr)qSRv>jjAeBEfufbKQN3}c239-u{x6L~jbqU&kUypMYxka|pwtntTTxzX zPn)omL4J^(Z-^5oPR*06madi#dY&|fdcJ_knIaicJB+WV{{r2i+<;m}(4x=7J#PD~ z;RmI(+|>`wM@=c_#}`p278az1I|xgz{;=)(zS~0o&5N}P*;0(5RLIW8>?Bhm*j(Z> zZ8LSTcK!Mn=~g`YPDD{Bmb4Q6yKkXseQEC&qKPi@s0wa~VWJs@cG(H6Hz{crwX%kY z$Du8Ztu2IF3)OL9AByPNr;H%$C?WCW!M^Ew7PEgI$asf;RZckAj=N_|Fcjo4VY@g4j^RfG0`+Tg8O6iq9g zh2*Ce{^ofm&gDmTB!r~Z^P2IY9fM9f9L6rX_i{+=aX5jA6FF3PbuA^%&{Nug&%ayM zweklo0Bd1HdS!P<^yG!fnyVhSGLqh#uPj0tKKW?jNw2V~j>M$0A?kU7QQtD3m8A92 zxjed-NrOVeyDoMI2-~jjAd58Kpbu}T5)$^^kU4)^om&4#UHPm?1 z{|0U7Nl}Yk2c843bzk(~?TOEGZ?1fNApRALywbb+1zG6~ZQYaEab1Rm=8BafS_Iar zCYZ$2v&`^AyMX4nN4M)8SGhfzAv>d;u`5-OO0Xi))j&$7OZt^-o5(uV{Yg}X2W1KD zYc4!ml?mCkg*2PrFK{b6;-!KbmTHo!6|Fa!5w!;d3@zhAg1%9`8TG)ux}n${sHA(3 zd29_b43)G{O(0DpA(5>nW?HrOWpL+19`_x`>4kS91FAZ9_hs*B9Cx>B z1%>LvUf(Ol80J?lZ7eePiXPCl2315@nvRU~)ETVFhtzp&V<6R;%{DtqyArpMo*_WH zKS1nu=aJWQk#r_?EQlC^W|!g8)+4H}uI^{!F%r9CQpQcaa@R-I*U$jZPyYUuKl+t# z?K^Y6mQ6mjfRIa|UpB%O<7gJ&Snl0JT^y;K8{?1}P@pXjU4vili912U>R zjy}`ri2kB-aIhgQ{dJ|p***wYnzP2I*$vZtxUtpz>a5Dava+)5!!x#xLGfAv6es`=pID5|)Qc@x&N@7gqo0IeP6r#rzb72tX8>SYu5-(Vi zNAOQE+FLyYQ~0m5m%q1?sEG^4p<^E$o`>}2!%Vwv^0=vLdN9t3i_*0tJ|&r4g5XHA z$8&$`(G!RL2kJgRjs~w<_~yi8nM<3gcdM4q0f4v6XZ?zX!IwS1`&?A4?Lbj8Pe&lP zMLqx%FKp$p`({3^M`I;k*3J|of_DoR-~4cbGq!le$buG047Q~^0-D_7;TH`N;xfL) z2_bc5u(QM)GX^ir`|$N^!(?x7?;=fD4^F}QIaUK6+xN@>;WVW945v}`B8TT7{v-+CLnnk%5_hudCC60miN1JZKJ|(pj$rXg?(z)IJOg!< zN+u1v&lXZ!)*&fg3|H>u92|2m@RjggwX5+bmL&xu0^b9eH*d*PQM+SU7_j5c%wK15 zl8!f5u7~pu|1JRUUhY4=>D`uRlX)kqWbroNP7911?>ye(yWXco;hWuK+C|{;#LQ_h kM@UGNpZ)(@LJfwRXB=93EdHP6gI95Ty85}Sb4q9e0BY0}DF6Tf diff --git a/icons/mob/inhands/64x64_righthand.dmi b/icons/mob/inhands/64x64_righthand.dmi index 5d087c0b36f9c1ddd45cc220815d0107a49e5118..5f153cece749c456e0b07ce6042d750354e3db5c 100644 GIT binary patch literal 138304 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 J=kGfm@*g$>0R#X5 literal 132866 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%0AXy$NpjFcyMcEq#@t2|zCNM%dE0V6SP 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 diff --git a/icons/obj/weapons/khopesh.dmi b/icons/obj/weapons/khopesh.dmi index 7c0d54a7140b90ca31c8be9c2638eaa64f72f8ea..20b084396aa6d34cfc611cd0ac7ffbcfab5b4db2 100644 GIT binary patch literal 44193 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 From 21e0f5d3dd840ecd9fd0f2baecae96d2864ee162 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Thu, 17 Oct 2024 09:13:03 +0000 Subject: [PATCH 094/103] Automatic changelog for PR #87250 [ci skip] --- html/changelogs/AutoChangeLog-pr-87250.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87250.yml diff --git a/html/changelogs/AutoChangeLog-pr-87250.yml b/html/changelogs/AutoChangeLog-pr-87250.yml new file mode 100644 index 00000000000..9a5d347bf75 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87250.yml @@ -0,0 +1,4 @@ +author: "Hatterhat" +delete-after: True +changes: + - bugfix: "Portable SMESes should no longer turn invisible when unscrewed." \ No newline at end of file From 28e63babf83c44d95c1ae29dda58c42b93957a97 Mon Sep 17 00:00:00 2001 From: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com> Date: Thu, 17 Oct 2024 18:59:25 +0100 Subject: [PATCH 095/103] Fix canisters and portable pumps from rounding the user's input when setting pressure value. (#87243) ## About The Pull Request Fix canister and portable pump pressure inputs from transferring rounded values instead of the full value inputs to their target release pressure. Does this by adding a round_value = FALSE argument to tgui_input_number() in canister.dm, and removing the rounding operation in canister.dm and pump.dm. The UI should still round the values to display, just not rounding the value to transfer to the canister. ### Known issues: If the input is set to an integer with the same value as the rounded current value, then it will consider it the same for some reason, thus not calling ui_act(). Not sure why this happens. ## Why It's Good For The Game Closes #87175. ## Changelog :cl: fix: Fixes canisters and portable pumps from not considering decimals when transferring input to setting release pressure. /:cl: --- code/modules/atmospherics/machinery/portable/canister.dm | 4 ++-- code/modules/atmospherics/machinery/portable/pump.dm | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/atmospherics/machinery/portable/canister.dm b/code/modules/atmospherics/machinery/portable/canister.dm index 467ad0e381d..4fcfe158259 100644 --- a/code/modules/atmospherics/machinery/portable/canister.dm +++ b/code/modules/atmospherics/machinery/portable/canister.dm @@ -599,14 +599,14 @@ pressure = CAN_MAX_RELEASE_PRESSURE . = TRUE else if(pressure == "input") - pressure = tgui_input_number(usr, "New release pressure", "Canister Pressure", release_pressure, CAN_MAX_RELEASE_PRESSURE, CAN_MIN_RELEASE_PRESSURE) + pressure = tgui_input_number(usr, message = "New release pressure", title = "Canister Pressure", default = release_pressure, max_value = CAN_MAX_RELEASE_PRESSURE, min_value = CAN_MIN_RELEASE_PRESSURE, round_value = FALSE) if(!isnull(pressure)) . = TRUE else if(text2num(pressure) != null) pressure = text2num(pressure) . = TRUE if(.) - release_pressure = clamp(round(pressure), CAN_MIN_RELEASE_PRESSURE, CAN_MAX_RELEASE_PRESSURE) + release_pressure = clamp(pressure, CAN_MIN_RELEASE_PRESSURE, CAN_MAX_RELEASE_PRESSURE) investigate_log("was set to [release_pressure] kPa by [key_name(usr)].", INVESTIGATE_ATMOS) if("valve") diff --git a/code/modules/atmospherics/machinery/portable/pump.dm b/code/modules/atmospherics/machinery/portable/pump.dm index 3efc87e00ac..36d5bf4eb7c 100644 --- a/code/modules/atmospherics/machinery/portable/pump.dm +++ b/code/modules/atmospherics/machinery/portable/pump.dm @@ -150,7 +150,7 @@ pressure = text2num(pressure) . = TRUE if(.) - target_pressure = clamp(round(pressure), PUMP_MIN_PRESSURE, PUMP_MAX_PRESSURE) + target_pressure = clamp(pressure, PUMP_MIN_PRESSURE, PUMP_MAX_PRESSURE) investigate_log("was set to [target_pressure] kPa by [key_name(usr)].", INVESTIGATE_ATMOS) if("eject") if(holding) From 2c916d9710bfa81e0dc8728930aecfee2ad66da7 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Thu, 17 Oct 2024 17:59:46 +0000 Subject: [PATCH 096/103] Automatic changelog for PR #87243 [ci skip] --- html/changelogs/AutoChangeLog-pr-87243.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87243.yml diff --git a/html/changelogs/AutoChangeLog-pr-87243.yml b/html/changelogs/AutoChangeLog-pr-87243.yml new file mode 100644 index 00000000000..366eaca3667 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87243.yml @@ -0,0 +1,4 @@ +author: "Pickle-Coding" +delete-after: True +changes: + - bugfix: "Fixes canisters and portable pumps from not considering decimals when transferring input to setting release pressure." \ No newline at end of file From f69d478399c6fd9eb8459dff04b040903b70f9c4 Mon Sep 17 00:00:00 2001 From: grungussuss <96586172+Sadboysuss@users.noreply.github.com> Date: Thu, 17 Oct 2024 21:09:52 +0300 Subject: [PATCH 097/103] Gives audible emotes an emote specific audio cooldown alongside the general audio cooldown (#87210) defaults: ```php /// How long is the shared emote cooldown triggered by this emote? var/general_emote_audio_cooldown = 2 SECONDS /// How long is the specific emote cooldown triggered by this emote? var/specific_emote_audio_cooldown = 5 SECONDS ``` specific cooldown only checks for the emote, while the general is a shared cooldown, gave laugh and scream longer specific cooldowns. The general emote cooldown fixed the problem of multiple emotes getting used at once, now we have a problem with people using the same emote too many times, I want to give the players ability to use sounds in their emotes, but spamming the same emote over and over again makes me regret it and hesitant about it, this way we can have the best of both worlds. :cl: grungussuss sound: along with the shared emote cooldown, specific emote audio cooldown has returned. /:cl: --- code/datums/emotes.dm | 14 ++++++++------ code/modules/mob/living/carbon/emote.dm | 2 -- code/modules/mob/living/carbon/human/emote.dm | 2 +- code/modules/mob/living/emote.dm | 5 +---- modular_nova/modules/emotes/code/emotes.dm | 1 - 5 files changed, 10 insertions(+), 14 deletions(-) diff --git a/code/datums/emotes.dm b/code/datums/emotes.dm index 2832cef8ffb..6aa32258d3d 100644 --- a/code/datums/emotes.dm +++ b/code/datums/emotes.dm @@ -50,7 +50,7 @@ var/stat_allowed = CONSCIOUS /// Sound to play when emote is called. var/sound - /// Used for the honk borg emote. + /// Does this emote vary in pitch? var/vary = FALSE /// Can only code call this event instead of the player. var/only_forced_audio = FALSE @@ -58,8 +58,10 @@ var/cooldown = 0.8 SECONDS /// Does this message have a message that can be modified by the user? var/can_message_change = FALSE - /// How long is the cooldown on the audio of the emote, if it has one? - var/audio_cooldown = 2 SECONDS + /// How long is the shared emote cooldown triggered by this emote? + var/general_emote_audio_cooldown = 2 SECONDS + /// How long is the specific emote cooldown triggered by this emote? + var/specific_emote_audio_cooldown = 5 SECONDS /// Does this emote's sound ignore walls? var/sound_wall_ignore = FALSE @@ -100,10 +102,10 @@ user.log_message(msg, LOG_EMOTE) var/tmp_sound = get_sound(user) - if(tmp_sound && should_play_sound(user, intentional) && TIMER_COOLDOWN_FINISHED(user, "audible_emote_cooldown")) - TIMER_COOLDOWN_START(user, "audible_emote_cooldown", audio_cooldown) + if(tmp_sound && should_play_sound(user, intentional) && TIMER_COOLDOWN_FINISHED(user, "general_emote_audio_cooldown") && TIMER_COOLDOWN_FINISHED(user, type)) + TIMER_COOLDOWN_START(user, type, specific_emote_audio_cooldown) + TIMER_COOLDOWN_START(user, "general_emote_audio_cooldown", general_emote_audio_cooldown) //playsound(source = user,soundin = tmp_sound,vol = 50, vary = vary, ignore_walls = sound_wall_ignore) // NOVA EDIT REMOVAL - // NOVA EDIT ADDITION BEGIN if(istype(src, /datum/emote/living/lewd)) playsound_if_pref(source = user, soundin = tmp_sound, vol = sound_volume, vary = vary, pref_to_check = /datum/preference/toggle/erp/sounds) else diff --git a/code/modules/mob/living/carbon/emote.dm b/code/modules/mob/living/carbon/emote.dm index 3f2be475ab5..f075b3b2e68 100644 --- a/code/modules/mob/living/carbon/emote.dm +++ b/code/modules/mob/living/carbon/emote.dm @@ -24,7 +24,6 @@ message = "claps." hands_use_check = TRUE emote_type = EMOTE_AUDIBLE | EMOTE_VISIBLE - audio_cooldown = 5 SECONDS vary = TRUE /datum/emote/living/carbon/clap/get_sound(mob/living/user) @@ -57,7 +56,6 @@ key_third_person = "cries" message = "cries." message_mime = "sobs silently." - audio_cooldown = 5 SECONDS emote_type = EMOTE_AUDIBLE | EMOTE_VISIBLE vary = TRUE stat_allowed = SOFT_CRIT diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index d1d4e1875e7..b2c316ec292 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -63,7 +63,7 @@ message = "screams!" message_mime = "acts out a scream!" emote_type = EMOTE_AUDIBLE | EMOTE_VISIBLE - audio_cooldown = 5 SECONDS + specific_emote_audio_cooldown = 10 SECONDS vary = TRUE sound_wall_ignore = TRUE //NOVA EDIT ADDITION diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm index 7fc50561f90..7962c5bfc12 100644 --- a/code/modules/mob/living/emote.dm +++ b/code/modules/mob/living/emote.dm @@ -262,7 +262,7 @@ message = "laughs." message_mime = "laughs silently!" emote_type = EMOTE_VISIBLE | EMOTE_AUDIBLE - audio_cooldown = 5 SECONDS + specific_emote_audio_cooldown = 8 SECONDS vary = TRUE /datum/emote/living/laugh/can_run_emote(mob/living/user, status_check = TRUE , intentional, params) @@ -311,7 +311,6 @@ message = "sneezes." message_mime = "acts out an exaggerated silent sneeze." emote_type = EMOTE_VISIBLE | EMOTE_AUDIBLE - audio_cooldown = 5 SECONDS vary = TRUE /datum/emote/living/sneeze/get_sound(mob/living/carbon/human/user) @@ -325,7 +324,6 @@ message = "coughs!" message_mime = "acts out an exaggerated cough!" vary = TRUE - audio_cooldown = 5 SECONDS emote_type = EMOTE_VISIBLE | EMOTE_AUDIBLE | EMOTE_RUNECHAT /datum/emote/living/cough/can_run_emote(mob/user, status_check = TRUE , intentional, params) @@ -743,7 +741,6 @@ key_third_person = "whistles" message = "whistles." message_mime = "whistles silently!" - audio_cooldown = 5 SECONDS vary = TRUE emote_type = EMOTE_AUDIBLE | EMOTE_VISIBLE diff --git a/modular_nova/modules/emotes/code/emotes.dm b/modular_nova/modules/emotes/code/emotes.dm index fa233c986ac..6a695dfa740 100644 --- a/modular_nova/modules/emotes/code/emotes.dm +++ b/modular_nova/modules/emotes/code/emotes.dm @@ -277,7 +277,6 @@ message = "claps." hands_use_check = TRUE emote_type = EMOTE_AUDIBLE - audio_cooldown = 5 SECONDS vary = TRUE mob_type_allowed_typecache = list(/mob/living/carbon, /mob/living/silicon/pai) From b5ded0d3303ca656a805c761da35a1607da40fd4 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Thu, 17 Oct 2024 18:10:12 +0000 Subject: [PATCH 098/103] Automatic changelog for PR #87210 [ci skip] --- html/changelogs/AutoChangeLog-pr-87210.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87210.yml diff --git a/html/changelogs/AutoChangeLog-pr-87210.yml b/html/changelogs/AutoChangeLog-pr-87210.yml new file mode 100644 index 00000000000..0e333cddb5d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87210.yml @@ -0,0 +1,4 @@ +author: "grungussuss" +delete-after: True +changes: + - sound: "along with the shared emote cooldown, specific emote audio cooldown has returned." \ No newline at end of file From 21ddf0a70c4597b468c92605c232a182788eca20 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Thu, 17 Oct 2024 18:29:49 +0000 Subject: [PATCH 099/103] Automatic changelog for PR #87254 [ci skip] --- html/changelogs/AutoChangeLog-pr-87254.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87254.yml diff --git a/html/changelogs/AutoChangeLog-pr-87254.yml b/html/changelogs/AutoChangeLog-pr-87254.yml new file mode 100644 index 00000000000..4464e914dc7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87254.yml @@ -0,0 +1,4 @@ +author: "Melbert" +delete-after: True +changes: + - bugfix: "Fixed digitigrade pants sprite not updating in accordance to some leg updates" \ No newline at end of file From 4461d245db14cef057cb99e0923869644d292c11 Mon Sep 17 00:00:00 2001 From: Mal <13398309+vinylspiders@users.noreply.github.com> Date: Thu, 17 Oct 2024 15:55:25 -0400 Subject: [PATCH 100/103] Fixes 'maximumm' --- modular_nova/modules/synths/code/bodyparts/brain.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modular_nova/modules/synths/code/bodyparts/brain.dm b/modular_nova/modules/synths/code/bodyparts/brain.dm index 2cd7d6be159..953b2bad433 100644 --- a/modular_nova/modules/synths/code/bodyparts/brain.dm +++ b/modular_nova/modules/synths/code/bodyparts/brain.dm @@ -38,7 +38,7 @@ to_chat(owner, span_warning("Alert: Electromagnetic damage taken in central processing unit. Error Code: 401-YT")) apply_organ_damage(SYNTH_ORGAN_LIGHT_EMP_DAMAGE, SYNTH_EMP_BRAIN_DAMAGE_MAXIMUM, required_organ_flag = ORGAN_ROBOTIC) -/obj/item/organ/internal/brain/synth/apply_organ_damage(damage_amount, maximumm, required_organ_flag) +/obj/item/organ/internal/brain/synth/apply_organ_damage(damage_amount, maximum, required_organ_flag) . = ..() if(owner && damage > 0 && (world.time - last_message_time) > SYNTH_BRAIN_DAMAGE_MESSAGE_INTERVAL) From a378c37e0a89e9096abbd631490552a26e67c1ac Mon Sep 17 00:00:00 2001 From: Fluffles Date: Thu, 17 Oct 2024 20:19:14 -0700 Subject: [PATCH 101/103] fix runtime with inserting external organs --- .../datums/bodypart_overlays/mutant_bodypart_overlay.dm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/modular_nova/master_files/code/datums/bodypart_overlays/mutant_bodypart_overlay.dm b/modular_nova/master_files/code/datums/bodypart_overlays/mutant_bodypart_overlay.dm index 130d1277e45..08492344885 100644 --- a/modular_nova/master_files/code/datums/bodypart_overlays/mutant_bodypart_overlay.dm +++ b/modular_nova/master_files/code/datums/bodypart_overlays/mutant_bodypart_overlay.dm @@ -34,12 +34,13 @@ /datum/bodypart_overlay/mutant/proc/set_appearance_from_dna(datum/dna/dna, accessory_name, feature_key) if(isnull(feature_key)) // if not explicitly set, just use the feature_key of the bodypart_overlay feature_key = src.feature_key - if(!dna.mutant_bodyparts[feature_key]) + var/list/mutantparts_list = dna.mutant_bodyparts[feature_key] ? dna.mutant_bodyparts : dna.species.mutant_bodyparts + if(!mutantparts_list[feature_key]) return FALSE - sprite_datum = fetch_sprite_datum_from_name(accessory_name ? accessory_name : dna.mutant_bodyparts[feature_key][MUTANT_INDEX_NAME]) + sprite_datum = fetch_sprite_datum_from_name(accessory_name ? accessory_name : mutantparts_list[feature_key][MUTANT_INDEX_NAME]) modsuit_affected = sprite_datum.use_custom_mod_icon - draw_color = dna.mutant_bodyparts[feature_key][MUTANT_INDEX_COLOR_LIST] - build_emissive_eligibility(dna.mutant_bodyparts[feature_key][MUTANT_INDEX_EMISSIVE_LIST]) + draw_color = mutantparts_list[feature_key][MUTANT_INDEX_COLOR_LIST] + build_emissive_eligibility(mutantparts_list[feature_key][MUTANT_INDEX_EMISSIVE_LIST]) cache_key = jointext(generate_icon_cache(), "_") return TRUE From ce9180e289f95f8c5cded10a394db1a471f19494 Mon Sep 17 00:00:00 2001 From: OrbisAnima Date: Thu, 17 Oct 2024 13:19:55 -0300 Subject: [PATCH 102/103] allows the pumkin to be equipped onto the neck --- modular_nova/modules/modular_items/code/head.dm | 3 +++ tgstation.dme | 1 + 2 files changed, 4 insertions(+) create mode 100644 modular_nova/modules/modular_items/code/head.dm diff --git a/modular_nova/modules/modular_items/code/head.dm b/modular_nova/modules/modular_items/code/head.dm new file mode 100644 index 00000000000..b1a93f83799 --- /dev/null +++ b/modular_nova/modules/modular_items/code/head.dm @@ -0,0 +1,3 @@ +// Make it so pumpkin heads can be used in the neck, so that synths can cosplay as a dullahan for hallowen +/obj/item/clothing/head/utility/hardhat/pumpkinhead + slot_flags = ITEM_SLOT_HEAD | ITEM_SLOT_NECK diff --git a/tgstation.dme b/tgstation.dme index bf7268c086c..be39b0494dd 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -8074,6 +8074,7 @@ #include "modular_nova\modules\modular_items\code\ciggies.dm" #include "modular_nova\modules\modular_items\code\cross.dm" #include "modular_nova\modules\modular_items\code\designs.dm" +#include "modular_nova\modules\modular_items\code\head.dm" #include "modular_nova\modules\modular_items\code\makeshift.dm" #include "modular_nova\modules\modular_items\code\modular_glasses.dm" #include "modular_nova\modules\modular_items\code\necklace.dm" From dceab6f8c3e2102356f8ae4694ded1074fc153ed Mon Sep 17 00:00:00 2001 From: OrbisAnima Date: Thu, 17 Oct 2024 18:22:39 -0300 Subject: [PATCH 103/103] moves the pumpkin to where it belongs --- .../master_files/code/modules/clothing/head/hardhat.dm | 4 ++++ modular_nova/modules/modular_items/code/head.dm | 3 --- tgstation.dme | 1 - 3 files changed, 4 insertions(+), 4 deletions(-) delete mode 100644 modular_nova/modules/modular_items/code/head.dm diff --git a/modular_nova/master_files/code/modules/clothing/head/hardhat.dm b/modular_nova/master_files/code/modules/clothing/head/hardhat.dm index 9872a107260..7a9fec0cb51 100644 --- a/modular_nova/master_files/code/modules/clothing/head/hardhat.dm +++ b/modular_nova/master_files/code/modules/clothing/head/hardhat.dm @@ -10,3 +10,7 @@ visor_sprite_path = 'modular_nova/master_files/icons/mob/clothing/head_muzzled.dmi' else visor_sprite_path = 'icons/mob/clothing/head/utility.dmi' + +// Make it so pumpkin heads can be used in the neck, so that synths can cosplay as a dullahan for hallowen +/obj/item/clothing/head/utility/hardhat/pumpkinhead + slot_flags = ITEM_SLOT_HEAD | ITEM_SLOT_NECK diff --git a/modular_nova/modules/modular_items/code/head.dm b/modular_nova/modules/modular_items/code/head.dm deleted file mode 100644 index b1a93f83799..00000000000 --- a/modular_nova/modules/modular_items/code/head.dm +++ /dev/null @@ -1,3 +0,0 @@ -// Make it so pumpkin heads can be used in the neck, so that synths can cosplay as a dullahan for hallowen -/obj/item/clothing/head/utility/hardhat/pumpkinhead - slot_flags = ITEM_SLOT_HEAD | ITEM_SLOT_NECK diff --git a/tgstation.dme b/tgstation.dme index be39b0494dd..bf7268c086c 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -8074,7 +8074,6 @@ #include "modular_nova\modules\modular_items\code\ciggies.dm" #include "modular_nova\modules\modular_items\code\cross.dm" #include "modular_nova\modules\modular_items\code\designs.dm" -#include "modular_nova\modules\modular_items\code\head.dm" #include "modular_nova\modules\modular_items\code\makeshift.dm" #include "modular_nova\modules\modular_items\code\modular_glasses.dm" #include "modular_nova\modules\modular_items\code\necklace.dm"

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 iZM-=h@^kO-G zd$G~~@?!HZ-k|;W@z!LvE{*kINS%dJDH^Tj)9;0}fqA_F_3#*FE#;c>UsJ9&EUkBT zVW-~wuW=PiyH<(vqK|B0@%vu~!QZ6c3;%zS&~f2uyE{#Kv3_p6jEWLDme zF&kMnCi!no`XAP;;hF#U)2^`aPo+Xrdlx=OX6rfOfmUE^ii!ZIH^3W0h+}C&vYbJs zHZ_`6dn;!56y+8FV|@B$j`S?jg!BLPP7$0i2jj&rHg0%lT+aa#vzlpL7Tq8Wt#8)C zC-8miG70V1jTtYZCW?3>2^NmziT_@{ zj(`-9MM|Zlkigm~G9u}J2m)0^fn!zcps7u^2sp)qi-NO6f5m|uRCc7p@a@S$Q@)*B zJDF{)|4S(g!}H=xb-J`9CF?+ji5Dfw_zdmwUD)S^4ITT1i=FW7lRVD|^w)-}r?Yi^ zPpQl#m)7A~NF2MTp5V0VJw22M zg8y9_loK^?#(Jv3(`S3U%j4Yh?o{@NV2Vb@uTGEfl;`!_pkgf+mM~vv2EWS2Uf*?F zcF9}<<5g)fjC}!DY;6Z}HsIna&smZciD;jtyw$@1tCX(1m3E7f^u1e9lgZeddv#Lt z1vJ_Ex(q+`7X4Lub$PJ*nqEP_j>0Mt$9iwc#B^Gidn<{M-@I8L85!yH@w2k~Hd890 zY(AU8MkzWGc#_@|BStdi5C~Pnq@k7g;+8G@7QZXMGvH8ywjsoQhv?mll=~PCp%|-Z z!X0ynD{478f@n~}^vzZ~(9lvAT#L-~Vt;Yt1o&zl`0_J@ks>7SI6N(t6nU6=gL#rv zKXo>kwI6MEV%MMyiXwSEcu+4RS}=P=Z>q`|AFSBFY%b+eT=mtMMqR2`y#xM+`bNl( zKLkbk!C|iowX9^MYOM@*{rE9J=Fsuqp513GLepgCb}ipkSL-fp>G$2K*OEr>{WZB1gUGK@{)Z8O^b1M*d^dP0b6?NvlCz@ft|+ z!6Raav!U30*5%0X-x5b0X~UhL?n&uoY)gU9+XpJPwWJ$IX6YD}gzdjhqc?E^5H(wT z>sQ;K^Qz4@e#xTyx)ZTNfj!sdqX&I7RiQ?I(-EbyN4Ia_65nZN z7!M3R$6Vdme`Y6#4_Q3)M@ znu3goM?qo;lb5{AQT6ELce55&kcX6(uYCR(W;Y1p7`{BQ2lX1Vu8fN$8gCmZ9&D~@b-C~GJxY%G3BK<4$5Vf~BM@S9D|(o7 zXS4k4!iXPObh~wDOzl=cE0FT~c#l7!jzul5Jf*vBM27h^GBRI+)_eQjIcagZIp_IB z=JVxa`xE7=Drm}$ZF9#i^>;mm7mm-im~8e*rlhAkFQV@B*$2Tr^DFMSb>h~m=0DJC zwK9IwM}Og=?*(TZSFa^4{fdC@PM_vRYyleh?)Xf?*|G(Jk7S#mmbh12PezM74n=?Q zUiVD<5+~k9iyv|P@|No~u7TUln($Rui{5gexW4c+gR&PV_QI!cCvM}U<{=zYhjG^>YytB;>%xqV+o6triQK}WE;pn z2zfY|fnk02xzZ8_nAaMUPT^t13UYGi zd}dUBa@yxNz0sxb`+Yo#yk#yiK&TfrT@@sPsoc|eX+RRiIzdIbC!MVWUnIj>%}P?* z%59%n7q$5X#sA$aFuNN5cdWHonxx56$>J=MD|tbm$cOVQUNwB$ z(YT8w-*41%<#4$nTN!To-P4j`qQ5OwdZKAjNZjmn|D5Y(xe=45%@^Jd@S%TBIm;TV zkdP?sjtFTyR)9QOBsSYx5|9?RdBVRvOGg@NFa5ZVr~97$b=vk=#ksE$bB?6QnZ?_5 z{7#%vdlD%$*lRvSKzDM8sL9xfn-9r+g`L&AvcJ)0CQQ+rgV~2?Bx$0gw*{Jw^L)05 zoZKOlJi%;H(*cl`!x##{RQJkI3L4RM8hP01$CE1-k4EwC!`2dE2l`K_PpJFd%CeQ` ztX6fTb&0y=WB5eR___CZ-=<~Df3EDBZ|`Wt?N2m(%bHI*XSowsWW=uciD~zeLD+Mq z9eMi58#&N!$Pp3vdrw%KM{i^g(_{3d4bz`m*vj?KWPd?!$#{lb8f$_o)%sTdLd)sl zh~Grn~!f>@GxxU1hppUyD zs>VisQk?AqK@bJaV3lAfX=*dtb$7k4Fsi@GaLpl%4e~#!q2$iM`CE!7?oFFA7dZ-r- z&3v_pv85cUkCvMmnNPJCni)l9@|ys^8Eh3k+R2CodruRg+jG-WjeJc+?Cf}*fcf%q z-!Y?obZb+Y-GO9DxzxmnA@9q2!q1ixc5#$UId=w)U!Krhpfr?u&?fmC!ti&jJUcz# zDUEjWJVT-oFl3i@B_6#>zOdZKd|l^#;{Pe^+QXsT-u94^PTFi~r;N&BM>VBvh`O8FO%&X~w+Ydi{Rib$$PR zb6xLW@Aba3)_T`k&vW0;{X9!D9((@59+V5=g?sxG;A4!(SK!}C9kk7l0h0Bk;~vUa z0JMc0h0pC#&lfWgug1VpZq9Y8iSF&)u!(loMRyHTRnf~f!~N?sU;b;NY;gDKcU&6z zoYepNP_Fim4!@p;M*~O5^L=?Lui4!`i}r;htInTs4w+T!pU^+6PLrxc7{&dm#tuW) zCR^e#_pgzhY6bKd!z!I){}sthqhX@cdy+-GX41 z>{G@rHh6pPZu{qj=eldmplWZmjZPLo&Zy7Gqz%otvNx?Ckf<&?eX=JddAnHiP60(t z2JU&e)Me_2x$@+!bG9jp`>i^Nru7+|F!7`|q^xa%MZa{5|Idfo<0hi?_E-v(ogj(l zkW$_))ysD#2Bw0XHcBhIL>?VO9XLDHLTQcjwzZRg1axq)0tZB60WwZ1`nLIpF%?+r zUXe2j3K0Ub(zZ#cZ2ocI_aWgDA_5Y0FvCb)uPo1%L5WyK=DF>WzeGXt{a8Eiii3W_ z(U$JisJ4n4Lk_!ejMEF7!k{U;YUt2FQF3?bB2NDr<3TR1V989o?}jL_ubbdIy=ioi zF#D<^vO`>6mST=F1Y4ay*rb|yV<}|&# zQ`FI!1XLs?^Iy3(ldLoUOVW~PFLThG7UfmS8RNw|r<&PSz7#~nyLaytF0N)Xu=E)C zDq_|u3F)S;pYqCrbSy}z>1LuyoUJttV?l7)h}jI`HsR?+p+f_>*afBa+^UoW>b?&_ z734g?2@jD(1G4?sKrv}kmZcH4g-@|3rR{Um%^}Oe`lpX7KO@YPE!*PB+K|PDOSarg z2UjCX8WQ%LW?O%0cO8(7PoOQ56^QsFbX?Pl^*+Gn$c!yTk*d&!Sl`)S5PaA?FtMUx zm#xO3nm75zh`kbyt7p9LuR2HFvmxSZ%RGtL*l@=S+QxJs}N=)e%;$#T-|EKV8x~1e7YOs3r;rNo;lsaO8kH&Of_Gcn9;{d(fjGG zIqoy_^>Yd#%-AP&shB@Vo9o|fBEA?~)wGSA9#uFYNv+s!Kfu!wb0xS_;Rm=s6Gzf8>fCl6DTqma|?`rMv0ou_e9)Soblp-*r5)c92q z#}798tdjzDxU*!Agpm<;B#p?G%Ub@r>ais9RShJ2-hsysO4&*ysV|Icev+M>g(<~S zY`V#gakCEeC$B<~8+&Ob2K^;u_-E+7Dg7 zT`n4ve1?ZfzErtqe!?^b$rOG=98G!RCslhe(dt0Llge$Pp=Molk;uyk?5W4qV6E|} z>B4+Ytd&3esFZ`cZrQAkUVZUaqS^po&)?&qPjkILx+l+XxINcZ_Dk#*X5uNvCJbz) z8=G+4=lwj!qcgn{A$Y;trbW9WUlsXF-76wEi9C=tDCnF8)87Y6OUUKONdy&;{Aa2RChe9}C-tFN%s}8p#5&H*9>{ z#V(^Q*ahGfivC{Yv{RbF(9hdf*Wg;p8~f)z&W&>pd5OKYu{(1fmr9>(?B+qY_v}n5 zwZ9^yCnMG35|Iq7c!BJrvKL>O)ofX}j9OUPiWa?3wuh$J$kJV@o9RSO@2~_+l8Y)M zU->XVctOb#1TRvsGSFoanO$rhc7Ec--n{6zeiY#N#F?gADJOzs|p2{PAhOp z^qFU{Ku!{3O}jGq`}C|iU%MI)$t9=UFfj1(0;0Rq8f4+KNt|PZXWgwATPa&(+4Hh> zNa~!i=-8j*omkJo$BUu0y52G1g!L(#1*@*mYm*(Ri*)IzGWl*6d8xeK+DX!^>(!N` zm#z>!%6Zo5`Q-RK`Jh0qSRnqSz6F6Gh2$xc@pJvEaI2-<_t@%Ma#%A#u5l@jS0s)! zVD3VU#D$_pLn)tgo~y+u7dkKk1?buv*+-=H>@oPxceZD=Y2A|bHAt`j!kn`|S+ck9 zLA^zf%tl`XKR+wNAe*`V)G96|E|IFx7W|tOXeUfXkFQGG6VrGz%MaVT4IqhG5t_K$ zQ_SWZ-0$U*0&I%5cTaXGi+!ShSlj%C<}+zM<0j^7Fx1Vbo_YgYqc7m9!4C}WLP{b_ z-mF^^Mk|Bz5r#f2HbY9x(rl(Q_s)R_JQn9~a z8t_VP-HEzLUGXaqMHPM3Qg2gD!d=-;8!N9(`2a1+Ktls(Op zo%wPGa(gom%bno4zb1F+I^4a_1NEjq#zTN{YQrSocZ7pu>nTfcq1)8V}KCY`-G(cJz zS^|+^;NJ~c^8IuL;%)CcT#%i2EU2yC@#BHF2*mnzHddDBx=(=WGc55MPEG)(C zgcI500VjvtRbn4VR?#9pzh|31W+#F8vFIm$y{BfDV71I?5nz)Rv(yWg1J_y^BeyPC zGGt4C4RI*`Zy-m;i=QA@?a<@`*HnLUtk}`)j?hI<(^6cdng}bBLWOYa8vclzPoCB< zr7?O|+iS$;YPp{IUHD!oXP_j8adr+~R$ICBY^^L`mSTpIqQc;_i*mL^S>+d+NOQWBblooR`(zo}M{OcsrfAdxR`R6E~>t_qcqY zws9r}8swoK@}53X8hE@j7O08^Eq{;C(0yhLA@{riwAe=!Xkj@XGl_VLt~r>3TrhtN z$MzGGdHJx9C7aEEkyPC1y?ee)*x%CqV19(=KX5;h!1ukrlpfEN#uAS#@{YTq?DxwK zv5!6_j0J3#LE#f?Nk5?<)6t+<(c_hRJt9$?MCPZo+j`zteFwLq>Y$-|`n?&qb_cvi-BB<^R=t>tGR9=Z;b1HxPrr~WXbdO!}^{vL9O z%Z}cu$+3@&`uA@s+Ln8Oz%;cgnlQzzm6e^8_-4#1+|=eC5_(SvaIWJO_m;^EIEMm6pN^^2pC>vT0-^hQ#w|$)EJlVzFw7hioG@6mG1!8@zc4aVF*O`;^$~MQ7eo3(vfOo$ zWlvzlTwTV1ucbyU2RY&z!=`B$=1_nm+CY*U0f@JZR3^&|dw;Y&mQ5c|A|@1y0Sk8U z`?mC@5k0X})6%x^IzV>?Id1RD5Dj8E@l;;cvtr8fX|sNjvl;kLGs5O6MzHlo=#UZ| z)iwmRGin|7(}7p_cS6@n_x8tU>*s6^9uAwy$|k_H)VJ5@6y6o4tNiyg(cTPcKs-8G zTQCDs5@ed;s~*3U??G7{ z0F?Dpz^M?Gt*x4v`1dw~!P$YF1m-5jTo6oBza20yIdRNVlx{ce@)O%7C{s<`AS(#v zu8OF9z5oM+>9gY!(_#NKO_}20d{=MZp z6&pCIZ6|N{e)@6y;_`#aHN}9W*!AtLD{hd;0k%f38VV z4d@C0$*Eb*XfglF?(O;NR?*7dDo-=~-;mO8%E^o$-ZFqFTRMY1;@TA8MRC~3XOq+8 zT9rV`aOaw9(`mY9i(g3il9QLNo#>mMsIV(_8-EOPDL5hBj(dxTQbKoA9jLV-Dkg$| z4A7Kwd~)FEjwe#ueL*4?q@0C9ilg|?2FySq&E0fQrw*78g}XjK{y5S+mBDdS1(A)6 zo0_f&t?Rw}5qB%_W_Yr2vYt+DrwHq%CfG1=9+a+@Cjo8Hc&@D-hF-ZP54%f-@}=-6 zZNY+)A)VfeTd%)t*k+m<7psBQ_q$wtk7~!d)(l-|B(r$WZ13b*j8FYj3kCt}SDk0_ zk_4KkM#%;3xMvl%fSA0NrR$KL(>-~@?vK|d;(>5o@5|FIiA9PX@x0JgRvuCq3ii@p;@Vs!M&2n!$FQZ5gt&@Uw- z|4Q%42GQqdkN&m*3P?3FsK_u7b2VppE-A?%cw)1)52k0ZcCME}{H8G}b}HGK0j$F# zqoeRF9TZvWF8OFYRcdCN2Hz{+{o5OU_n^>52Uiw7$;&p;q2*)|#Fi{7oNqt^@AW)! z7{d!Y{c?yuS-CW!a8(TT)f#`1yhikW*cbtQwl)+8Og~SO`q@>X!+m>GkyhXVFEQ1* zQhv`~>}M&Zl;F~gaZW{pcDhJ~!CQ+S*^}0QGgEQ9=Rx465{q8^B6DIh=rLE{@RuC3 z@ATa;V#}IW+H{4E%w6{HA*Iq$`C>RPP|y}CugxSvGpCjFJ)mC*S9|r`F=J`5Azj&~ z%1dnKxq*b3Nn?XqqEZKQ@{MUtvlcehHhX1}QV2T7;C^iPV@5@C>jl}TisbIkmhIBW z0b9U3zuTd#cy#lQb>YZ2!c4LtEqRzyDhN$oG9R@Cs44a@&0Ij+tp@a6HV~N!FU~F$_~M- z_uE&S)*jn`P|Z>;N?GgraQr>|+D_L&QJNu?A)q$m^8XllNP`9+FT-OMu*X;a7HnS& z7^R3-W+?(~+8fEFi>H-F;wswUCGJzj63HJto#lI$f)--xv^RVp4~ z;n$`_ycmm3o!~+8{EFRB>j8AQ1cW9F$6Wdprp{vjL^KYF@_cVjx<>ikMidJIbhnEa z8=^*Wq<4qWRJ>D*a`73?Sy-NH(5-NqBzR{FNT1;pFE5Y*IlnL;7S)zbF8`edG~02vh4t^H6FI;qZ!AFb0_P z_0R5Tq|uUhJfdYdth9B;_Eu;pZn^OzUQ-2lLk9}386uuk^R@#|FZ0M;QPnoRZ~Q1A zW@b2&92^{E#x}5d%mUM>ajKdJd?-PvvBT<%8=c$Uou1y2jA5L#Q2no227Bf`7yAg% cIoq=kdJ=t{>1uF%69W8ftR1aNj$gdmX*`te`}c*iBzve7Nw#cBvKu8tmNqHdSduMUl5NaLmLw6`V-%8gQX$)nEXlra zS;oGNWf;p0W9GT0x_|%s|NA`eo|n&y!Dn1^UgvRM=W%?O^C0rNu^!u@P z*=CijdO?!0X2zw{4<{EJ*sEo;JTLyE} z@S#&6fH$30>R8hI2x)5dn;>bnMAa*O6Mbrplz z*qNE@EEREIuCa(7aeS?dTUTVfux^=hm%qoR>NGiSxbVYkZD#bwmcp1zkhR_E!cZd> z`_kgQ9t_3!R?47FR1K!{NpsRCwF_O#7I3EQ>qdcF-UeO(a0<}Ba_P3;+vRkB%iFV* zCP>r4OP<1wWAtWPI=wHXeVD6cK8Tv{pRp{y7MYVgcQYli!ZbDYf!$z^VSSq9_?1>m z`qFBdC%g_^I?}$^Z*boDnSm9mSIIc`AUs8-RlyUD9CWp&?`YdoN6xEYNgZDfH8(e( zdVTc_cjT4xaV~gtaDIMB2>n2jh0+NK+_Ecb_?`sP))0{h%QC1Y0TcJ#H9|>)p*xk%(zZX8t;k}U z>yaj~sj5!YXO`>UP-y6AFE{EiETd6FA(k!R1EyGCtKd#iXquA8)b18e*$;opP%K`I zT;>)(jCr!skQF~Tg;ndYP-nmI7At5jc4=~QQd(X8ZHl4T2U8Udqm8tOMt7cW?(~sw zK4!&#UvF(p-PQUNk=YN_XKfo+CHEtCSxoZ1K_|W5PcXVWrq2Xu%y*>U+SeEwDfYrwOJ~nEspCjz}MhY|Fn?p+?Z0z{`Lr4f2Blyef=>&8VwnpT0;q`NGqb> zyg4#fd4<24pqjSX5tvG7NL!nmP@xB|B<=5u1xJ^7$OCsDW9^mkBRhp|3_|^=2x5ac zxDKedC>M^dK*G5FT6$-j{}0ut*tFlvqL5J*8?S%iR;X^;GCXF`H`*_ zgw4to@rlW(FauXrRH3CAnRvYC#bQ_fm$+XChs!5Bf~%V5<5) zto2SgUPG+GvG%D!Jg5IW0I6wK^Fn%yb5xD()wT?YZl}rKdx)`6{pvhDt!#tT5{^nK1Rk3=!_*At=sHZ zR+h{*$B17Y=gBT*l!FQ%wnkqbx_grcc)Z54#B(F~m(kLDf;QdH&Xk56w(aN3vSXef z^sG<)i9PTrH2#3Z#%mYiAm)j%=qx{Z7k5BbNUL|s`auj9%ZsLCqXQ^DxT*5@0_w7j z)7e|uPB*IKGP|Cegw{i5=>S#8kzm3i%B3R#v6p)5B0C$9^k|#q(#{3Fn=J^%8b*~{ zvNgo*YII4<%(*%)U~+-n8abS^E8+MoZRL3g7*x zJaNqF#b$9TX`>l|hHYT|(PAvIzUfQ&jkA~AkC%3x{dk}##Ncb~P=9NEM9KJARhIXB zVE2rycMk#EnuOoR+;PeX9x{Mmec-k*Y_y}_{r<%vN>8+65HK3{-7JYF^DUgm()G)zDICh<;v0yzKxYBqwsL?XV7?>wOgLN)LJ zJLL(dk!xRFyGy^K<4D@hG)oOcUD1zp$aXBbyU>>bDodWK##L_2jCBWB2;3QD{S?GU4$Le%5#jrX-=9e(>=K1vbZY2O|6=AdcLwBl#E-C$Lm5Ryk0{ElfJEVd zLAieH#=0N4DefQ9B+;TH%$nVy@``J<3qbF;Gr;X-1Yq?`N(bSTE#_Ks*SSo2it-}c z)BTrK#|?X=>5|o#kcD>?!*{Lwy|TU?6%j*=?L*f|mX@T|z|s6-3O>mP6$9%qakvV1 z$Ihi4bt?L0)Mg=gB)uwp**?s&_>!f6ETQRMHW{DeZn-{kR1PhX^=HQ*C5;V^XcP5Z~$`SyR(z>Mr$$>g+|$v;$V z1$hU57Dda3u>hs+uR17 znb)nwor{fg?{dDkmSU~7`a*oI9YrGcMMYK1&WJ&Vn+~l{Q{5*jSOk2Gw&xnqjfS0& zuu=9KfV8iu=-(2}h+P!^OOMObXbmEu#Qr?%6f^ix2}-O#mO1`>6eeZ zTRWx;9TaHAEp&qxi&ePwk7GA@d3pK5 zYpsdQ-^4iq&bT1mUCgwOKYM(pkG<}ffqvJ?im^RUv1!DMYV+;&ro!ko)WVSiU)`Zh zz{E&l#wK+`1>zzGvGZN}UTs&!v`#k{|01HiAPOWY4-E-*-X{%c)awQ6>0eqP`#bij zBo@GPU00rLaBQ23Q@zvHcIiq(#O0(ws_5ei-;_+#4f`l0LYWPVhz})Olz##PzO*vK z1b`DSv=zDMH^%5U*2m!Q?|-%CMzBkNK1+ZY1h{@1c5+OuPd6#?B)%5UA|a^~{V|Ce zS~U6TMpXD`+UsddN}yZcRk&(+nclciZftkuLH8rP)4Dh0f9*2bfQ8#o{ebBkVmTOg zg_X61>KlO{c5-o6&JL&Y3#j#ha4sy%v)v^6R_D^*# zMcH}-J(3Uo)Ce=UbJWyiK8VFo@*IV^u$$D`#AY+~jQFE~+Mb6hp)tO>zQN}nwYx&4 zP9NuHX*pfr#5&xpt#|!qy?U9?=Tkzi81l_>4nzidU7Ol0J0{yW{Kb*>lpkoKiB2ny zm7VX7X)cR00=^{0hWacI+of9gP+EmRQwKR(p-Sk=Mrkx(CqIu6@Ek|Y9%(ii`C-I0 zRK~VM-4v;&PkYy$Ws-?lz5>+pbG`2IcHP^Z@Vk+*S*5;yBWs5V7)MZp?pQuVA3JpD zP*=_D;-k(RS%dSWZ*+z3UFrHO2UP~SOff3vy4ArQF+bh}Qow}nmXP7Hr6|e=VS?{z z9Cc^UnBMl`L;wuIm6zZWKjl5{>%*q|sNlNYYY`X0Ki)Kl#h*I@QqnA6xW<$~A%$*Y zaiJ6l-kT^;#pVfSMz`{R%F^SQo{F{`HGRYbW{Oq3PzL#4z3yjY_?CROQ7p;)qWcj) zQAmx^e%JX^oMy$)x)>=JTaP*S6IZLA`lOkNNbNH-Y7X>GaSc-S7bo2}2r+^h-8(6{ z*)zGFg*#z;hB3^J=PBZEn~BJCXZ$%Dnxfy^U5G$#a^^hQxOM${a0or&JcS|GVhYUW zgCuQ9rf-DrBAQE#B;nn$oXaskSL?vIb4(9TbxK0r>VI62GsMc-n3Eq~LdzdrAM2%} zqqS?u$BEc-FF*_StRGYQ+++)N5mP6a$2;}{5Z-W(z{s)LK~A*h+!c{Y2uDI-x|)8Bggj~S z=r2LXJH?4{LV74?u1BbLQ)ibmkk&+52md6w>6QekyPxkz&iTZivp+Gif-u?*0x7q# ze4}XcIPQbIC^q=b#@Or~UK)6#!l|VhTXlU;_wkeuMMpWe->uG~+Q|7ml)X*%TJY_+ z6lw1S=;YZ?19Wuw3Ll0lxwm?t#CRJ7?Qe*e>)3PVnustJ6%~vp1F;ldAM&@0%#YjA*YSD{6haKfna%Rr&vVI|w~!w-Mi?31S2Q5QHR zXQg;aCKMrZ<D@8r~xJ`1(OHX%QItv9lA4UE%!1tgp0PKVT}KRDc4<9B0lMjRAw zd~;BqU{@uKrGYzKk+`w4;Ezvu4iejD#0HcFdr!qM*x0J_C6Z!CJSD@bi0kv-ylvDF zFT}%B&rbC}1aNY4+H~*na7|LW;tHlx$beSV4H5jq5Q=~^N$1Kr;4Wrd-CQ*2+uRr^U2UA1H)u~C zx?%o8@Yu1+l6eq=ZW6A&PK7QF;1ZrZm70yhR*%-O=fHAK(?Ud&2U`(oEM2kuj3v6I zu9IzfCoF3o9pjgsh4#$4s0Y*Hv{nz~>!tqu!M_;cDYmAn8(!Ar-Kmkg=UjGgQEyY% z+-ZMzs}7X3K2*NPIS-7^0JOVb2IS6&dy~X;A3-;Y7WH?d$n#PgNYvXc>;wA8MVWvb zy~RX#laO{(7w6^*@3`mYbK6Q&2@~`d6FT|8Vv!;earSM8+CjkS7^lPv-TedpE2EM} z=ttv_&-@#elg-*>o=Z*^bRR6%B_+UkME{0TPYXq(J#`8KA&2_%Ngo9K%y_PwzlSEB z^3Vj%FkF=k{HhNLjTYF_Fgf(eFy!S2{8hYHn+HUO~@iFt8Tm`6>#H6A|WLK>2Lv|jXAwHL3ptwjnm5P-=FJq zqV&6T-7LJzagX5cUR&t=v$nAeKkA(bS{Us=pP>=|7^ae_`-{s8u#N2!HV|| zF7QoE;}`s8uKW@8G#R~i7J7ptmYFFyzG90L+^1l|mV_RgewQ zwu>XY~^&c zFFt5{7`CaX@ewy8k+uF?vHc^eXaa7Bm@4yZ4ZM^-RnY&E)ZyQgqM0$`=vG)i_bLBv zN$jiLn;n|M3mJ1)4M?aD@$Z-2o)+N z$#2b=ozeIsum6aT-((U)fEjV0B1L{;dlqmWV6M!q;QM&U;mSV(<$n~pI&|H*tL%PI z@^H@Epi1N5&x!xiX@uE-2D9p*=lOC@Mzk}as7YjNLM@K#f7INcs}lMV?L3)pAszI< zp@PyLH|}JZ`b{~s#<4J(BKpq_JCmUI_6IM}aXVVilfC#PA+S8rmdkb*TcYGzKK_po z{VjUQEi)Jw0pVXaL0WMbNPR^;?nBYc+fzOzhyEs+aHF*|?Z1XzdqGXz0#>lzT1$^q zt6gjE9F3W5ZPLhX?BsiS2R{B^!^3>{2hY%P%ZZh1A9F3HY5l|KV_J>=Jkibzn-KyEJ8yoi;vC0ZA9z~ zjp%@>3Iw~;Y2Mr!plC4NwJp8VBLeE1i{LnbRx-lKFbXLH(!@tKUj-ZZh17{@x1jdm zXL*o3*jr0TvppqMr0+gNNGUiPlu{btcOqjUV#>9%JPn||lLI?X58$T@d<=11c4kGzWn8 z)9nRtLo0*pe4)UctTJ2R2GYH-#l3^Huzt#2mRW2@3Cu)NlF1)L=<_Ux2I4^t#0kCqWCua!xRZ!3yKC%FBk-OHEn~Z8y}yBZY{AHw z387{6`&}#aul1&}JtP@LUP1bj=T9R1$`Km0S}NLhw5g8lN*`Q*Y|zE}`7aph$*4Nf z;L4vYM}?xUfXVK0gz6@yHD&1HJK^$jUurTcB{vRtz0OP<{N0)?&3j6C0e%^qHM>Y{ z71i>#!`kJMa;~<^`QX?Rp3t401wT+V`0fqr_TS1u``oLah{0@NEq*85JC+{lJ2awLG}xy$i00!W1ikehEyR;oCoSfOgBVAP&*$J!BT8d@$gv)*R^RAR8`nYS#~U)QHu z*{5IUzi{Hd@EaS>)aQlwDB;29Ojny)NDq3vUVfX^e1A>N-^O(U>Lb(DP=;C%sh9~U zmNlQ=yLB(UD%-68R{7r-MXWucKNC^dd^VPnkqUhQrk^sr;_fY;f2H==Y?a~xvAV|I z2U)EYI8W`5&kjyetAU4^;CmURZWCDnNk{*c*4*e34Xy2t#aKC89L;ET2>Dkms~e^k zj1Zdt8L@`-4&DO&$P0&;nl<+xYVM{A_W3+|^M9$Qfw1<(?>pe7bVf1NnY`iufhiuW z1KNcpR( zJ3cK-4%m>2%lPj)_t!flUl|I&q;U*5FxG3ydOPg=>3^)U|Dcs`2Fg#|$>OtS+cF46 zR^nRsTAluHgULERjl7qf80T0sF#S3Jf3lhRzpf&;EMewYu6GDI(g9)p=8G3u3^fJw zKrnk*_m7kF*Kp^B65rJp$TY5(gvzakoQJdGUFXCk~<5xl~fY~pfqyjT`wmL>A-terj*m#Vyk zBrXR3&y$48pz8%QX|nsT+#LcP0zj)A5XuX5rDiY`elnL@d|mqZkN`LiaH_5p;c ziy!g*=CTTg(Cm})9RdArenk>+k} z?$gueJj4Gk5lpTcqR%t(^;mDKfIhYjh1;a)j@(_Pi&&l|DgyiCoi&_|yf&f??CyCS zK#!?tu_*i~8KVq#<@y32*q0-wn?&9Q=y|cEf~QH#;0cR+Rpy&D*}-_?f6Fn7)MQob z))|UB)wO3$O1w~%D#b-B>n;7ezDZK^0%M5rS#YJQr%fDWF<(wpX=u@oztk{-?m<>l zn-LICNB*lh$1A>K3E{WZTYZ_M~}~JwsU;MVboxX`(|}!XGXx;m!oKkvxP913lGlqBNkBiW0}^c_1)=u%dRr65sHHkoIm={ctzffC5=jEr|qXNM`0q=mAIl=dnc)$kQwSX-Ykk&OPg;j zbHy0L8_*Eo@qK6+Zwl0^yQ=+1I>^%$fxa(FhY~uui#g1Yd`Ai=UJr2U)lm) zB`ag!wyw#$XiP8w%z0yB4#cwC`{us^278s9YVm$}q3?QjZp`IDNcxwq39B+I{|t8M@89h&xRp1FHXmY0@QpoJttOES<` zd5l?;KY_6zE`_I;VoP7(3s`O z)G^nBfs=;6^_%XjS^>v+P?8ZDCIUCP8+L=LZ0fFTSn7bM5tWUty}g|iHX5g^SV4vI zxl=PO2K|A_N9G%dmKeu%I`7z{6ubgaaR;%`J*X}=p0}f2d64e6L{mBo?Moe_I-Fce zW~wTTKlK+%FB$%Y(w(cCHmls|lzo0dK~0k-_P^_Z%blzdI?^zC&NVL)Xbu#b8My&% z85Re@@Pxi3wSUu+C(yzM*H|uI1J1y0eNL!NnHl)m{EZdxyuV|@EU8*FQu=3q-5?Eo z&fv(_=ZLjBFUaywFTl4G_hgGOVIy`+&8VvZpycbEgnTAz3uiA}U_De3;>r@nTs(FV zg8HTRN8S$VPc+P=BCmU>2OgU40?JU9htm@jjkw*@?w!+H||d~OKpa>%Sjx>6Z!TRVHxs@ot=y*8g z#7pqu{1%*=>pp$$g;2WWi0^evL5)B@{fo8xqU_JyD&^UO zf3RGy>T6e~c7Fjfak`J~JPydAl@ByT$-N-Y<1iBIFHigx?9ly;PX^{JAMVkAMRd~T zbw&6V4IY}7hmoq2K#F=WD*>s5?IrWmW;XyPZqHi4TByO_EoyeA|5aVAD=6mMHp#bo z);6sCw>UY_WQju}iAW`=3Dx7Ifo&A}Sbc?SU^~8neVd3HQz(CN^mwm3Ctj0TlgG_qe=R{-MDgDuHTD?i@fA;Q%`RSYJ zU*WpWk%#1}9^o4~pjouLxl(mZJ4te`BNYOvOi!+ibc|isXj1RIx;)2AT^ZVTC!d>B z+^$a^9GaYA=)on7lN+dV*9vwt=9bN0VMdS_@Be{ZS?V)itOJI;!Rnf>@N?F-w0J*) z4!CnzKdFPkdx+tJOZRn_9uN>g$pZkO?tQ0s-`AE#NC;W-J%mogrZlKb3^3Re>Uy6v zvwL~DkVJLTz_0Tp8NQwGxS>Zbf@rJ{<1`bMVWnnodO0sk!kEf4We}0oM7`2f=4;N~VRxJ=Zag0&+oL5*R(mVrarDiOhcyy1h}E**fs zG9c0uII=<)0BT#E@C3gt>Hp1wq%~nP1nHT;x^H`v+BCozxry8L75?aGW?8+?|KwrC zit{Hp7{QGqvqVyyAB}OdTfMcX9z@ywYGWh%_iJw6B`E{5W9R{xJm3RgU=|!q!M5ZtccpLuCQmG0idT)15H+M= z2Z5mrua>Y^w>tMIs3o%abUCvkl*5i8LPvO-aD@@TX}-MtV?HW2IFcAJHb}H-X5vN9 zLzvj?toAsbDX%#;#y-B!M7meqvC2tPWe-7$xwwyczHkS{CjG{Uc4SXR^p^p_b0_;{fwmYF{mfb5gd)Wit=n ztlqDYv&BXC(@1ZRp>i|K9*_MlXCAjH zEP$z0D!Q-YHQu}o`i*hu8>HIw8F3AblSsF7sG+k5W7qvJxRS;%e>L_Cy(jk?0p8fc zu-)XDQvQsdLhNSJO{%vyp?i`ddy$Ho&6clwt-`8U1pUJ|jzbOMvR0L{qLB9nd*aNH z$Ic-!SYO{qI{w3k!C=9e1|5@f4li&m!h`!jyCmZ%?HP4^gv$uYU^9LzLbk>vame?9_mMb;kmgs(45CUOB zch;otJa$shMNBG_x-VZ04EBR9fJHf@4iV^G?YVv&ul-B(4;G@sTZrmh&fU46?5Tl;6DRE~>x_+NvRJ3n!Jf3v7b*X5?f zUsPT9$Ll9R-Nm(>kwuP8J!^0KALrx2?w55uPsA7gZ@X>4+<;N92Lm)12 zxQZrVM100%CO1!=kt=>P4V5f>$3o51bA2=2ITBZ3v9~6;Y9+af$^QY#$Y^<$oBLTC zvmZ`-**iP)#dHnGq!6z^GkbmfNa!cVgTfD6ym{njDXd;^>-_lp4ybv$$zvvC%klNTK+f zFafl3cKhq3ZlGVB_W~m{rPRq^8_L6#e_MBaY5B7_ar92Q(1IB&Pg0W?0fRR4sjkW= z-_r_Mf7;Sbc@Fg<+THY)mSIZ~H+lCOBbR!?*=~oFcWl^6;P{7o9#@}*aBdGgj~sg9 zU{*oh+syH3h1)Htd<$FBxUBG?rsI$|tCu1sbClY@qqH^$&AoB5p&EbTS2_HuX_%s@Jw`PO1NVYIN6jqU2w1bVW1pvCtPBi>N;sXNt>@T?^f=sO$2ynW>)9u z*iU=-J+7^YEZVAdbRJ*;w#l&)>c>fl!@!djQaJ!jts&80PXe6BM(A^k^Sw_teMZ== zM-AF{-z3N%a~+UzP*HJQUwuqSv8`v~unkt>x~azUOHe+8P765`(^7*?9x8dLt#8zJ z*fr*5TNW>SWQF>Hi(dY3Z3@=iGCserd-<@LKRyiHK$1(Z&ipw&;(>a=DYMsps{0?Z z6)uvALl#eRuv*m%@d25iK5-5stYhPZfS*_Q+05A^R!G7nZ5(2vkViF}&O!u2BJyc! zy{+8_1Hj?42EGk+;Uby3J_mVQw##YRx(g2=NNjy4*uNx@fkf}%%OPrahHlN=q`xrn ztXtO6vm6a=EEE`-o@BEO5|}dMf@eZyV4n*$l;Awfk&q}4HU0-=&^Dkhh&B~dd)*B*c5nHDx zSNiPz)V7X32rq2{*YinAe)_>g7#aYJML96G3+Ejv!^uU>MqWcFOBW6W8TacuH=xwX zk*(9ANl=v^(bU!a$hzlBhbnf#MAI~*fcfP)3nrE8(6$M=rMVOHaQsNu9aK!|jQ(|Z z`0Fmxxg+YVcfWFMn)8X7JfG3;GGTgyJc9brlFo<KrI6)R8Z28)BQfUEM4-?(UDepgW%W4a6MnA~avu2E zE_XRztQJw`Uazp9VHY45k1d_Y)@8l!RM3hIcpAXQVjCbG4@unTi5J%ZcbS*;p7@9D zY$w-Ql=YdHktbU(0}mzgSY9UAJ~Vo9XX^sdesM5I^hHw-N`wS^+TQHqswC5wjsL53 zrd+?v@xiPDtOoHBVRdzvos|vW@-%2yZNq#VB@FdSJ@#W`yy5QQc#*9o|%4&Pnt!s0F zrvT1V3%{tLkEH51dp3wMVK2lkRV9GF>uP*w+8{M5n&aCSk@f0nMAQ}1RD%kfyr74he31tI zaW-%dT;&A3R2G=92H)Zj9MgMNZNSAn$^~#bPE$=)4*P(UKCD&Y&ub@w!*?G2zWe)5 zAhgULWKyFE{gF6w?2_Y&+HUxQx? zqEhS6j(W#{UPr9tFD#*2FCx;~E`JtXp+cP!5()m%-%gli0u zJYX9up6cND`^XC6lZH&mJ9j<%YNx{69J2zIo>h$@({c-K#_DTI=CCpE0>3HEFikHu zdI&8=m?W0!?Olf?kyx9gZIRNhsAP=ihZqa;F%kaH{e&gY=_a<6&O652^DRiojBGJk zX;*2g#Vl(dTzz#SjauyZ%KR9W(e^|P+F5o;bw@)c+f(k=ObU>nD7P;Tk|~6kLgSN! z2zU@RJpV1rMf)DhGWV@Jv{$Z}VpMa?NB5xAX_(?pvHd`H_i}3t_5l=5eiF89KMavy z|LRA=MsNt`lJJ9Im1?`u86%Ozlew&*)HT`7hj-gOBPb}~MzB%UW9mN$BI%1UcUiq1;zp+)5ysBLZVTsyfZfB_OdC9Um&H;ypMReYa{tzbS~F!} zu&&BaUK1Mam7&$=m#N6k1PCcg%92DVn|U-Vg zCO?77H_Y=07Yv}M zADc{ECfP;-$$^MBPPDLpz5asVn*&xMo}9d*m!<@@^x(~*Lwh`gy51MX-;a@El50U= zIeq4v2%~?3sygp@j_{}UTX#MU$he5O4ITqL68CY{e6Q}+%?wu-{8D!~$Xa-d6|+j9 zKlg1J%1*`x1rvALsE;O)%JXcnx4}H~E)1TUDK`=@lX|o~Vw}niD$9_9I8crcX!dc; zzsg|5KN!YzT$7~UAt-#bT9dnfa-6}2o|~JmWMRQ+v3|=hz@;Ko%MgBC(fP2MxXH+^ zoq(OmMMv?>`3b(~n`t4#tPq=LdYkd%Y8$U9hK2z%+ECzJ;MQf!VjNuVw%nbNSU_$R zD|KRMPXXO9vK&^TATw@)?)~DkF}*tDNbUG?%htC?V@c9osKh?gW8GhiTgPHfLq{iX%`gq*h207(Ke53Nt_k2d z-FdVkwtpx8dvxarf);Q>nw)Xa5D0PZvmghIE{sP^Pv{dE?>zN!d3Px|Nfrs|%{6gc zS-lq}6pv|q-HXb+)#~6hsKRYzAzc@gzV#_4inHCF5x>LS#K#| z;9^derXaKKvv_`Hx>`+YDAq2C0`+a=a#z9!=1m2Ya2_7ETG&F)5MFo3Jsc$0`kmf8 zbLEW?pRqVZ>5N?8PQLAT>iv6xo5vFKS*d+n7R;Lk4&R{~D0ar`CkXmCIMf(UZGWi3;0{n;#p*Q4vd6D4rXuw-nm9U(!9gz zpX=r(w&Fb-;)&CJZkY#LPI__i^_Z&yrtLG1#7{{_frn^3YZ-^YOKpqu>-{hNiL;)9 z^t%`6Y*et~pEL9Wih5?|XTQ(!-fwm3*O~bcbX4_|IDBkR;rxaHkSwke)yW$ebfqGV zTn))vPlrf>4b_VYB!B0(s|`hu^o6eSC{-THKAq7t-c?d7A+_%_cES+Oa`P^sgMDbyk#8 zd`l7i{h0(C)I?Z7dg^qGOe^|G$sm)bM-O59`TBCu6J|6TEphg2-R*a*yJrw*fLf(U zwPQBM!63C`0;|>Z?)FCfrX=dQMd8ZJN9m;ea-QxxlA?HI zX=GZchhX4Kjs5+dy7gpq;mYor_F|p4n&udHLCg3CZ{_uzFhfWVS_Lg zRRi{b-@W@$4Juo*qi13iP%VdRY|~KV-za|nap6NT4EWj7Vh40RxE3y3{YcveELOv# zW4Gi$E8+LtI-ha)-C2tnKg5EsOVUuAyt3_IRRb}XBG=45ch2dIbl}!$L({!UGeZ5R zOKSc*Q*c{+?l(_2=k|Hzp`A2*6}<0${qjV z-bjjYk8T8Zl^D~=b=3SLqfN&*lXrO+Rx6+MUbbTWPd^|B+7c9G_~+m_QyGu|!w^34 zixCI>CY{-mzNy72uiwKp=)L(0qQaAze&RnpA@kq)XZ4$7Bs7vR409QoWdZbVKU3_b z`(k?|-o?@W=yGQ9ylA_FWDs^H?kE0!yk*j@hxlv zK(F>Z>GMQV37uQ3oC*32g?y6R!W-S(aMQxKbOv{q$_}<@33X+76i~JvB0kUP>F;?< z(fyXtv9EHITn(4+mc7ds0}F(n?%WNd$_6k3lc}`0IRl~aclz_O8D0k%vflelMm<~~ zSp|8Qv_`iO1JsQ2g!s%_~D~K_Y=eQ0&u_CSp-*BPfcp-=%s$o!sB+wjo41NuJ>-r?32`q5 zrF|D!LiS#dZTboU+jO8hR4e^j^$(PjSHU(^Uguad$;%<_RbPKNvk|o5PPZv1DFvXZ z0i@dB64+~H+L~yp$(I}9gL?Su?i1!*r!iS&XWUph6%%jl6J#M^OOM9|w6aUL(PVJ6c+qPsjrlAW8SvdVn1N}kUh9V;NsoZP+Eql!@#EyRCjM~Q= z9x2C796$KaxodrO{t!rS=c1mT!o73Zk}b1by2S(r9*oXSI$2S9-4s0zP^D&i_w^_O z!-!X~m(oAP-unC;gt2qlScexkO@de(K~z_Z=Egf5-4k=Gi45s zCV}Y3@+$6B5sBAecGq|Q&04-CmDeD5uk%JtEcFOg9c;r5ul>>R%Aq;{t{x`mkWm18 z-WerSJ;*s*F8C^rm{N0ly6Sv{QNe~<8rjcqzhD6))0{*enPHG!A4|`5vXV3HMwmEJ zWeNU!ooO7(GhkQL{}vES<9ny)BXnnR9ZESmckw<#yKw|s!^A*44Ly(7QLU=}qX4%$(Cy!J12n_ZJxcNp2fW`Ql3!5EW{jcMcvETLuX39WV1A3?#-RZU>V1T$B-rib_9k7G&oAyIP(3p(TujsZAY=A+iL zcTsz3PCaVygQm~P;Az96({3?GJMGNJj=jSr-K#l4txv_AwxXO~w{RI&l!g{5K#NT^ z?+UI_8sr?w<*l8|2bYHx@o5V+0@F*fQ_O zyv6uk>?x`UK1)$+98{)AzM!g4qjc9%J$Sm@eP7VHMMU%gC7Hje>kNa|l(D3OfZvqt zsbyIjb#3YBOZMjJ%|AYXB#%t(fK^tS2qNn_g+dJ=nRJeDOSXgilR1>~;i6ggMy};s z(M;5N&EP}(<#SQZPA!f1=v6&uaqK%jf5 zk8uf$;9Un%8bNivO$}&-_)cL4);n{E1((PLw_)P@KeDto{tAYwOsfu&RRE^XFquUpOlS!gfXBWam%y z7niJal8+5!vW2_ zl1lzR$6b*oXDed)_S(Fo# zOA*OD68zT`VW@34$sK54OG6rHQE{`!$u z;wjC|sgZcT!HHt3OAy0O!!GEDrN2JjOl$sA`#j8Wgfjjpv^<~DSTC6iJ3;2Z2BlA= zldL9cV1V;Wr)N)#Q=;VP<s;aMd>H=byU$TD%x3cG1EfBwN@Z` z@E1bFVzoF4oI!2%AgdW1CO1a<@S}G)N&|C_01aZro>{$bzP&xf-ML|bR~dw?ZG&^= zfd;}!2RunSEJaM94r+C!K5*I_1k*u#p8YPa@(7SVOc8HfmK2dh z^On@=k>6_`M0~PC_h@^Wt%%0TV6SUTuE1PDr8Nd@t2s+nL(bmo%Yst+Ws`|qs<$Czs7dvMMjLi&;- zJpj!{p_n2BZGbtAQR85;o?&d|ZXM%+WW>>X57$q~7e|*~+ajPBJHL-F$rO=}AS5UN?TbVV#N8yM%=hvtXpDmukO^RBS(Ql1DSJ2u zwR&+ zZ$yuMZ8@NkAyjSF>p?Hrsn@@WO<_qCyaAsQNCW#T=G(z{kW(=Mu$9E`Ne;H74Uuv( z&o)ChT7PI);Qb9m(7grMwwJ3E1Ut1&`w&xVe2qfKkhu~RynR*epfsJqVyyJ@YrQ=R zuRad&&b4W>e#ovcl!EJU3pg4?+!wx(9iM_+KnXxA+5JiW1fNZ82&f&#VJ3Otmlu%R zRNZQ-KS3jhauN^z^NN{Er$q=KNfAFY@~g`ghEZe{7lM^3NEE%rI^sEwrlH$c#r2g%He8^ zIk)fkvwT0l^UPx>@IvOVqPL2Ng}mr{4i*NQ=EbXp+sq{JDXAVJb5zCgF=?d_ag3@c z=P&a%;1(Fcm7XeGTjI9JPWC;}CD7WaH-HB00U8MOGMg$?udrTNCBGW)B?>X;x2)>b zze_}dq_l%y#QHBf789INp!oocY|*{#KNJf44_n<-RO$bi4X8ZDuLlJ=J5r7?PPMK& zZS3`qst}NHe=qhPrbQ%AD`NGXFW6O3W(oY9w?@OH7hLup$ERrt%N>qu9f2U)CLZP- z=SQtQCAZO&a==a@H&5xp0AN%W7Pn+-)!C;xeI+K9B-1Z7%8S>met$Gp>;m(mm{HQogVg)Fkg>eByix#MME~$SLcb8uelW1NcRQZ|wI* ze74XP&(vB7P?#>CSZP8wC;!g~h%VRepj8sRj-@5FLCPcV+QV`u%;IhA#8>+&cCXIz)iVkLRI_O#GQV6dJ8cX6q4>a*Ed<+{2PNmcUdz zBpX#HP8{&o#!I{Xw9rm_gmL+CtN2^T8J?2^$}$Hw@pC@HcQxnewGYjoO|9H9nhZH4 zHi;hnfZbOi*e2u~2IPOfRbm`qIH(_5`+CIy$sY-`INa$e^1pwO}BG^Uo}v^ zr{o`-2k0>|TK^Txzv3+>h90WN_P+cXwoT%p$r_cw;{%u=>|UE;_Q6Bwo1mzkOa(T} zuwriSOQvq2PR#rdG4KkY&xjnWagk*{orvjNKs0jOk~3I?$tSYfko4iI(P^rH_9ZBV zq8lkk_yt@YKCsi8`P>8CO|&-)cQp8zC`H|gi4Ff@xO`Ijx(gp5@Dunn5Ac<1KFL!x z+4>wvV{iTlAv7>4|F?ZjM>bcAdA|c2uSL7GJlVy)`8D9wQUXB00Nz!yfg&;8l)ehs z^DI-0tl)MLjqoJ&qE(+n!^@ZVjYAc(fg0F>0M~7`3U+Yqnv*A3gAV4zi-Y5i_NV!< zz|}$Q+_$gd2qfOY1IHt@N}=}#Q0wk`jxeD4)+|X!pR#t)Yr$vffG;6T_TcElTYefIHn`nY1nuRb`SFy>;Q}!N&qZ-2{&7(#7Gsx)5?@zbl+`8RXvlEy z9Ry`PPY4?bxmDL!anPjhZ1W)W)mwRae;!MV96PWSkPZL|{L2AuN>zu` z4#JgfmFHsEEr(CzWT=jsuQ!mBl?F6Qif%ShGzJ-(#wV816e~l{OUC`60VFnm1J62n zEnM^9vy!~l;1hd`>y1;nmS>{sJ`I@e&A$8I?ew-|dg^bWKyDEuY4Sw`$k?8O<=J1B zM;jJiFOD{Vs+w~yUjlvS;slKk+&JpA^j^S(qexGtQfs|6LYHgF2`V%b>zmTbHUpr2 zWka%y^of?Md3E%OlMW^gB%9-m(dS@)5nz9-7Bk1sH`fhfw*i_`=>FJiBRO=hc5=oA zCf*0OSm!H!5sn#BoDNYXhiblGehGglu`zjy4f1@DzpqdqG<(1~)*_yGn{0@(y1xc1 zuH!1esv#vXDhk(Yf`j@Is&pWQgG9J3!DcXI1gyUb4&hPJ0oF@^Hb-1m@Xp(V^L_e| zvE9KJp}dzS(UTc2ApXp&K`bSgaVm7zAw$4e-yFD$DeoHds@ub6?UZV}bsE?vm$grB zvl3|(FJ5MhNPGsH2U?Q|N$H&Lad5Fsx*Ux<#e4_^pJ9*d6-3pN-V3;UiGCWaC&d3) zPG(!3YU65k|Lr?~eHq!oP9uE!c4w5Q*3AqA_G$NRq5ZJ-fA{fWNICMCnKj3=Lc(*| z)IfR=m^K%zyUA$g0d6NCIY%PYO`X7oG!k%g z%Lw2l$+|Xn?wIC?_PlV9_z*+>Rq&>_WBjXFopaq~c(cfMp5Y+-Eh5x_n^r9*fU|8; z+gU>p@@k{z-2=xm>;;aIT-yd9WWb@u^WOFeKts2DKkTLWTBlv3mI(y`pQ|`8Pve`;y*5y zGoS+&Gc+e;GjBu#Oj9~X_sfpIbUr(4B=dB^+(7-c(m0>X(&Qbl{ zBty=K=#e?2U`)*pZs0uPU3RL_@0p86tK3ev$I*(?Zo}aFS)YsEl#_Frk(m+jbGGL4 z!YXYX*lix&w{ir-q8=%Jvz()Gx1&7UV;Za{sLw*!abQjRS!3^aX4Wz*f{4fyET*#m zRkETfqpV@ws@~z;Gwj`_xAWx)D}o7>C3*=j%2pAH2N0XIKG<9N(!w_pDs$%IBIUpn z0j zokLh#TPq@LbNA^v&974)D1ymm^yLF$4jyrkqLOZ^It%wjJw{g0njxTt)spp#i_ap#h`1 zYX5o7mg2sDp{Ex^DsJ`36)6~KENbn!=lGTy3%hK^%hr~mr}uK-vGrUoJ#XT7J@)?7 zTL0>}wZVs*x-Pja$}!S}@#$IzehyEr1W4mnc!o`)?b>=^{U$jz3hdMf*Zz(|xOHjw z0CUX%*kM>O&@fn@xkdy8PNUB%EM!9BQQ953}wextvVZyW!BN`sT9zWJWkaYLd1KEO{5` zX5Icljhn`8Bi#Fh#ZzTD?(T{r?q(|5p_L|5p^k@N_K6)_gSfH+kLU)R!+80?3v}V1N}J_ zZt`-0qRGcBZw)zJkIq@$C4C@6D9Ms8-fCMAyxHB!>o@Au=ve(&Oag1thiWsTiHtmt zPGG6g=u2@nzwVQ|n++Z}@gYW08Fq{HzfNHVETfLuF*6{q-{Oa;B1sd+67`xto*~^E zid&95PjN@SBJ4cLjZh(N88oQEG(P9drQQ-&E_ZxYR@)G z_(7+986p}YgFWlNQS(;oU@KLv-rzGwn=LLj(PqI7%O>X}7oUF^m6L@#2^P@8puq@M zh)~06C5>UhKC=WyXs&Cg>Qfc1IOS5g%Bq>99VlpgR0G@(QR{oU)Bu`HU=FiqQOv0@GWfTE+-A&Qa=IS63TmDXl7JF4&N-{ z`!CzEvebpB{P^}=f4vL5^#?~(&$7LIPp{vfALhMda$pIdui@4chFgCGGJmdp`R?7B zib~7r()TiFuFaxkQ#eih8{(P4L4Fn*7d}L}<`2ej&k#pvLc2qE%i<%d(PYjn*w`UK z!;ibNm_v81<_CNb&#lJMOhml((v(YwqSbsCZkVkqTRA0xt7Rmy=w(%fd4bNGw)tbE zu+WaaR+5n!7o3iV=6hTOWT^BPy*~=3A6GSq2|PVVHhi-RPw^M{88gyRj=v#bKj;}n zZosNp=Z3NBtgSp+FE$W@hv{_@3M3sZS~|zQ9UB0hZo@7jmjl4nXg6>wh4fNfr@f3i zGaoI7SP~3)R(V{yIK;6OocDbeHzMT9)*xov&lj^sGp>8);h$$7<$_Hfyu(m+;kbZ= zn^y@aumL8bXe{=t&ZTv;9Cg5Dief;>2s6E%s2`o31M`_FY!-tpl%Yw zaj;<%uA1~({$at@R9UkJsiR`IUURpc)}=yto+)b&VKc;TD41E$%qBhVeuG zA>RIRp#BqQ%)_&Koac-Sn<UA6js^@hcD-T5mrIB8X5hH0pY+GKB@dFtmML%5+l#`MyiN=!pXB)p&E#!Z6k z4v_4?t`3tcK&g|%nG5}Lb_lg|H=MXd(2b7g$1|i7=O#I4TR2%!(Nw4W@_mp_KD2HG zJJr&iIEXC%el>X*`(zAT_YO|<#liZwxnaLoX{mdtbVOD^b$|TcAG0?a(5i&TeeV zyG9Mf{}c~G&0n*i%dMf!d1)733q$RKudVlr1!qH!d9gehwCOSIkhjdtrcUnHUB zv6C-pp4Fwd1tNbViB$^r(?;%037<(V_`D!3h$f#6`2=hvWC=t*e~f>70m8j--hs1Y zDjc%=_3$~cXx|c%{y$A^JFF%IC;kOJg>OvlnH~ z{Zhs^SqO}HzB9IX;hh}f z7fXjOEpz-%xW=%ClcO=4LQyhs^0gBQVH-LZj;L?*8F=FcRSgK_5XO1Ow(Ad$pcZky zoF$}RY|OVJ_sN;QuL71s>p-Iz-G;Ed(T(u!db+@<&6h{`G8)M7-wUL3#puyTGKx+0 zywiSpDh0f}zUL6U_7L%g%?*N?F1sKfF;>OCb&v(1tH@yjijH$>B9+AH(G2GZCx%hc znQ|}@AXu^=<_&43b%ow0mU6s>{bJRWZ#^S_w#pwFnZpe3!7dX<%gYndMR|H0(C{ge z0CI`u_cQpTqp8o0-1&;rmUla_Yj9Yaow{K}Q)R!|&&00l><{49X+y1~mKgYaU$KgB zV~lw2hS}1uy3=1nY1$kw+V_|_To7`vgYWcf60^pi%R2ve7NF@cIR0O9$~|KRX3x?U z0^9F_gU}x5Ye>Qiwz#4&`^OKb{)%Z z^iOeVFQdPhd;8{7Rf47^P=3vuZ~cW?;1`_9dnY&s?hwRxsH2-o{q*x}G60sp@XmyF zNyRq~(=8$7b9C-n>$Wy^-tPPjchnne>!a=^YTWq;<}3)b+)|mKci@k@VVuM+BV*&# z&g~ziI=7yvdCJvW9R^>qq^aWbIgF7&wHI6L7twXK zCEWModt|lM!b_pZXlh2H!IX=2C&Kqvx1A^Vr}9+Bd>uoy3J*3}Qh|H&IbJ~maUrv# zwZ_z(JDg#)pEk_bx&;mns-b7p%tVZ+eO~_7{*~7o5a23AQ{dxqtEO*hm$q#G8J33d zz45l{{G}EbZ?+@X(=~@s!SH?)qM+T!ok{l3e9I{zTG&3NRS-Tgwfx200410uw=u`D z6VN&+B*%K@lAMXP!J#?Mw`VPQ{?yTgBP`U-2iCF!XlxH*9DqtlV?A~mtwt%bo-s&2 zq_~bTZT-UT2~ANNxLL1v6Z?MbGtE#4sWM2>W8o;&F|05paSZD+wTWOY6z}CJZzF%s zq29vaqujx2?G3{=W9VtY6=NSH*)h3DtQIKM`Ze`cbG$uB?uR@Xvcuz@z@k39z^t?Z&yT zdUf&>M{x79&6Qd5)|qi^Y6G<;HvUvq4odJ zfJ;dZ>phqGhKF&eHqvYI>RTq-D@Au$79e+yB$ju*I>FyPwtvvtCbJim0iJxdxHfki z?*&X1asqqCzw}^O@$((Sfjchees`A><%nbwDCSOM)5usKsEi49*EZL8M&>p@H(da;DK|$R_|}{ZZ_nmzX~FA zR6x^If6oEzHf?B0+TW}2u%jMER9g@cL;C!F{D?Pdd84o0`lOoTk;y`bQqFlGBwh;Z z=E^Pu?3wpghuXDHGyS$h_->B=v%et>piC<%#{y0oj2PkRCe&^?PD=;y(8@`SyFB%} z)-wq|&$!9eh%ebAdz5~1?-9{=hGkDy*}r^<)pSAnK>|;8uCI^$`GJhhvVHDK;kdC@ zgY}uia9f(~Cl|gY;>oIaIL%N6_%cB!91{zU?at^wn4$--dqIMCWrbe6T;L=nt$7de zOw;dI_xMkK#M!eFV1)`p`&w82YQ!N5B%-v~&Li@!mF^4nw$49*&^dJ2an%TluM#(P z_L;NXTDW~1VtG65nKco>nCCeyQtQRvP-chgn8t^=%oL6l%YB#@f_Vcg&Fo|G*ljZ@ zrvVvBYTA``B)Re#L&USb{pT01HDM^3Opl3-oIPIP@r2j#BL-VZ)gf|CCYGS;3_mDX z0#bfc2+PxN=gmIWw08iJ5 z%H`@a{B8xQ{|LQS1t=r| zh$~g+UrGo|R32_rV z{|~f1rF(DN4rJL0Lt}KU>z?C5L9(I}5Ay_~-^twnPD+VqVmBQ0tyPs><1ww1YTwxP z+;ve7iY>$0Y_MU2 zw3O|+&YB0RKvP7bM%(vObT4nGxN(MTR){(TP6yH@xLPQlL(%gvrR9rBtKv5vRPi}! zy@ddY3*T{#!i$gsg;IiPc0?6;=yk)TModI-*EyUrOF5j1!54A(<_HDMjw`U_$R0x& zNOWGECI_P4a!=SJt{~xWJXg1TBZX_4`_x>QN zQ3lw&O)jgTRWs_W1rQT+Ug}U#9TiaZp<+$Ts{>R+MW|PK2e(C2umInwzS0kLz?E0N zK&}pr@2wZSEdH?AMHB(#LubvIt4>IA1MGA@Jo6|K!}?w!_!Gr#n^AsE?a174n^7DY za*0wk^FVveT~?< zeCoN>gUpY7#`KKgk4bjHg${x4k5_luyw$w_^Fjsw+@;}{w@)xz%n=yJ(a+<%J{V zf~gFPOyHJnx3sTakz_4|T}kh`ig2JsZYu{pf4KLzuaxA8S{N4u2A$^~vx-9^Gr5#&!$qsu+yAm_beB)nY>G?*+B`v1QNTf^$SLUoiGN=A_M4$2@S9;P%guwIflxp< zG~HRY;^sCW2e4-(bi%xTYjte8@Srcu-BeFq?AKk=>u z5PIJ3C7Ig^9h1W^JkJY%%e>}7o^tYvYmcXr;T0iEQaf(RWB~Tz_ zS%hUv6{qAG{HSrBO<&+>ND<_S1?3|PQio^03R|jgBR)PhjMb%BYXU?nO}vj(ucew8 zF+yqnpix%6#sY8*BhbKFTT}nrV@cme5xy*Bhmy}NdIFj6(7Crt_d5t$o}u?BI3}rB0+uaO?zO2Xlx+kZ`cCJvWUx{q`GlhR&-gG)JkO4)(2 zfsEU$`)S?$@ueb6&zer+%E#8p4@V>KY+ zPe1mffqqLKKW?Ed5#W3`^j1KB8c%EhKg5-*;YaUAsJq(ND>MrT3g!voh)Xk*KBrvU zu?MtYeB{f&$gM$R>%fU*)^4G>3pXDrDgIPi0?On%Ti=s(DwyW1YA(e|{3Gc2bkO9awL`qCVzR44Q5>kFN&?R(rka5_c^l*lbikpaonI?ha3i8{x1FV z!@QbyXZSSnC#N_hA;1qQ+bszttC@lNF^IQZgnDYCU() zllD1J#$DnI%kWX7ee)a41bO{{kLPQ% zxgz(se2Rt;23B`WGx!mp#b{j7ubb}Ag=h^mOwlU3wRREPcd3jlPVr|hEV{pyCyKGY z*Dh?o)?C4pbVhZ_aLOop2wNNe)hyjOO#W*dYr~Nn-`O(l&JnC#t|_JRe9)X+%4m9jYigcCk$CRfE{X zdTVZI6KT7^*>ez2hT)$=Z1?hX5}L1r6xWSF4vhj>U%ibF(5 z9Im(F=2jMr$esq5QaWeq2lW;Y*LYqb2z8o3D@9kA0?@kJh3Co;iAqN`5?%KcRB%R?$n1H6 zgU2J8fYD~YqI++j0JAKi5@WU`;tsbz>V4Cc&+HMz`vb4{)1xv+Gx%5VYoIR0~o zoL2q1pCN{rsf-F~zOyt4#g>MpZI?<`!Jjnm}fTc?skz4vstr23jHi$i` zLB57Bf<>dXtEZNBNIlhNoGs#5G5D^m80o%_e{clYD>~fefYS5lulE+Y-<#>X*Oq_=w)k!K`42W~DlL(|j`RNbl6B40qnUn+BW znoTJ-rOsw>M&7Aq>JY(%hY#aeyG9av#zI2J=6rD1YOlV&`1!sXXB4r7Zriwst`K~s zTlarZ3-0n6-(Zb z?1W*gOjGct1F|2C9XGZMI|jWQIsw0ZPzxW-LdXIw)tM)d^g+!=qj5ZQ$Ws`bs&(KU z)15c=!=ZSN;HC<3emPK+fTjrc9StY$MuMl(H7S7c(k=3`@pDqbjd}_rQ4%yoZ9+BXrD4CB(&UxlKwpw|&sxL4$x-5KpuHE}dP|WI_-4Uh_A{|Fd8|;YZIQvxM zRfx$@7boaE4wEW1XA9A8dYnF7p`_Y)s2ily@1 z)Z%P#rWW#N0Yk_3>`?Yn^%~%YnYQfn0LBMG$9ejb2I;rBhw0KVJ7|zM5fc_8?Ww{< z2q98BCdY^56ktHlL+MOkyFlQL4taLmWE-#~e-f`xg2Buf76Gn25gKVX?t#Y zk&%zs^M|XI%IVvYqWuPEHe+WdUdfq8R1NNHdkdjy_*s-7-e?x325u^lv*rSD4s*lb zE01LCYZu*ill&NrHuXeF%2&d2e_7Op1(}`W9=|3*qabZSCkcj}2Y6l%7>q>#r{Oa9 z3gOSp3`Kdh=0)q?k&(=3jK}opp>Ex))W)X04ahX0&u$r*ze0lbAC}xQh4gdk+$@Q7 z_p988Pq?`U7jf$WL2DbqgHUFIm5pm~;Frs$w)X5}InXhSxAi0@gtYQaJwW2gFn!kJ z*HMdA9JEKnc^0`-L$|o*O(K{DfXNWJ?Xj+?5-I5+4QZ+84<=ac>~{0j>$I1X!^kCz z9V@s7{K48L{#@BVMYkgip!JpKJi3P~fNeE4{*d0Vl}A!Dap@MrSDx}-h!_-{L+#VE z46g-xoLRo{W7k+w*m~}|PQg6uSHPwW5Ai$kZ18;kBv}bt2F%VT73>pO<~HJr{n?>B z$>-r`h}YKyuge?FL2#G!4#5*FI(mc*(Px1#rdhs7p5VwytT=eUO&i(Badj}cUJmgb z-JTYmXyl`T0E=6;sXqvg#Ov>^n5g}#hAi@Hqfo$Enic0T!Gy(-;xX)j8mba%W;m@& zaO`9Sz;mGaAY6M1$$x>45kvVLZH9(uyTaO7Deqo^dd@xqB=B zhAn_BBc(MFC*we)aC72A?0+wW0O1Z)rehC3Vmpnq zPTXe_kavpOV3D`-r-BI}Znp1G;b(;)2GJh-D+@#)ksLPo5}!F&9_B$;@%uRH_<;pZ z$E4bPh14SHNW94KTY#1na4zn>vC0SIG|4xaHt<4L+>RY;E#9 z5AM73&P=16Cu(?MilM5oQQ0g|bwHH!h_f7o-}lz=>>~oHd>2AuvTg$O031IRiq6noiT~?-u?A zP$mKW=-y>1Wg@lrj{8jLA8}_F!KwNV1QmF4v^XLQ>Q(#UXbOgC#mvw{WRI0f<9VLn z>hc6_mmCs0DU8i)rLLd+TZ@He8q0b4I+d`uAzag!mkjC}+yDmtC9m+x&ej5B(7TfF z%>ftb%C~jX_5KBMkeq+%$G}rX0z4V^=N%mt3tAhV@djfuA4G-=H}5`iA}lEQYq#Gy z!`ENNu*Mf4^6G6m!xEwb#UAm-%A<}|YRh4q#(s1j`h+n>fhQ5ic?K==-DN#XP?ME_ zrXVD%T5v;rI(741V5C$zl}oN=I2%9fQjL2(XfR3(2yt}~q3t}l5wA{U9^sMme4e2$ zSa@=1%>`g=6sI}&YzT?Qtl1W=op5*^g&-vOS*;;6kXpW`t&*;UjV8I&-jW-QsH>cM zpBx2=*U=&{7F=I1iWxNdktED|nL_&G{Bv8&LoUF(m3==3kou=pO%XgpCpb{k1J&gV z&ik37as^X=A;egEtjB1RMcHqAswDm{hquZ71I|P2;T%51oEIptiecWkjA3lI+>ywY15O$N6lF`crZ=t9!a)JV~c7Pv$1Xkzc?vW^0`Dj7;)ZU2MYC z%PjAE;lAkE>YzmGQ+CK zkP0-{I6c_`y-9?wD+7Jz7-+!sb7YCslRA^~^s7)F33=!1NSnTs!hxLN1Nhs`k?URO zJ*q4-j4a{W0W{Am?@iri}mrww1H`-QJE!6mf z0+tUd&$R^qg%w4Gp1`H7ip3P-Kr8t@09E0&jrSBegk0ML3* z-HH=4K99N`@V48^?--Ba&86n0X*&F|Xm|mUn``ThfF3uDi}X{LuqZJ4isf61&p*q2 z1J^SZv!2}j3B*C@h|OnUc7k5RKqU$7Gyq^6UiRIn22&re_;%iWTPcaOb_DOkT`uPw zfn(!Hiy;A*;ft{(>lFv@nUVX~7(bFzy6m%~RG<;>n2Fo6{4Q{^>Nd*fMTInA>fO$A z%ZB#bb3={nc^;zrdv4N89DG-78NH7e{-6+)mk_-v+X0>f%@08F?SjJEqOQn}QMZ{` zvO@_`g!)+-h`W-aU#1%=lXC=@5?SmqZpqeJb#OK=4JAMMGk>XGxX`x}Kk-;StI@HC zH~i{ZbEp@^d2Z3xois6|y4dc`jTNSdQq69#z}$>&DR@X~PH~xgKdx)MfqLvM zlf095I1ZqbWy=>qsbQLID!ay64-g8gT5wrY&QR#rQ@|`sW!9+Q6;TQWI7DgZE_`o7 zM83Ze^~He_SG=a4ejH5q#y2UYwE*m~p(ckq_deWQtT?#Eu>;!1)}%86ysZQKqnmLC~shExdNTnR`DaD1T!Nq!Ar1#ZXQt#WK=n8a6}0>Q+_z(9SRn?u0gVTu6G zXQugT6;+ZH7$5^uexiLQ6zI2Bw|5HU;Ie|x`nhE@CV%pViE40cspoA3FHIsg=J)Vn z_d_(*ht11dPLj8xPPZd^4!~fFYz@%wzI7m7U2yEpFN>>v*TC%S5GS#inovnEkjM}w z8vPM^)34y8JaGjc77d>DL)A!*nwDkOIGYl;jI=iX?SJC#6@t}}q}yA2RJHlv?y3K0 z+7)IGvX9{5fc%yjc_flu;hXdSc#ml#>5d33{3liM#XA!v@8wh6!ILEZ1MWx_n|!#l~+XzIej@ou=xs#FP{xuy#Nr>p;-El=+wctEh)f6wSRJXnL7tvh-#m zz$2?3!H~cTGT?EDaNIsLwS@i8_^khnA4m`W?}k7?ssY@yl;!LLy`H=;z|&)p(%L4w*!xXrCO5S<f|AFVswjfNbD3c@H%tL+^4eM7dXLNjV&a+? zt33t&59e#!pZz=dSeqVz5uKx!kx9&pjS(57ZyYd4=mSO3{Qw0#O4CVu(Cmf(GAVmL zhK8HX{G;yhK;1bL68}n!*gd5sF;+s5Z-N$S{Y_Ztz^DNTBXD1}l;YEqPXm!RX_`|T zes2PLydz1T@wdp+03we^?QCA~&Qzzz65e!< zO4E8W%q`-OyI0&waODtnn%dlMwJ86 z5&&x|v}De|a*;w6i7UBCrLAQvxk#a`w%61b+ev5Qup{_zOrnPjyrTB(T6hVP)vgg> za$wTT2@@t_eT8<69D%P4nz<(Bh?9!g1a1y+w?HE;fp}u?6^1wN{!f#)hK_&dM>IzV z*78~hnriZ&!Xw##g-0g-9UiH#B(K*d10S^x!avUZ#CJ1Q@nwh0QFB>v%9QrE#nth% z>9{gZS`(EV32z+5PJ$Ny24p8q5BwV<`Th-&QI3BgGDbd6h4|kpy;8Qu5cIU%a|rvP zpkhFvs}cJGL`M7ndr*0PT~XKD|6QmIC5v-gSjoAJeo<EFjgM?79}=vEQ%%3y4)f11KYM9;# z|46C;2{=FO{ojdRc8%$Kh3Pl5%Q7w)MEwz!&`{d&U%^Z21>yfzQVM0QIHSCl_I>ET zpl<-}9S?mA0Q$ZfA%QNj0+w>4ng6}CWnd*(KtO)<3m?@77RCbG=IVcPM^Au~#+GrM zuN7^4!E2v#?f*>robxJIq-B!=j69Ef#e3PIKlA?pjQPoHZ~&O|s9cx2&`KPZTUfni z^pc6J=(t(@;g6jwiIO#01X%}O{1S}~;{BLhk%7B7hfZ9!Tn%p^eL62eYKqg6V~Z)6 zH&?>kg~s$g(qxaoJBGlb%g$K%5TU^41e*M=B@xKc_6SrKXSJ=ADKF|@i$VbPguF2# zD{;(8hDUrY!-inhbZv@Vi&rfn&7rZCNQIax!B&)PNx+W*xQbp9 z`hjCMr<|%@C{8s>wY0TO2@JbQZ?fl%8(_bYxW6yrw|V=@=--c9ogWp0C;CDaHa<|{ z@hEPz6MDRX#P{MnDf8}DGJWf1) zc>CV>Qg~>x6I%Fy)pfP^Q5g5y{u-{pXtvL)Sp=gHoy=iul^As<^3~!gLwy;el~p`^ zh?2ZkIqCOc;8+P*_6&$3^WvX3Pd@?^yjc8xC;tqu)Adl&M0;7^TvD{LbNK?*vvK=! zKyD{Y^*0ZQGDhlO4kn|_k0LFH??kwhOi4^DPHzGA&01QQ_rSBvxuQmRKFy(kZ|CL8*tAcgzASSUYPGV`mY(6O-z=>WUUt9WAb5txWvF zEp~Ute!e3Ovr9a;T+a{hwJ!k=PB*X4Q~CC4YW0S1WXkLw#4UlFi!C8rZm(L^FHlN$ z>V3WS@K*A>ZrzvQ0+5|HQs!F(SE+(nl3!>WA%3S2svzz~qSy5YDqlXHykJi3tPBaI zJFeRI1F^2w^E~2wj@W+3!NEa1m*4jn+oTN}bmnTUxDIctb1$s{R`Xjz!n-`CDg(`| zMGu4Hfi>47KHz+sx}Fo|rtp~VmS^y0sb*p`|15ZHyU-?w?SSFlIzZ>+ExDj{=IJTd zk}-Rk)=)p2%XQvcATDSB4&LjUm8^}@walz?sA#&idX$3N!3zLhz1zBc3=u+M;*D$wZ* zxJK(2wiaUNHyTLx*AbT4^{iCK+OC=9VrNor>H_*~!v2~ypK?{7fVkQL6n`!Sq!U1W zye6i%mtM$IOCVp3_%=DUKzQ8+`Qk+$I4LlJK~=*uOYH+Af|ppHIC z3ZJ1+6Vb=L)7Kj0Fmj`eRW&a;aK^5Q4oxld4#*(ybhppFQ@IqX8MOO@8_TQ?NYo(v zusvPPI)zdB9Zc6AQ?8Wrq6#@hAkMsUL4c^yT#l(3;`m*sx*aw#oo8Qr^kxI4$pIc#C2w2YT#Lh?Z*;(l5Da z6boPSFbZx;VHBKECF|jhHNdKoNR}p=Dnj8I1uFsDyL5SV_@Pv(+dK9J&TW+D8p)S~ zXoL1LtoQs!K7^j0o?59AtrA0g&if1Qce8G?gt~k(DX`>f89L>v1X34DKQr<9X$mKi za_`#^)xC4lw8Lo-{1w!G+PnvU4ro(Fj5}U2yo#YJw)j*XM&Jf0Vj}t;dRfFp%>{38)i)6i-=zr z51gSt6ob38tOvU?xk4x5{(}gXWgGH6cB3~Wx;P*veIzD&KD`p|jVqZSx?%GRG|qgV zhMmEv(h>rPeSIKEeKu?>YVE?Xv+}W5LxN$sl8FP!GO@Kk?3Fvh-DZoj}bs{ zdMi);N1m!}Ru!;HL_Nk55G{~>Z;x<3$Susv_6G~qY{<(>?adcAaaA!El_0EH#dBz* zB=#Ua&BO-PIZv;4v6q)tMOaRTW7oOXm`GrC(Ro)nFnbQ8$MCZhipLQ96$NH~sdWyJ z7Q8dNf>Ap!3&>Q9UD(c5l?(=TH4UxX^Aw(nbLpc(Jf!S2+-t}V|EA*W8#bpR3tS9c zcG#JHi{}iD&qDw2R?o;~6p4H;enFUgT0o@JUB_DMV9>^oA_d{wa|A@E&m_|CHp!ML zV#|IstXhEzrMJ)U)n_b}(AZbUCRf{au7b`Q6JKL!?QxMQoGd&6hKg~nm-eKXq!ThL zLxTK6B(T6mq~>k@*}eArOOgS0nLS$A9(OjDpsLS0a3)OCo3}8AHx1`oe*}cNr|YU~ znuKZM^DdMQ^@zTQ8{A`HU=Jd=3vvO7lq>B{bH~7$GXH#MmrZX#C|utP3+XTgV~gg# zeP&>xbhY{+&9TtLx!PQdNma1e=W6sJz^3FLF5H7kJWa zo6RRy>|%QX#hO;hgtjA~=qW*b?le!BHF71KEqe&yQUy@V>X#=29yt&V4p-e$P|caw*->H{WaT zsU>lp=T$5gU@f+QJSW$tNt{>YYK#IlC?*({$$@E4ZQdqu_6^`f z$nV^0^7v+lu|1D&yhXRKe|K~@)|-$CVZ&p3r}d|U2RxA1wBD(+eY+6#Bs=+ST%YgU z2)O0yZ31R>znS;u6FdBunrJ>ztSH}J*&ht=VOp*3RTiy=5M=aLG&G(Dm~Igms`SNk zC3a(r2@aI6^kCW`hWoir^1+Sb_-=9+WkitU(zx>l)ueH1C!GW@ z(K^1N#Km()zZ@Mb@YgYB`3*~!H;~%)$Q`5{=f)CJ7s0e)YtqGxv{K6b@xxh+&DE0q z`owm~w`(mlUWIL11|QHlOA%&83}{$4XxPQtcGob_H6g8RzIsmaIp&WYFpoE+GLvO` zuYMmUfx14r;02+6WZI{X4cUY`H=wtx+yCB~;l1Ow9DYG7Q63~OI=&9?wLN1bC(g@K z?7(w#&w-nWCI1rWBhBiz?8ZhD>U`m08~CG}`vySr$qfPGy85%M%*j13l~&bx-d z{$*qr{EXnm^FU}_X5IY^ueZFxPuLCQrhTa}ax`VrWd+?w Date: Wed, 16 Oct 2024 20:02:32 +0000 Subject: [PATCH 082/103] Automatic changelog for PR #87167 [ci skip] --- html/changelogs/AutoChangeLog-pr-87167.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87167.yml diff --git a/html/changelogs/AutoChangeLog-pr-87167.yml b/html/changelogs/AutoChangeLog-pr-87167.yml new file mode 100644 index 00000000000..24a662bb58d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87167.yml @@ -0,0 +1,13 @@ +author: "EnterTheJake" +delete-after: True +changes: + - balance: "Sundered Blades now require 1 Titanium or Silver bar to craft and their capacity has been reduced to 4." + - balance: "Realignment pulls you out of stuns a bit faster and grants baton resist while active." + - balance: "Blade Heretic dual wielding now let's you infuse Your Dark Blades with a weaker mansus grasp and grants an increase in demolition modifier." + - bugfix: "Malestrom of Silver grants the ring of protective blades once again." + - balance: "Mawed Crucible requires 3 organs to brew one potion, passively refills overtime and can be used to refill the Eldritch Flask" + - balance: "Brew of Crucible soul effect bumped to 40 seconds and can be ended early." + - balance: "Brew Of Dusk and Dawn effect bumped to 3 minutes." + - balance: "Brew of the wounded soldier now offers a very minor passive heal and fully heals your wounds and limbs upon expiring." + - balance: "Cursed Curio shield now recharges faster." + - balance: "Lionhunter's rifle has been reworked, it now fits on the eldritch robes vest slots, it's cheaper to craft it and its ammunition and works as an initiation tool." \ No newline at end of file From 2170cb7b0424fd2a93f2011d7f92e800038a33ce Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Thu, 17 Oct 2024 02:45:57 +0200 Subject: [PATCH 083/103] Mixed bag of fishing adjustments. (#87201) ## About The Pull Request This more or less ties with my previous PR where I fix some of the issues I've seen with fishing, because both are the result of some live playtesting in which I assessed some flaws and nits. So, let's get started: Lowered the number of fish to scan for each fish scanning experiment: This is the most time-gating feature of fishing. As a scientist you're usually better off doing anything else than this anyway, which is understandable, but for whoever else that plans to get some nice ocean fish, this is going to be a huge bummer. From 4, 8, 14, 21 to 3, 7, 11, 17. Switched the ocean and chasm portal setting: Right now, the ocean portal has the largest amount of catchable creatures, which can also help progress the experiments, while the chasm setting only has two and is only mildly useful for chasm chrabs --> lobstrosities (which suffer a bit from not having a good enough AI right now). I hope I'll have the time to add some late fishes to the chasm setting at some point. Added a premapped fishing portal generator to the common service room of every map: It takes quite some time to setup fishing. Making a fishing portal is by far what I consider to be the most tedious part. Also Wawa and Birdshot were also missing the aquarium kit. On a side-note I realized some days ago that service jobs receive very good discounts on the fishing items sold by the good clean vendor. Added the fish puns speech modifier to fish-infused gills: I forgot to do it when I made the PR. Shrimple as that. Mild fish infusion tweaks: Lowered the crawling speed very sightly, but buffed showers and water healing slightly. Drinking water now wets you by about 1/4 of what splashing it would do. Buffed fishing difficulty modifiers for items and chairs a little: For the time and credits invested, buying a carp costume or whatever to be slightly better at fishing doesn't seem that profitable, and I reckon I was being a bit conservative with the values. Fishing is a considerable time investment already, especially in the initial stage with the setup. Also idk why sunglasses and thermals buff fishing while fish are technically cold-blooded creatures so I removed the comp from them. Added fishing rods and fish cases designs to cargo and science lathes: Other base fishing designs are shared between the three departments, while these two are only available for service (and autolathes obviously). Fishing skill now affects completion gain and not only completion loss: Fishing as a feature has a slower pace than most things in the game. It feels right that by the time you reach about legendary level, you get to complete the minigame a bit faster. ## Why It's Good For The Game To put it briefly, the feature feels right as a casual experience, however time is very much against you and getting something done takes some effort (especially on tram, where moving to and fro' departments is almost like playing froggers at times) ## Changelog :cl: map: Added a premapped fishing portal generator to every map. balance: Lowered the requirements for fish scanning experiment. Swapped the rewards of the second and third experiments. balance: Buffed fishing difficulty modifiers for several items and chairs. balance: Fishing skill now affects completion speed of the minigame more actively. balance: Mild fish infusion tweaks. Crawling is a smidge slower, but healing from showers and drank water is a bit better. qol: Fishing rods and fish cases can now be printed by cargo and science lathes. add: Gills now give the fish puns speech modifier. /:cl: --- _maps/map_files/Birdshot/birdshot.dmm | 9490 ++++++++--------- .../map_files/Deltastation/DeltaStation2.dmm | 1 + .../map_files/IceBoxStation/IceBoxStation.dmm | 9 +- _maps/map_files/MetaStation/MetaStation.dmm | 4 +- _maps/map_files/NorthStar/north_star.dmm | 1 + _maps/map_files/tramstation/tramstation.dmm | 1 + _maps/map_files/wawastation/wawastation.dmm | 89 +- code/datums/status_effects/neutral.dm | 13 +- .../dna_infuser/organ_sets/fish_organs.dm | 1 + .../objects/structures/beds_chairs/chair.dm | 23 +- .../objects/structures/beds_chairs/sofa.dm | 2 +- code/modules/clothing/ears/_ears.dm | 2 +- code/modules/clothing/glasses/_glasses.dm | 5 - code/modules/clothing/gloves/botany.dm | 2 +- code/modules/clothing/gloves/color.dm | 2 +- code/modules/clothing/gloves/combat.dm | 4 +- code/modules/clothing/gloves/insulated.dm | 4 +- code/modules/clothing/gloves/punch_mitts.dm | 2 +- code/modules/clothing/gloves/special.dm | 10 +- code/modules/clothing/gloves/tacklers.dm | 8 +- code/modules/clothing/head/collectable.dm | 4 +- code/modules/clothing/head/fedora.dm | 2 +- code/modules/clothing/head/jobs.dm | 4 +- code/modules/clothing/head/moth.dm | 2 +- code/modules/clothing/head/pirate.dm | 2 +- code/modules/clothing/head/soft_caps.dm | 2 +- code/modules/clothing/masks/animal_masks.dm | 18 +- code/modules/clothing/masks/boxing.dm | 2 +- code/modules/clothing/masks/gasmask.dm | 8 +- code/modules/clothing/neck/_neck.dm | 2 +- code/modules/clothing/shoes/boots.dm | 4 +- code/modules/clothing/shoes/costume.dm | 2 +- code/modules/clothing/suits/costume.dm | 14 +- code/modules/clothing/suits/ethereal.dm | 6 +- code/modules/clothing/suits/jobs.dm | 4 +- code/modules/clothing/suits/labcoat.dm | 4 +- code/modules/clothing/suits/moth.dm | 2 +- code/modules/clothing/suits/wiz_robe.dm | 18 +- .../clothing/under/jobs/civilian/curator.dm | 2 +- code/modules/clothing/under/jobs/medical.dm | 4 +- code/modules/clothing/under/miscellaneous.dm | 2 +- code/modules/clothing/under/suits.dm | 2 +- code/modules/clothing/under/syndicate.dm | 6 +- .../experiment/types/scanning_fish.dm | 18 +- code/modules/fishing/fish_catalog.dm | 2 +- code/modules/fishing/fishing_equipment.dm | 9 +- code/modules/fishing/fishing_minigame.dm | 2 + code/modules/movespeed/modifiers/mobs.dm | 9 - .../movespeed/modifiers/status_effects.dm | 9 + .../chemistry/reagents/other_reagents.dm | 8 +- .../designs/autolathe/service_designs.dm | 4 +- 51 files changed, 4931 insertions(+), 4919 deletions(-) diff --git a/_maps/map_files/Birdshot/birdshot.dmm b/_maps/map_files/Birdshot/birdshot.dmm index b6a8e3417f1..eb9aed98932 100644 --- a/_maps/map_files/Birdshot/birdshot.dmm +++ b/_maps/map_files/Birdshot/birdshot.dmm @@ -65,12 +65,19 @@ /obj/machinery/power/tracker, /turf/open/space/basic, /area/station/solars/aft) -"abw" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 +"abv" = ( +/obj/structure/table, +/obj/item/paper/crumpled{ + pixel_x = -27; + pixel_y = 2 }, +/obj/item/storage/medkit/regular{ + pixel_x = -5; + pixel_y = 6 + }, +/obj/effect/landmark/event_spawn, /turf/open/floor/iron, -/area/station/cargo/lobby) +/area/station/cargo/sorting) "abB" = ( /obj/structure/disposalpipe/segment, /turf/closed/wall/r_wall, @@ -152,20 +159,6 @@ }, /turf/open/floor/grass/Airless, /area/station/hallway/primary/central/aft) -"ael" = ( -/obj/machinery/door/airlock/public/glass/incinerator/atmos_interior, -/obj/effect/mapping_helpers/airlock/locked, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, -/obj/machinery/airlock_controller/incinerator_atmos{ - pixel_x = -40; - pixel_y = -8 - }, -/turf/open/floor/engine, -/area/station/maintenance/disposal/incinerator) "aem" = ( /obj/machinery/power/terminal, /obj/structure/cable, @@ -205,21 +198,6 @@ }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"aeH" = ( -/obj/machinery/atmospherics/components/trinary/filter/flipped/layer2{ - dir = 4 - }, -/obj/machinery/light/small/directional/north, -/obj/machinery/button/door/incinerator_vent_atmos_aux{ - pixel_x = 8; - pixel_y = 24 - }, -/obj/machinery/button/door/incinerator_vent_atmos_main{ - pixel_x = 8; - pixel_y = 36 - }, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) "aeX" = ( /obj/structure/window/spawner/directional/east, /obj/item/kirbyplants/random, @@ -396,6 +374,17 @@ /obj/effect/turf_decal/siding/yellow, /turf/open/floor/wood/tile, /area/station/command/bridge) +"ahI" = ( +/obj/structure/table, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/item/folder/yellow{ + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/iron, +/area/station/cargo/sorting) "ahW" = ( /obj/structure/railing{ dir = 1 @@ -432,18 +421,6 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron, /area/station/engineering/atmos) -"akk" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/loading_area, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) -"akl" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/red/corner, -/turf/open/floor/iron, -/area/station/cargo/storage) "ako" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -510,15 +487,6 @@ /obj/structure/cable, /turf/open/floor/iron/small, /area/station/maintenance/solars/starboard/aft) -"alN" = ( -/obj/item/radio/intercom/directional/south, -/obj/effect/turf_decal/siding/wood, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron/grimy, -/area/station/service/library/private) "amb" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 4 @@ -540,6 +508,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"amq" = ( +/obj/effect/turf_decal/bot_white, +/obj/effect/spawner/random/maintenance, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/cargo/storage) "amE" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -564,6 +539,15 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/freezer, /area/station/service/kitchen/coldroom) +"amX" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/item/radio/intercom/directional/south, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "anb" = ( /obj/effect/turf_decal/siding/thinplating_new/terracotta, /obj/effect/turf_decal/siding/red/corner{ @@ -574,6 +558,14 @@ }, /turf/open/floor/wood/tile, /area/station/command/bridge) +"and" = ( +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/supply, +/obj/machinery/door/airlock/mining{ + name = "Mining Office" + }, +/turf/open/floor/plating, +/area/station/cargo/miningfoundry) "ani" = ( /obj/effect/turf_decal/weather/dirt{ dir = 1 @@ -623,6 +615,10 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) +"api" = ( +/obj/machinery/skill_station, +/turf/open/floor/wood/parquet, +/area/station/service/library) "apk" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/dark_red{ @@ -666,6 +662,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, /area/station/science/lab) +"apP" = ( +/obj/effect/spawner/random/trash, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "apZ" = ( /turf/open/floor/engine/helium, /area/station/ai_monitored/turret_protected/ai) @@ -737,16 +738,6 @@ }, /turf/open/floor/iron, /area/station/commons/dorms) -"arI" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/cargo/storage) "arK" = ( /obj/structure/sign/warning/secure_area{ desc = "A warning sign which reads 'BOMB RANGE"; @@ -966,16 +957,6 @@ /obj/machinery/power/apc/auto_name/directional/west, /turf/open/floor/iron/smooth, /area/station/command/gateway) -"avc" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/chair/stool/directional/east, -/obj/effect/mapping_helpers/broken_floor, -/obj/machinery/newscaster/directional/west, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/wood, -/area/station/maintenance/hallway/abandoned_recreation) "avd" = ( /obj/machinery/atmospherics/components/binary/volume_pump{ dir = 8 @@ -1173,6 +1154,15 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) +"axP" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/turf_decal/tile/brown/anticorner{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/lobby) "axX" = ( /obj/effect/turf_decal/siding/yellow, /obj/effect/turf_decal/tile/yellow/diagonal_centre, @@ -1249,14 +1239,6 @@ }, /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) -"azk" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/cargo/warehouse) "azm" = ( /obj/effect/turf_decal/siding/wood{ dir = 10 @@ -1288,6 +1270,21 @@ }, /turf/open/floor/plating, /area/station/command/teleporter) +"azx" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "azz" = ( /turf/open/floor/iron, /area/station/security/prison/workout) @@ -1402,15 +1399,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"aBk" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "aBo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -1421,6 +1409,14 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"aBt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "aBu" = ( /obj/effect/turf_decal/siding/wood{ dir = 5 @@ -1462,6 +1458,18 @@ }, /turf/open/floor/carpet/blue, /area/station/commons/dorms) +"aBQ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "aBV" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral{ @@ -1607,11 +1615,6 @@ /obj/effect/spawner/random/engineering/tracking_beacon, /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) -"aFp" = ( -/obj/effect/spawner/random/trash, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "aFt" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -1704,23 +1707,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/central/lesser) -"aGI" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/cell_charger{ - pixel_x = -1; - pixel_y = 4 - }, -/obj/item/stock_parts/power_store/cell/high{ - pixel_x = -1; - pixel_y = 4 - }, -/obj/item/assembly/timer{ - pixel_x = 14; - pixel_y = 6 - }, -/turf/open/floor/iron/dark, -/area/station/commons/storage/tools) "aGU" = ( /obj/machinery/light/small/directional/west, /turf/open/floor/iron, @@ -1825,15 +1811,10 @@ "aJq" = ( /turf/closed/mineral/random/stationside, /area/space/nearstation) -"aJx" = ( -/obj/structure/chair/stool/directional/south, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +"aJD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/siding/wood{ - dir = 5 - }, -/turf/open/floor/carpet/orange, -/area/station/command/heads_quarters/qm) +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "aJE" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/siding/wood{ @@ -1841,16 +1822,6 @@ }, /turf/open/floor/iron/small, /area/station/maintenance/port/lesser) -"aJI" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/obj/item/storage/fancy/candle_box, -/obj/structure/rack/skeletal, -/obj/machinery/camera/autoname/directional/west, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/iron/grimy, -/area/station/service/library/private) "aJP" = ( /obj/structure/disposalpipe/segment{ dir = 8 @@ -2012,6 +1983,18 @@ /obj/machinery/atmospherics/pipe/layer_manifold/supply/visible, /turf/open/floor/plating, /area/station/science/ordnance/testlab) +"aMI" = ( +/obj/machinery/mineral/ore_redemption{ + dir = 4; + input_dir = 8; + output_dir = 4 + }, +/obj/machinery/door/window/right/directional/east{ + name = "Ore Redemtion Window" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/textured_large, +/area/station/cargo/office) "aNd" = ( /turf/open/floor/engine, /area/station/engineering/supermatter/room) @@ -2037,6 +2020,14 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron/dark/small, /area/station/medical/storage) +"aNE" = ( +/obj/machinery/computer/cargo{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_half{ + dir = 1 + }, +/area/station/cargo/storage) "aNJ" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/left/directional/north{ @@ -2350,16 +2341,6 @@ "aTg" = ( /turf/open/floor/iron/kitchen/small, /area/station/service/kitchen) -"aTm" = ( -/obj/machinery/conveyor_switch/oneway{ - id = "QMLoad2"; - name = "Unloading Conveyor"; - pixel_x = -13; - pixel_y = 3 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/iron, -/area/station/cargo/storage) "aTn" = ( /obj/effect/spawner/random/structure/crate, /obj/effect/spawner/random/maintenance, @@ -2564,11 +2545,6 @@ }, /turf/open/floor/iron/small, /area/station/engineering/break_room) -"aXy" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/sign/poster/official/no_erp/directional/south, -/turf/open/floor/wood, -/area/station/maintenance/hallway/abandoned_recreation) "aXC" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -2593,12 +2569,6 @@ }, /turf/open/floor/stone, /area/station/service/bar/backroom) -"aYl" = ( -/obj/structure/filingcabinet/filingcabinet, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/maintenance/hallway/abandoned_recreation) "aYp" = ( /obj/structure/chair, /obj/effect/turf_decal/stripes/line{ @@ -2753,27 +2723,6 @@ /obj/effect/spawner/structure/window/reinforced/plasma, /turf/open/floor/plating, /area/station/engineering/supermatter) -"bbI" = ( -/obj/structure/table/wood, -/obj/item/folder{ - pixel_x = 1; - pixel_y = 4 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/obj/item/pen{ - pixel_x = -2; - pixel_y = 4 - }, -/obj/structure/sign/poster/official/tactical_game_cards/directional/north, -/turf/open/floor/carpet, -/area/station/maintenance/hallway/abandoned_recreation) -"bbR" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/camera/autoname/directional/south, -/turf/open/floor/iron, -/area/station/cargo/miningfoundry) "bbT" = ( /obj/structure/chair/sofa/bench/left{ dir = 8 @@ -2787,6 +2736,15 @@ }, /turf/open/floor/iron, /area/station/maintenance/port/aft) +"bbV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/cargo/storage) "bcr" = ( /obj/effect/turf_decal/stripes/end, /turf/open/floor/plating/airless, @@ -2823,17 +2781,12 @@ dir = 4 }, /area/station/science/xenobiology) -"bdx" = ( -/obj/machinery/door/airlock/wood{ - desc = "Sessions held every Friday."; - name = "The Sunfinder Society" - }, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +"bdi" = ( /obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) +/obj/effect/turf_decal/siding/wood, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/smooth, +/area/station/command/heads_quarters/qm) "bdN" = ( /obj/structure/falsewall, /turf/open/floor/plating, @@ -2888,19 +2841,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) -"beR" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=8"; - location = "QM #2" - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/storage) "bfe" = ( /obj/structure/disposalpipe/segment, /obj/machinery/camera/autoname/directional/west, @@ -2914,6 +2854,14 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/herringbone, /area/station/service/abandoned_gambling_den/gaming) +"bfS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/junction/flip{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "bfU" = ( /obj/machinery/atmospherics/components/binary/pump/on{ name = "Air to Distro staging" @@ -2931,6 +2879,23 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron/white/small, /area/station/science/server) +"bgl" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/structure/table/glass, +/obj/item/flashlight/lamp/green{ + pixel_x = 2; + pixel_y = 9 + }, +/obj/item/taperecorder{ + pixel_x = -15; + pixel_y = 3 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/light_switch/directional/north, +/turf/open/floor/iron/grimy, +/area/station/service/library/private) "bgn" = ( /obj/machinery/door/airlock/maintenance{ name = "Atmospherics Maintenance" @@ -3000,10 +2965,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/tcommsat/server) -"bgW" = ( -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/cargo/miningfoundry) "bho" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 4 @@ -3044,6 +3005,11 @@ /obj/machinery/holopad, /turf/open/floor/iron/white/small, /area/station/science/lobby) +"biV" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron, +/area/station/cargo/miningfoundry) "bja" = ( /obj/structure/railing/corner/end/flip{ dir = 8 @@ -3069,6 +3035,19 @@ }, /turf/open/floor/iron/white/side, /area/station/hallway/primary/central/aft) +"bjf" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/table, +/obj/effect/turf_decal/delivery/white, +/obj/machinery/microwave{ + pixel_y = 6 + }, +/obj/machinery/camera/autoname/directional/south, +/obj/structure/sign/poster/official/random/directional/south, +/turf/open/floor/iron/smooth, +/area/station/cargo/sorting) "bjh" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/west, @@ -3087,6 +3066,9 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"bjt" = ( +/turf/open/floor/engine/vacuum, +/area/station/engineering/atmos) "bjL" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/table, @@ -3257,6 +3239,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/stairs, /area/station/maintenance/department/engine/atmos) +"bmO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/delivery/white, +/turf/closed/wall, +/area/station/maintenance/port/fore) "bmT" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 4 @@ -3387,6 +3379,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor, /area/station/engineering/break_room) +"boG" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light/warm/directional/north, +/turf/open/floor/iron, +/area/station/cargo/storage) "boI" = ( /obj/machinery/mecha_part_fabricator/maint{ name = "forgotten exosuit fabricator" @@ -3422,14 +3425,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"bpd" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/turf/open/floor/iron/dark/side{ - dir = 4 - }, -/area/station/cargo/storage) "bpe" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment, @@ -3540,6 +3535,18 @@ name = "Holodeck Projector Floor" }, /area/station/holodeck/rec_center) +"bqA" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/flora/bush/flowers_yw, +/obj/structure/flora/bush/large/style_random{ + pixel_x = -20; + pixel_y = 3 + }, +/turf/open/floor/grass, +/area/station/service/chapel) "bqD" = ( /mob/living/basic/slime, /turf/open/floor/engine, @@ -3617,6 +3624,14 @@ /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, /turf/closed/wall/r_wall, /area/station/engineering/atmos) +"brO" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "brZ" = ( /obj/machinery/door/airlock{ name = "Maintenance" @@ -3626,6 +3641,16 @@ /obj/structure/barricade/wooden/crude, /turf/open/floor/plating, /area/station/maintenance/aft) +"bst" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) "bsu" = ( /obj/structure/barricade/wooden/crude, /obj/effect/mapping_helpers/broken_floor, @@ -3769,16 +3794,6 @@ /obj/machinery/bluespace_vendor/directional/south, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) -"buP" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/turf/open/floor/carpet/red, -/area/station/command/heads_quarters/qm) "buU" = ( /obj/structure/table, /obj/item/stack/sheet/iron/five, @@ -3834,6 +3849,18 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) +"bwW" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/siding/yellow{ + dir = 4 + }, +/obj/effect/spawner/random/food_or_drink/donkpockets{ + pixel_y = 6 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/engineering/break_room) "bxa" = ( /obj/structure/chair/sofa/bench/right{ dir = 4 @@ -3962,16 +3989,6 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron/small, /area/station/hallway/secondary/service) -"bzx" = ( -/obj/structure/reagent_dispensers/wall/peppertank/directional/west, -/obj/machinery/computer/records/security{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red/half/contrasted{ - dir = 8 - }, -/turf/open/floor/iron/smooth, -/area/station/security/checkpoint/supply) "bzF" = ( /obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -3981,6 +3998,13 @@ }, /turf/open/floor/wood, /area/station/engineering/atmos/pumproom) +"bzW" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "bzZ" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, @@ -4004,10 +4028,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) -"bAw" = ( -/obj/machinery/light/small/directional/south, -/turf/open/floor/stone, -/area/station/service/chapel) "bAI" = ( /obj/structure/chair/office, /obj/structure/sign/poster/official/work_for_a_future/directional/east, @@ -4021,13 +4041,6 @@ }, /turf/open/floor/wood, /area/station/hallway/secondary/entry) -"bBb" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/landmark/start/cargo_technician, -/turf/open/floor/iron, -/area/station/cargo/storage) "bBh" = ( /obj/effect/turf_decal/weather/dirt{ dir = 1 @@ -4119,14 +4132,6 @@ /obj/structure/cable, /turf/open/floor/iron/small, /area/station/security/office) -"bCM" = ( -/obj/machinery/holopad, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/structure/chair/stool/directional/south, -/turf/open/floor/iron, -/area/station/cargo/sorting) "bCP" = ( /obj/effect/turf_decal/siding/wideplating/dark, /obj/machinery/firealarm/directional/north, @@ -4158,6 +4163,16 @@ /obj/structure/cable, /turf/open/floor/iron/diagonal, /area/station/engineering/lobby) +"bDi" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "O2 to Airmix" + }, +/obj/machinery/light/no_nightlight/directional/north, +/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "bDj" = ( /obj/effect/landmark/start/medical_doctor, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -4213,6 +4228,10 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"bEv" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "bEw" = ( /obj/structure/sign/directions/supply{ dir = 1; @@ -4278,10 +4297,6 @@ /obj/machinery/telecomms/server/presets/science, /turf/open/floor/circuit, /area/station/tcommsat/server) -"bFI" = ( -/obj/effect/spawner/random/trash, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "bFO" = ( /obj/effect/spawner/random/trash, /obj/structure/cable, @@ -4299,14 +4314,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"bFU" = ( -/obj/structure/hedge, -/obj/structure/sign/poster/contraband/random/directional/east, -/obj/effect/turf_decal/siding/wood{ - dir = 6 - }, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) "bFW" = ( /obj/structure/rack, /obj/effect/spawner/random/techstorage/rnd_all, @@ -4359,20 +4366,6 @@ /obj/machinery/status_display/ai/directional/north, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat_interior) -"bGv" = ( -/obj/machinery/door/airlock/mining/glass{ - name = "Cargo Office" - }, -/obj/effect/mapping_helpers/airlock/access/all/supply/general, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron/small, -/area/station/cargo/office) "bGD" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/red/line{ @@ -4430,6 +4423,12 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) +"bHw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "bHy" = ( /obj/structure/chair/office/light, /obj/effect/landmark/start/scientist, @@ -4457,6 +4456,11 @@ /obj/structure/window/spawner/directional/south, /turf/open/misc/sandy_dirt, /area/station/science/research) +"bIu" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "bIJ" = ( /obj/effect/turf_decal/weather/dirt{ dir = 4 @@ -4491,27 +4495,6 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood, /area/station/service/chapel) -"bJH" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock/engineering{ - name = "Engineering Office" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "atmos_airlock_1" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/turf/open/floor/iron, -/area/station/engineering/atmos/office) "bJK" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -4595,10 +4578,14 @@ /obj/machinery/light/no_nightlight/directional/north, /turf/open/floor/iron, /area/station/engineering/atmos) -"bLr" = ( -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/cargo/warehouse) +"bLG" = ( +/obj/effect/spawner/structure/window, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/cargo/office) "bLS" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -4799,14 +4786,6 @@ /obj/machinery/computer/records/security, /turf/open/floor/wood/tile, /area/station/command/bridge) -"bQo" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/status_display/evac/directional/east, -/obj/machinery/camera/autoname/directional/east, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "bQy" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -4862,6 +4841,9 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs/auxiliary) +"bRA" = ( +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/cargo/lobby) "bRK" = ( /obj/effect/turf_decal/siding/thinplating_new/light{ dir = 4 @@ -4931,6 +4913,12 @@ /obj/machinery/atmospherics/components/unary/outlet_injector/monitored/incinerator_input, /turf/open/floor/engine/vacuum, /area/station/maintenance/disposal/incinerator) +"bUq" = ( +/obj/structure/cable, +/obj/item/reagent_containers/pill/maintenance, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "bUr" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/blue{ @@ -5063,12 +5051,6 @@ /obj/machinery/chem_heater/withbuffer, /turf/open/floor/iron, /area/station/science/xenobiology) -"bXb" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) "bXi" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -5159,13 +5141,6 @@ /obj/structure/cable, /turf/open/floor/wood, /area/station/engineering/atmos/storage) -"bYW" = ( -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/small, -/area/station/cargo/lobby) "bZa" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/siding/white{ @@ -5233,25 +5208,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"cag" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/engineering{ - name = "Engineering Office" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "atmos_airlock_1" - }, -/obj/structure/cable, -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ - dir = 8 - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/turf/open/floor/iron, -/area/station/engineering/atmos/office) "cam" = ( /obj/machinery/flasher/directional/east{ id = "AI"; @@ -5347,6 +5303,15 @@ "cbm" = ( /turf/closed/wall/rust, /area/station/ai_monitored/aisat/exterior) +"cbq" = ( +/obj/structure/cable, +/obj/machinery/airalarm/directional/north, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/iron/smooth, +/area/station/command/heads_quarters/qm) "cbt" = ( /obj/structure/cable, /obj/structure/table/bronze, @@ -5444,28 +5409,31 @@ /obj/machinery/light/cold/dim/directional/east, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"ccO" = ( +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 1 + }, +/obj/effect/spawner/random/vending/snackvend, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "cdg" = ( /obj/machinery/light/small/directional/west, /turf/open/floor/grass, /area/station/science/xenobiology) -"cdh" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/button/door/directional/east{ - id = "qm_warehouse"; - name = "Warehouse Door Control"; - pixel_x = -24; - pixel_y = -24; - req_access = list("cargo") - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/cargo/warehouse) "cdn" = ( /obj/machinery/telecomms/server/presets/medical, /turf/open/floor/circuit, /area/station/tcommsat/server) +"cdp" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "CO2 to Pure" + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "cdz" = ( /obj/effect/turf_decal/tile/yellow, /obj/machinery/light/cold/dim/directional/west, @@ -5495,6 +5463,20 @@ /obj/structure/window/spawner/directional/south, /turf/open/space/basic, /area/space/nearstation) +"ceD" = ( +/obj/machinery/door/airlock/grunge{ + name = "Janitorial Closet" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/textured_half{ + dir = 8 + }, +/area/station/service/janitor) "ceN" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 4 @@ -5565,12 +5547,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"cgc" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/wood, -/area/station/maintenance/hallway/abandoned_recreation) "cgs" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral/opposingcorners{ @@ -5605,14 +5581,6 @@ "cgM" = ( /turf/open/misc/asteroid, /area/station/maintenance/starboard/greater) -"cgT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/stairs{ - dir = 8 - }, -/area/station/cargo/storage) "cgV" = ( /obj/effect/turf_decal/weather/dirt{ dir = 9 @@ -5647,13 +5615,6 @@ /obj/structure/cable, /turf/closed/wall/r_wall, /area/station/hallway/primary/aft) -"chv" = ( -/obj/effect/spawner/structure/window, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/plating, -/area/station/cargo/office) "chC" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -5740,13 +5701,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"ciD" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Public Shrine" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/textured_half, -/area/station/hallway/primary/port) "ciR" = ( /obj/structure/table, /obj/effect/spawner/random/techstorage/command_all, @@ -5768,26 +5722,27 @@ /obj/effect/turf_decal/tile/purple/opposingcorners, /turf/open/floor/iron/cafeteria, /area/station/science/circuits) +"cjc" = ( +/obj/structure/chair/stool/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/open/floor/carpet/orange, +/area/station/command/heads_quarters/qm) +"cjf" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/small, +/area/station/cargo/lobby) "cjm" = ( /obj/structure/closet/firecloset, /obj/machinery/status_display/evac/directional/south, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"cjw" = ( -/obj/structure/bed, -/obj/effect/decal/cleanable/dirt, -/obj/item/bedsheet/qm, -/obj/item/reagent_containers/cup/glass/bottle/tequila{ - pixel_x = -5; - pixel_y = 2 - }, -/obj/structure/sign/poster/contraband/random/directional/east, -/obj/machinery/camera/autoname/directional/east, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) "cjz" = ( /obj/effect/turf_decal/siding/yellow{ dir = 8 @@ -5860,6 +5815,14 @@ /obj/structure/barricade/wooden/crude, /turf/open/floor/noslip, /area/station/maintenance/department/medical/central) +"cky" = ( +/obj/machinery/airalarm/directional/north, +/obj/item/kirbyplants/organic/applebush{ + pixel_y = 5 + }, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningfoundry) "ckL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -5880,16 +5843,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) -"ckR" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Plasma to Pure" - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "ckV" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -5980,17 +5933,6 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron/dark, /area/station/engineering/storage/tcomms) -"cms" = ( -/obj/structure/table/wood, -/obj/effect/turf_decal/siding/wood{ - dir = 10 - }, -/obj/item/pen{ - pixel_x = -2; - pixel_y = 4 - }, -/turf/open/floor/carpet, -/area/station/maintenance/hallway/abandoned_recreation) "cmw" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -6071,14 +6013,6 @@ }, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) -"coo" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 - }, -/obj/effect/spawner/random/vending/colavend, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/dark/side, -/area/station/cargo/lobby) "cop" = ( /obj/machinery/portable_atmospherics/canister/anesthetic_mix, /obj/machinery/atmospherics/components/unary/portables_connector/visible{ @@ -6097,29 +6031,6 @@ "cow" = ( /turf/closed/wall, /area/station/engineering/lobby) -"coA" = ( -/obj/structure/table, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/item/stamp/denied{ - pixel_x = -1; - pixel_y = 8 - }, -/obj/item/stamp{ - pixel_x = -7; - pixel_y = 0 - }, -/obj/item/radio{ - pixel_x = 9; - pixel_y = 4 - }, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) "coC" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral{ @@ -6301,29 +6212,18 @@ }, /turf/open/floor/iron/small, /area/station/security/brig) -"crP" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Plasma to Pure" - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) -"csi" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/arrows{ - dir = 1 +"csj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/structure/disposalpipe/segment, /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/effect/turf_decal/tile/brown/half/contrasted, -/turf/open/floor/iron/dark/side{ +/obj/effect/turf_decal/loading_area{ dir = 1 }, -/area/station/cargo/sorting) +/turf/open/floor/iron, +/area/station/cargo/storage) "csl" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -6424,6 +6324,13 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron, /area/station/security/prison/rec) +"cuZ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/thinplating_new, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningfoundry) "cvc" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -6439,12 +6346,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/fore/greater) -"cvx" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) "cvy" = ( /obj/structure/bed/medical/emergency, /turf/open/floor/iron/dark, @@ -6609,6 +6510,25 @@ /obj/structure/cable, /turf/open/floor/iron/dark/small, /area/station/command/heads_quarters/ce) +"cyQ" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/rack, +/obj/item/clothing/ears/earmuffs{ + pixel_x = -3; + pixel_y = -2 + }, +/obj/item/clothing/ears/earmuffs{ + pixel_x = -8; + pixel_y = 11 + }, +/obj/item/clothing/ears/earmuffs{ + pixel_x = 4; + pixel_y = 6 + }, +/obj/item/pickaxe, +/obj/machinery/newscaster/directional/west, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningfoundry) "cyU" = ( /obj/effect/spawner/random/structure/table, /obj/effect/spawner/random/maintenance, @@ -6640,6 +6560,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"czh" = ( +/obj/machinery/light/floor, +/obj/structure/flora/bush/flowers_br, +/obj/structure/flora/bush/flowers_br/style_3, +/turf/open/floor/grass, +/area/station/hallway/primary/central/fore) "czq" = ( /obj/structure/curtain/cloth, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -6787,6 +6713,15 @@ }, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) +"cCC" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "cCD" = ( /obj/structure/cable, /obj/machinery/door/airlock/maintenance/external{ @@ -6854,19 +6789,6 @@ /obj/effect/landmark/start/head_of_security, /turf/open/floor/carpet/red, /area/station/command/heads_quarters/hos) -"cDd" = ( -/obj/machinery/conveyor_switch/oneway{ - dir = 8; - id = "QMLoad"; - name = "Loading Conveyor"; - pixel_x = -13; - pixel_y = 19 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "cDf" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron, @@ -6919,6 +6841,15 @@ dir = 1 }, /area/station/maintenance/starboard/greater) +"cDQ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/wood, +/area/station/service/chapel/office) "cDV" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ @@ -6939,6 +6870,11 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"cEp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "cED" = ( /obj/structure/railing/corner, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -7053,27 +6989,9 @@ }, /turf/open/floor/iron/small, /area/station/maintenance/port/lesser) -"cGf" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "cGj" = ( /turf/closed/wall/r_wall, /area/station/security/execution/education) -"cGA" = ( -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/bot, -/obj/structure/disposalpipe/trunk{ - dir = 2 - }, -/turf/open/floor/iron/dark/side{ - dir = 1 - }, -/area/station/hallway/primary/central/fore) "cGG" = ( /obj/machinery/atmospherics/pipe/smart/simple/green/visible{ dir = 4 @@ -7141,6 +7059,13 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/dark, /area/station/service/lawoffice) +"cHD" = ( +/obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible, +/turf/open/floor/iron, +/area/station/engineering/atmos) "cHG" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -7259,13 +7184,6 @@ "cKk" = ( /turf/closed/mineral/random/stationside, /area/station/ai_monitored/turret_protected/aisat/maint) -"cKl" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/effect/spawner/random/engineering/tracking_beacon, -/turf/open/floor/iron, -/area/station/cargo/lobby) "cKm" = ( /obj/machinery/camera/directional/west, /turf/open/floor/engine, @@ -7398,6 +7316,12 @@ /obj/machinery/door/poddoor/incinerator_atmos_aux, /turf/open/floor/plating, /area/station/maintenance/disposal/incinerator) +"cMH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/maintenance/central/greater) "cMS" = ( /obj/structure/cable, /obj/structure/chair/stool/directional/north, @@ -7423,10 +7347,21 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) -"cNL" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) +"cNl" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningfoundry) +"cNw" = ( +/obj/effect/turf_decal/siding/red, +/obj/item/kirbyplants/random, +/turf/open/floor/iron, +/area/station/cargo/storage) "cNR" = ( /obj/structure/chair/office{ dir = 4 @@ -7447,6 +7382,16 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) +"cOa" = ( +/obj/structure/table, +/obj/item/screwdriver{ + pixel_y = -6 + }, +/obj/item/storage/toolbox/mechanical{ + pixel_y = 7 + }, +/turf/open/floor/iron/dark, +/area/station/commons/storage/tools) "cOd" = ( /obj/structure/flora/bush/flowers_yw/style_random, /obj/structure/flora/rock/pile/style_2{ @@ -7457,6 +7402,13 @@ /obj/structure/window/spawner/directional/west, /turf/open/misc/sandy_dirt, /area/station/commons/fitness/recreation/entertainment) +"cOs" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/table, +/turf/open/floor/iron, +/area/station/cargo/sorting) "cOC" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -7590,15 +7542,6 @@ }, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) -"cQV" = ( -/obj/machinery/door/airlock/engineering/glass{ - name = "Engineering Storage" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/engine_equipment, -/turf/open/floor/iron/smooth_half{ - dir = 8 - }, -/area/station/engineering/main) "cRc" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -7843,6 +7786,13 @@ dir = 1 }, /area/station/hallway/primary/aft) +"cUV" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/smooth, +/area/station/command/heads_quarters/qm) "cUY" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -7909,6 +7859,11 @@ dir = 4 }, /area/station/maintenance/fore/lesser) +"cWC" = ( +/obj/item/reagent_containers/cup/watering_can/wood, +/obj/structure/table, +/turf/open/floor/plating, +/area/station/maintenance/starboard/greater) "cWM" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -7997,17 +7952,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"cYj" = ( -/obj/structure/hedge, -/obj/machinery/status_display/supply{ - pixel_y = -32 - }, -/obj/machinery/light/small/directional/south, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/iron/smooth, -/area/station/cargo/storage) "cYk" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -8201,6 +8145,13 @@ dir = 1 }, /area/station/science/lower) +"day" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/event_spawn, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/lobby) "daC" = ( /obj/structure/hedge, /obj/effect/turf_decal/siding/thinplating_new{ @@ -8268,6 +8219,11 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron/dark, /area/station/security/interrogation) +"dcu" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/turf/open/floor/iron/smooth, +/area/station/cargo/warehouse) "dcx" = ( /obj/effect/turf_decal/siding/white{ dir = 10 @@ -8471,6 +8427,13 @@ /obj/machinery/status_display/ai/directional/north, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) +"dfM" = ( +/obj/structure/rack, +/obj/item/storage/medkit/regular, +/turf/open/floor/iron/dark/textured_half{ + dir = 1 + }, +/area/station/cargo/storage) "dfT" = ( /obj/effect/turf_decal/bot{ dir = 1 @@ -8508,6 +8471,25 @@ /obj/structure/cable, /turf/open/floor/iron/white/corner, /area/station/science/lower) +"dgt" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/item/storage/fancy/candle_box, +/obj/structure/rack/skeletal, +/obj/machinery/camera/autoname/directional/west, +/obj/structure/sign/poster/official/random/directional/north, +/turf/open/floor/iron/grimy, +/area/station/service/library/private) +"dgy" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/carpet, +/area/station/maintenance/hallway/abandoned_recreation) "dgV" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 5 @@ -8664,6 +8646,13 @@ /obj/effect/landmark/start/mime, /turf/open/floor/iron/smooth, /area/station/service/greenroom) +"diN" = ( +/obj/effect/spawner/structure/window, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating, +/area/station/cargo/office) "diP" = ( /turf/open/floor/iron, /area/station/hallway/primary/central/aft) @@ -8764,6 +8753,12 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/security/tram) +"dkD" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/obj/item/clothing/suit/hooded/wintercoat/engineering, +/obj/structure/cable, +/turf/open/floor/iron/small, +/area/station/engineering/break_room) "dkI" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -8833,21 +8828,14 @@ }, /turf/open/floor/iron/dark, /area/station/medical/cryo) -"dmo" = ( -/obj/effect/turf_decal/tile/brown/anticorner/contrasted, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/sorting) "dmG" = ( /obj/structure/transport/linear/tram, /obj/structure/tram, /turf/open/floor/tram, /area/station/maintenance/port/aft) +"dmO" = ( +/turf/open/floor/iron/dark, +/area/station/cargo/lobby) "dmT" = ( /obj/machinery/camera/directional/north{ c_tag = "Xenobiology - Cell 2"; @@ -9005,23 +8993,6 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai) -"dpz" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light_switch/directional/west, -/obj/effect/landmark/event_spawn, -/obj/machinery/portable_atmospherics/pump/lil_pump, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) -"dpF" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/landmark/navigate_destination/bar, -/obj/machinery/camera/autoname/directional/west, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "dpH" = ( /obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/mix_output{ dir = 8 @@ -9044,6 +9015,23 @@ /obj/item/clothing/head/utility/chefhat, /turf/open/floor/iron/dark/small, /area/station/commons/fitness/locker_room) +"dqF" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/table/glass, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen/invisible{ + pixel_x = -2; + pixel_y = 7 + }, +/obj/machinery/newscaster/directional/north, +/obj/item/storage/photo_album/library, +/turf/open/floor/iron/grimy, +/area/station/service/library/private) "dqO" = ( /turf/open/floor/iron/dark/small, /area/station/security/checkpoint/customs/auxiliary) @@ -9165,14 +9153,6 @@ /obj/structure/tram, /turf/open/floor/tram, /area/station/maintenance/port/aft) -"dth" = ( -/obj/effect/landmark/navigate_destination/cargo, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "dtk" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/closed/wall, @@ -9305,6 +9285,15 @@ }, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs) +"dvP" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/white/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark/corner{ + dir = 1 + }, +/area/station/cargo/storage) "dvY" = ( /obj/effect/turf_decal/siding/wood{ dir = 10 @@ -9330,6 +9319,9 @@ }, /turf/open/misc/sandy_dirt, /area/station/security/tram) +"dwy" = ( +/turf/open/floor/catwalk_floor/iron_white, +/area/station/cargo/storage) "dwC" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -9403,16 +9395,6 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/iron/dark/diagonal, /area/station/service/bar) -"dxW" = ( -/obj/machinery/door/morgue{ - name = "Private Study"; - req_access = list("library") - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/maintenance/central/greater) "dxZ" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -9518,11 +9500,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"dzH" = ( -/obj/machinery/portable_atmospherics/canister/plasma, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/turf/open/floor/engine/plasma, -/area/station/engineering/atmos) "dAn" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plating, @@ -9531,14 +9508,6 @@ /obj/structure/closet/firecloset, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) -"dAt" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 - }, -/obj/effect/landmark/start/hangover, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/iron, -/area/station/cargo/lobby) "dAu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -9599,6 +9568,10 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/security/evidence) +"dAZ" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/cargo/lobby) "dBh" = ( /obj/effect/turf_decal/siding/wood{ dir = 6 @@ -9611,6 +9584,14 @@ /obj/effect/turf_decal/tile/neutral/opposingcorners, /turf/open/floor/iron, /area/station/commons/fitness/recreation/entertainment) +"dBn" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/sign/departments/cargo/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "dBr" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -9771,6 +9752,12 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron, /area/station/engineering/atmos) +"dEp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/camera/autoname/directional/west, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "dEq" = ( /obj/effect/turf_decal/siding/thinplating_new/light, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -9810,6 +9797,12 @@ }, /turf/open/floor/iron/white/small, /area/station/service/hydroponics) +"dFn" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "dFA" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ @@ -9867,16 +9860,6 @@ }, /turf/open/floor/tram, /area/station/security/tram) -"dHr" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/delivery/white, -/turf/closed/wall, -/area/station/maintenance/port/fore) "dHx" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -9910,32 +9893,6 @@ /obj/structure/lattice, /turf/open/space/basic, /area/space/nearstation) -"dIq" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/left/directional/west{ - name = "Cargo Desk"; - req_access = list("shipping") - }, -/obj/structure/desk_bell{ - pixel_x = 7 - }, -/obj/item/paper_bin{ - pixel_x = -7; - pixel_y = 6 - }, -/obj/effect/turf_decal/siding/white{ - dir = 4 - }, -/obj/item/pen{ - pixel_x = 8; - pixel_y = 8 - }, -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/dark/textured_large, -/area/station/cargo/office) "dIt" = ( /obj/structure/cable, /obj/machinery/button/door/directional/east{ @@ -9948,6 +9905,12 @@ }, /turf/open/floor/iron/dark/small, /area/station/ai_monitored/security/armory) +"dIw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "dIQ" = ( /obj/effect/turf_decal/weather/dirt, /obj/structure/flora/bush/flowers_yw/style_3, @@ -10063,6 +10026,11 @@ }, /turf/open/floor/engine/n2o, /area/station/engineering/atmos) +"dLl" = ( +/obj/effect/spawner/structure/window, +/obj/structure/curtain/bounty/start_closed, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "dLn" = ( /obj/structure/chair/office, /turf/open/floor/iron/dark/herringbone, @@ -10127,6 +10095,13 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/plating, /area/station/construction/mining/aux_base) +"dMC" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/grille, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/plating, +/area/station/hallway/primary/central/fore) "dMM" = ( /obj/effect/spawner/random/engineering/tracking_beacon, /turf/open/floor/iron, @@ -10147,17 +10122,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/engineering/gravity_generator) -"dNl" = ( -/obj/machinery/firealarm/directional/east, -/obj/effect/turf_decal/stripes, -/obj/effect/turf_decal/trimline/brown/line, -/obj/effect/turf_decal/siding/thinplating_new/dark{ - dir = 1 - }, -/obj/machinery/light/small/directional/east, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/iron/dark/smooth_half, -/area/station/cargo/bitrunning/den) "dNo" = ( /obj/item/radio/intercom/directional/south, /turf/open/floor/iron, @@ -10217,6 +10181,19 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/commons/storage/tools) +"dOH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "dOP" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2{ dir = 1 @@ -10338,6 +10315,10 @@ /obj/effect/turf_decal/siding/wood/end, /turf/open/floor/stone, /area/station/service/chapel) +"dRz" = ( +/obj/docking_port/stationary/syndicate/northeast, +/turf/open/space/basic, +/area/space) "dRT" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -10426,6 +10407,22 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"dTi" = ( +/obj/machinery/light/cold/directional/west, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/layer2{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) +"dTj" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/obj/machinery/door/airlock{ + name = "Cargo Maintenance" + }, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "dTo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, /obj/effect/turf_decal/stripes/line{ @@ -10505,10 +10502,6 @@ /obj/machinery/holopad, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) -"dUU" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/station/cargo/lobby) "dVQ" = ( /obj/effect/turf_decal/weather/dirt{ dir = 8 @@ -10527,10 +10520,6 @@ /obj/effect/landmark/start/depsec/supply, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/supply) -"dWa" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "dWh" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -10626,6 +10615,14 @@ /obj/machinery/door/firedoor, /turf/open/floor/catwalk_floor/iron, /area/station/science/lower) +"dXu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/chair/stool/directional/south, +/turf/open/floor/iron, +/area/station/cargo/sorting) "dXO" = ( /obj/effect/spawner/structure/window/reinforced/tinted, /obj/structure/disposalpipe/segment{ @@ -10846,6 +10843,11 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/wood/tile, /area/station/service/bar) +"ebn" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/iron/dark/side, +/area/station/hallway/primary/central/fore) "ebE" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -10863,6 +10865,19 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/herringbone, /area/station/commons/dorms) +"ebM" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/sorting) "ebU" = ( /obj/structure/table/reinforced, /obj/structure/reagent_dispensers/servingdish, @@ -10942,6 +10957,19 @@ }, /turf/open/floor/iron, /area/station/service/hydroponics) +"edA" = ( +/obj/machinery/conveyor_switch/oneway{ + dir = 8; + id = "QMLoad"; + name = "Loading Conveyor"; + pixel_x = -13; + pixel_y = 19 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "edD" = ( /obj/machinery/light/small/directional/west, /obj/item/kirbyplants/random, @@ -11035,10 +11063,6 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) -"efn" = ( -/obj/effect/spawner/random/structure/crate_loot, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) "efy" = ( /obj/item/kirbyplants/organic/plant21, /obj/machinery/status_display/ai/directional/west, @@ -11094,11 +11118,22 @@ }, /turf/open/floor/iron, /area/station/service/hydroponics) +"egg" = ( +/obj/structure/water_source/puddle, +/turf/open/misc/asteroid, +/area/station/maintenance/starboard/greater) "egr" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, /turf/open/floor/catwalk_floor/iron_dark, /area/station/science/xenobiology) +"egA" = ( +/obj/machinery/vending/autodrobe, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/turf/open/floor/iron/small, +/area/station/commons/fitness/locker_room) "egC" = ( /obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ dir = 4 @@ -11138,6 +11173,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/chapel, /area/station/maintenance/starboard/greater) +"egW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/radio/intercom/directional/south, +/obj/machinery/light/cold/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "ehd" = ( /obj/item/stack/cable_coil, /obj/item/electronics/airlock, @@ -11175,6 +11222,19 @@ /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) +"ehu" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/button/door/directional/east{ + id = "qm_warehouse_aft"; + name = "Warehouse Door Control"; + pixel_x = -24; + pixel_y = -23; + req_access = list("cargo") + }, +/obj/machinery/light/small/dim/directional/west, +/obj/effect/turf_decal/loading_area, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "ehT" = ( /obj/machinery/door/airlock{ id_tag = "commiss2"; @@ -11205,6 +11265,16 @@ /obj/structure/broken_flooring/singular/directional/south, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"eib" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "QMLoad2"; + name = "Unloading Conveyor"; + pixel_x = -13; + pixel_y = 3 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/iron, +/area/station/cargo/storage) "eip" = ( /obj/machinery/power/port_gen/pacman, /obj/machinery/power/terminal{ @@ -11319,15 +11389,6 @@ }, /turf/open/floor/engine/n2o, /area/station/engineering/atmos) -"eka" = ( -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/stripes/white/corner{ - dir = 4 - }, -/turf/open/floor/iron/dark/corner{ - dir = 4 - }, -/area/station/cargo/storage) "ekr" = ( /obj/effect/turf_decal/siding/dark_red{ dir = 1 @@ -11512,6 +11573,9 @@ /obj/machinery/holopad, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) +"emz" = ( +/turf/closed/wall/r_wall/rust, +/area/station/maintenance/department/electrical) "emB" = ( /obj/machinery/door/airlock/maintenance{ name = "Maintenance" @@ -11575,6 +11639,16 @@ "enG" = ( /turf/open/floor/iron/dark, /area/station/science/ordnance) +"enI" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Atmospherics Maintenance" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "enV" = ( /obj/structure/closet/secure_closet/research_director, /obj/item/radio/intercom/directional/north, @@ -11708,21 +11782,6 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/engineering/atmos/storage/gas) -"eqW" = ( -/obj/structure/table/wood, -/obj/item/folder/yellow{ - pixel_x = 3; - pixel_y = 6 - }, -/obj/item/dest_tagger{ - pixel_x = -11; - pixel_y = 4 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/carpet/orange, -/area/station/command/heads_quarters/qm) "erf" = ( /obj/effect/mapping_helpers/airlock/access/any/service/hydroponics, /obj/machinery/door/airlock/hydroponics/glass{ @@ -11775,16 +11834,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/side, /area/station/hallway/primary/central/fore) -"ess" = ( -/obj/structure/cable, -/obj/structure/railing/corner/end{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/thinplating_new, -/turf/open/floor/iron/smooth, -/area/station/cargo/miningfoundry) "esv" = ( /obj/docking_port/stationary{ dwidth = 4; @@ -11804,13 +11853,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/central) -"esB" = ( -/obj/effect/turf_decal/bot_white, -/obj/effect/spawner/random/maintenance, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/dark, -/area/station/cargo/storage) "esF" = ( /obj/structure/cable, /obj/item/kirbyplants/organic/applebush, @@ -11847,6 +11889,15 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"eti" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/cargo/storage) "etl" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ dir = 5 @@ -11868,6 +11919,10 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/circuit, /area/station/maintenance/port/aft) +"etJ" = ( +/obj/machinery/light/small/directional/south, +/turf/open/floor/stone, +/area/station/service/chapel) "etZ" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted, /obj/effect/turf_decal/siding/wideplating/dark/corner{ @@ -12059,6 +12114,26 @@ /obj/structure/sink/directional/east, /turf/open/floor/iron/white, /area/station/medical/virology) +"eyx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/obj/structure/sign/directions/supply/directional/west{ + pixel_x = 0; + pixel_y = 39 + }, +/obj/structure/sign/directions/vault/directional/west{ + dir = 2; + pixel_x = 0; + pixel_y = 30 + }, +/turf/open/floor/iron/small, +/area/station/hallway/primary/central/fore) "eyB" = ( /obj/structure/cable, /obj/machinery/door/firedoor, @@ -12101,18 +12176,6 @@ /obj/structure/chair/stool/directional/west, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) -"ezm" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/maintenance{ - name = "Maintenance" - }, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "ezw" = ( /obj/structure/cable, /obj/effect/landmark/start/hangover, @@ -12318,6 +12381,23 @@ }, /turf/open/floor/iron/small, /area/station/engineering/main) +"eCO" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/iron/smooth, +/area/station/command/heads_quarters/qm) +"eCV" = ( +/obj/effect/turf_decal/tile/brown/anticorner/contrasted, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/sorting) "eDh" = ( /obj/effect/spawner/structure/window/survival_pod, /turf/open/floor/engine, @@ -12454,6 +12534,13 @@ /obj/machinery/camera/directional/west, /turf/open/floor/iron/smooth, /area/station/commons/storage/tools) +"eEG" = ( +/obj/structure/hedge, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/iron/smooth, +/area/station/cargo/storage) "eEL" = ( /obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/plating, @@ -12676,35 +12763,14 @@ /obj/machinery/light/floor, /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/turret_protected/ai) -"eIB" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/table/wood, -/obj/item/folder/red{ - pixel_x = -4; - pixel_y = -1 - }, -/obj/item/folder/blue{ - pixel_x = 3; - pixel_y = -30 - }, -/obj/effect/spawner/random/entertainment/toy_figure{ - pixel_x = 4; - pixel_y = 11 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/obj/item/pen{ - pixel_x = -2; - pixel_y = 4 - }, -/turf/open/floor/carpet, -/area/station/maintenance/hallway/abandoned_recreation) +"eII" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/status_display/evac/directional/east, +/obj/machinery/camera/autoname/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "eIM" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/sorting/mail/flip{ @@ -12751,6 +12817,20 @@ /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) +"eJi" = ( +/obj/structure/table/wood, +/obj/item/hand_labeler_refill{ + pixel_x = -4; + pixel_y = 26 + }, +/obj/structure/sign/poster/official/random/directional/south, +/obj/machinery/fax{ + fax_name = "Quartermaster's Office"; + name = "Quartermaster's Fax Machine"; + pixel_y = 7 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "eJm" = ( /obj/machinery/disposal/bin, /obj/effect/turf_decal/bot, @@ -12776,29 +12856,6 @@ /obj/effect/turf_decal/stripes/asteroid/end, /turf/open/floor/circuit/green, /area/station/science/robotics/mechbay) -"eJR" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/arrows{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted, -/turf/open/floor/iron/dark/side{ - dir = 1 - }, -/area/station/cargo/sorting) -"eKd" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, -/obj/machinery/light/small/directional/west, -/obj/machinery/airlock_sensor/incinerator_atmos{ - pixel_y = -20 - }, -/turf/open/floor/engine, -/area/station/maintenance/disposal/incinerator) "eKf" = ( /obj/structure/table, /obj/item/storage/box/donkpockets/donkpocketpizza, @@ -12827,6 +12884,11 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"eKV" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "eKW" = ( /obj/machinery/door/airlock/maintenance{ name = "Bathroom" @@ -12907,6 +12969,19 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) +"eNa" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/cargo/miningfoundry) "eNl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -12941,18 +13016,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/turret_protected/ai) -"eNE" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) "eNP" = ( /obj/effect/turf_decal/plaque{ icon_state = "L9"; @@ -13029,6 +13092,12 @@ }, /turf/open/floor/iron, /area/station/cargo/miningfoundry) +"ePr" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/sorting) "ePt" = ( /obj/structure/flora/grass/jungle/a/style_4, /turf/open/floor/grass, @@ -13066,14 +13135,6 @@ /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"eQj" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted, -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/cargo/sorting) "eQk" = ( /obj/machinery/door/airlock/security{ name = "Isolation" @@ -13104,6 +13165,17 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/commons/dorms) +"eQI" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm/directional/east, +/obj/effect/turf_decal/stripes/corner, +/obj/effect/turf_decal/stripes/white/corner, +/obj/machinery/camera/autoname/directional/east, +/turf/open/floor/iron/smooth, +/area/station/cargo/warehouse) "eQQ" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -13112,11 +13184,6 @@ dir = 1 }, /area/station/maintenance/starboard/greater) -"eQR" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) "eQY" = ( /obj/machinery/door/airlock/maintenance{ name = "Maintenance" @@ -13157,6 +13224,16 @@ /obj/machinery/door/firedoor, /turf/open/floor/catwalk_floor/iron, /area/station/science/lower) +"eSA" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/trunk{ + dir = 2 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/primary/central/fore) "eSV" = ( /obj/structure/bed/maint, /turf/open/floor/iron/small, @@ -13210,6 +13287,12 @@ /obj/effect/turf_decal/siding/wood/corner, /turf/open/floor/wood/tile, /area/station/service/bar) +"eTL" = ( +/obj/structure/cable, +/turf/open/floor/iron/stairs{ + dir = 1 + }, +/area/station/cargo/lobby) "eTT" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -13269,14 +13352,6 @@ }, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/escape) -"eUL" = ( -/obj/machinery/door/airlock/hatch{ - name = "Tool Supply Corridor" - }, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/obj/effect/mapping_helpers/airlock/unres, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/commons/storage/tools) "eUN" = ( /obj/machinery/portable_atmospherics/scrubber, /turf/open/floor/plating, @@ -13321,17 +13396,6 @@ /obj/machinery/light/warm/directional/east, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/port/aft) -"eVo" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 - }, -/obj/machinery/firealarm/directional/east, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/sorting) "eVz" = ( /obj/machinery/camera/directional/west{ c_tag = "AI Sat - Antechamber"; @@ -13435,6 +13499,11 @@ /obj/machinery/light/cold/directional/west, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) +"eXl" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "eXo" = ( /turf/closed/wall/r_wall, /area/station/tcommsat/server) @@ -13497,24 +13566,6 @@ }, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat/equipment) -"eYs" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/office) -"eYx" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/junction/flip{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/cargo/sorting) "eYB" = ( /obj/effect/turf_decal/siding/wood/end, /turf/open/floor/wood, @@ -13541,16 +13592,6 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron, /area/station/science/lower) -"eYX" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) "eYY" = ( /obj/structure/window/spawner/directional/west, /obj/structure/window/spawner/directional/east, @@ -13560,6 +13601,10 @@ }, /turf/open/misc/sandy_dirt, /area/station/maintenance/port/lesser) +"eZd" = ( +/obj/effect/spawner/random/structure/crate_loot, +/turf/open/floor/plating, +/area/station/maintenance/department/electrical) "eZi" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -13875,6 +13920,10 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/small, /area/station/security/brig) +"fgo" = ( +/obj/item/pickaxe, +/turf/open/floor/plating, +/area/station/maintenance/department/electrical) "fgp" = ( /turf/open/floor/iron/dark/side, /area/station/security/execution/transfer) @@ -13918,13 +13967,6 @@ /obj/effect/turf_decal/weather/dirt, /turf/open/floor/grass, /area/station/service/chapel) -"fgV" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/iron/smooth, -/area/station/command/heads_quarters/qm) "fgW" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/vending/drugs, @@ -14017,6 +14059,10 @@ /obj/item/plate, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) +"fiE" = ( +/obj/effect/turf_decal/siding/red, +/turf/open/floor/iron, +/area/station/cargo/storage) "fiK" = ( /obj/structure/cable, /obj/structure/disposalpipe/sorting/mail/flip{ @@ -14059,14 +14105,6 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) -"fjH" = ( -/obj/structure/cable, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/smooth, -/area/station/cargo/miningfoundry) "fjL" = ( /obj/effect/turf_decal/siding/wood{ dir = 9 @@ -14215,6 +14253,13 @@ /obj/item/flashlight/lantern, /turf/open/floor/plating/rust, /area/station/maintenance/starboard/greater) +"fma" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/landmark/start/cargo_technician, +/turf/open/floor/iron, +/area/station/cargo/storage) "fme" = ( /obj/effect/turf_decal/weather/dirt{ dir = 1 @@ -14310,19 +14355,6 @@ /obj/item/storage/fancy/donut_box, /turf/open/floor/iron/textured_large, /area/station/security/brig/entrance) -"fod" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/table, -/obj/effect/turf_decal/delivery/white, -/obj/effect/spawner/random/food_or_drink/donkpockets{ - pixel_x = -9; - pixel_y = 3 - }, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/cargo/sorting) "foe" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -14418,22 +14450,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) -"fpr" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/disposal/delivery_chute{ - name = "Engineering Deliveries" - }, -/obj/structure/sign/departments/engineering/directional/north, -/obj/effect/turf_decal/tile/yellow/fourcorners, -/obj/structure/plasticflaps{ - name = "Engineering Deliveries" - }, -/obj/effect/turf_decal/delivery/white, -/obj/machinery/light/warm/directional/north, -/turf/open/floor/iron/dark/side, -/area/station/cargo/sorting) "fpB" = ( /obj/structure/cable, /obj/machinery/door/airlock{ @@ -14517,6 +14533,13 @@ /obj/machinery/door/window/brigdoor/right/directional/north, /turf/open/floor/iron/textured_large, /area/station/security/checkpoint/customs) +"frY" = ( +/obj/structure/closet/secure_closet/security/cargo, +/obj/effect/turf_decal/tile/red/anticorner/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/smooth, +/area/station/security/checkpoint/supply) "frZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -14627,10 +14650,18 @@ }, /turf/open/floor/wood, /area/station/service/chapel) -"ftJ" = ( -/obj/effect/turf_decal/siding/red, +"ftI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/structure/cable, /turf/open/floor/iron, -/area/station/cargo/storage) +/area/station/cargo/lobby) "ftT" = ( /obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, /obj/machinery/camera/directional/west{ @@ -14645,10 +14676,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/hallway/primary/port) -"fua" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/iron/small, -/area/station/cargo/lobby) "fuj" = ( /obj/structure/table/glass, /obj/effect/turf_decal/siding/dark_red, @@ -14703,15 +14730,6 @@ }, /turf/open/space/basic, /area/space) -"fuT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/lobby) "fuV" = ( /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 1 @@ -14737,15 +14755,6 @@ }, /turf/open/misc/sandy_dirt, /area/station/commons/fitness/locker_room) -"fvq" = ( -/obj/machinery/firealarm/directional/south, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/cargo/storage) "fvs" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -14788,6 +14797,15 @@ }, /turf/open/floor/iron/dark, /area/station/security/processing) +"fvX" = ( +/obj/structure/table, +/obj/item/restraints/handcuffs/cable/red{ + pixel_x = 1; + pixel_y = 6 + }, +/obj/item/storage/toolbox/mechanical, +/turf/open/floor/iron, +/area/station/cargo/sorting) "fwc" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -14815,25 +14833,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"fwB" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/button/door/directional/east{ - id = "qm_warehouse"; - name = "Warehouse Door Control"; - pixel_x = -24; - pixel_y = 24; - req_access = list("cargo") - }, -/obj/effect/turf_decal/loading_area{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "fwF" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -14883,35 +14882,13 @@ /turf/open/floor/iron, /area/station/maintenance/department/medical/central) "fxc" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/white/corner{ - dir = 1 - }, -/turf/open/floor/iron/dark/corner{ - dir = 1 - }, -/area/station/cargo/storage) +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth, +/area/station/cargo/warehouse) "fxi" = ( /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) -"fxp" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) -"fxE" = ( -/obj/structure/table/wood/fancy/green, -/obj/item/paperplane{ - pixel_x = 7; - pixel_y = 7 - }, -/obj/item/paperplane{ - pixel_x = -1; - pixel_y = 1 - }, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) "fxF" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -14923,6 +14900,14 @@ /obj/structure/table, /turf/open/floor/iron/kitchen/small, /area/station/maintenance/aft) +"fxO" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/cargo/storage) "fxW" = ( /obj/machinery/restaurant_portal/restaurant, /obj/effect/turf_decal/siding/wood{ @@ -15051,14 +15036,6 @@ }, /turf/open/floor/carpet/blue, /area/station/commons/dorms) -"fzM" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/pdapainter/supply, -/turf/open/floor/iron/smooth, -/area/station/command/heads_quarters/qm) "fzT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -15073,6 +15050,13 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"fAn" = ( +/obj/effect/spawner/structure/window, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "fAr" = ( /obj/structure/window/reinforced/spawner/directional/south, /obj/structure/barricade/wooden/crude, @@ -15225,6 +15209,16 @@ }, /turf/open/floor/iron/dark, /area/station/medical/chemistry) +"fCK" = ( +/obj/machinery/door/airlock/mining{ + name = "Mining Office" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/supply, +/turf/open/floor/iron/smooth, +/area/station/cargo/warehouse) "fCS" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/machinery/airalarm/directional/east, @@ -15361,14 +15355,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos/project) -"fEt" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/machinery/camera/autoname/directional/south, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/cargo/warehouse) "fEC" = ( /turf/closed/wall, /area/station/maintenance/port/lesser) @@ -15542,9 +15528,6 @@ /obj/structure/flora/bush/large/style_random, /turf/open/floor/grass, /area/station/service/chapel) -"fGY" = ( -/turf/open/floor/catwalk_floor/iron_white, -/area/station/cargo/storage) "fHf" = ( /obj/structure/bed/maint, /obj/effect/spawner/random/maintenance, @@ -15603,6 +15586,14 @@ /obj/machinery/vending/wardrobe/science_wardrobe, /turf/open/floor/iron/white, /area/station/science/research) +"fHX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/stairs{ + dir = 8 + }, +/area/station/cargo/storage) "fIe" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ dir = 6 @@ -15627,6 +15618,13 @@ /obj/machinery/light/floor, /turf/open/floor/stone, /area/station/service/bar) +"fIq" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/cargo/office) "fIw" = ( /obj/effect/landmark/navigate_destination/dockescpod, /turf/open/floor/plating, @@ -15789,19 +15787,6 @@ /obj/item/clothing/mask/animal/small/bat, /turf/open/floor/wood/parquet, /area/station/service/greenroom) -"fLs" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/sorting) "fLt" = ( /obj/structure/table, /obj/effect/spawner/random/food_or_drink/dinner, @@ -15873,6 +15858,15 @@ /obj/structure/disposalpipe/segment, /turf/closed/wall, /area/station/commons/fitness/recreation/entertainment) +"fMf" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/power/apc/auto_name/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "fMg" = ( /obj/structure/chair/stool/directional/north, /turf/open/floor/iron/smooth, @@ -16151,6 +16145,14 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/small, /area/station/service/janitor) +"fQv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "fQA" = ( /obj/effect/spawner/random/structure/chair_maintenance{ dir = 8 @@ -16201,20 +16203,6 @@ /obj/item/plunger, /turf/open/floor/iron, /area/station/medical/chemistry) -"fRu" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/sorting) "fRv" = ( /obj/structure/table, /obj/effect/turf_decal/siding/thinplating_new/terracotta{ @@ -16313,14 +16301,6 @@ /obj/effect/mapping_helpers/airlock/access/all/command/minisat, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/ai_monitored/turret_protected/aisat_interior) -"fTa" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/sign/departments/cargo/directional/west, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "fTd" = ( /obj/structure/transport/linear/tram, /obj/effect/landmark/transport/transport_id/birdshot/line_1, @@ -16505,6 +16485,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) +"fWj" = ( +/obj/structure/cable, +/obj/machinery/airalarm/directional/north, +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "fWr" = ( /obj/structure/closet/crate, /obj/structure/barricade/wooden/crude, @@ -16590,15 +16579,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"fXY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "fYe" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/siding/wood{ @@ -16663,14 +16643,6 @@ }, /turf/open/floor/carpet, /area/station/service/library) -"fZY" = ( -/obj/effect/landmark/start/cargo_technician, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/cargo/warehouse) "fZZ" = ( /obj/structure/chair/sofa/bench/left{ dir = 1 @@ -16851,12 +16823,6 @@ /obj/effect/spawner/random/structure/crate_abandoned, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) -"gdd" = ( -/obj/machinery/computer/order_console/bitrunning{ - dir = 8 - }, -/turf/open/floor/iron/dark/smooth_large, -/area/station/cargo/bitrunning/den) "gdn" = ( /obj/item/kirbyplants/organic/applebush, /obj/effect/turf_decal/tile/red{ @@ -16998,12 +16964,6 @@ /obj/structure/cable, /turf/open/floor/wood/parquet, /area/station/service/library) -"gfp" = ( -/obj/structure/cable, -/turf/open/floor/iron/stairs{ - dir = 1 - }, -/area/station/cargo/lobby) "gfs" = ( /turf/closed/wall/r_wall, /area/station/hallway/secondary/command) @@ -17078,10 +17038,12 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"ggr" = ( -/obj/item/pickaxe, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) +"ggn" = ( +/obj/effect/decal/cleanable/oil, +/obj/machinery/byteforge, +/obj/effect/turf_decal/box, +/turf/open/floor/iron/dark/smooth_large, +/area/station/cargo/bitrunning/den) "ggw" = ( /obj/effect/turf_decal/stripes/white/end{ dir = 1 @@ -17110,6 +17072,14 @@ }, /turf/open/floor/wood, /area/station/engineering/atmospherics_engine) +"ggK" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/pdapainter/supply, +/turf/open/floor/iron/smooth, +/area/station/command/heads_quarters/qm) "ggN" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 9 @@ -17238,6 +17208,12 @@ /obj/machinery/nuclearbomb/beer, /turf/open/floor/iron/freezer, /area/station/command/corporate_suite) +"giA" = ( +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/qm) "giU" = ( /obj/effect/turf_decal/siding/thinplating_new/terracotta{ dir = 1 @@ -17432,11 +17408,6 @@ }, /turf/open/floor/wood, /area/station/engineering/atmospherics_engine) -"gmz" = ( -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "gnA" = ( /obj/structure/cable, /obj/machinery/light/small/directional/north, @@ -17475,6 +17446,15 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"gnO" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "gnQ" = ( /obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden, /obj/effect/spawner/structure/window, @@ -17550,15 +17530,6 @@ /obj/item/clothing/head/costume/papersack/smiley, /turf/open/floor/plating/rust, /area/station/maintenance/starboard/greater) -"gpd" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/white/corner{ - dir = 8 - }, -/turf/open/floor/iron/dark/corner{ - dir = 8 - }, -/area/station/cargo/storage) "gpf" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 1 @@ -17652,6 +17623,12 @@ /obj/structure/spider/stickyweb, /turf/open/floor/iron/dark, /area/station/maintenance/department/engine/atmos) +"gqw" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "gqS" = ( /obj/machinery/atmospherics/pipe/smart/simple/purple/visible, /obj/effect/turf_decal/siding/wideplating, @@ -17697,24 +17674,6 @@ }, /turf/open/floor/iron/white/side, /area/station/science/lobby) -"gsj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/sign/departments/holy/directional/south, -/obj/machinery/light/cold/directional/south, -/turf/open/floor/iron, -/area/station/hallway/primary/port) -"gsr" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/firealarm/directional/east, -/obj/effect/turf_decal/stripes/corner, -/obj/effect/turf_decal/stripes/white/corner, -/obj/machinery/camera/autoname/directional/east, -/turf/open/floor/iron/smooth, -/area/station/cargo/warehouse) "gsv" = ( /obj/effect/turf_decal/siding{ dir = 1 @@ -17774,12 +17733,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/dark, /area/station/medical/medbay/central) -"gtU" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/cargo/storage) "guh" = ( /obj/machinery/atmospherics/components/binary/pump{ name = "atmos to engine" @@ -17793,6 +17746,20 @@ }, /turf/open/floor/iron/white/corner, /area/station/hallway/secondary/exit/departure_lounge) +"guq" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"gus" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/cargo/warehouse) "guz" = ( /obj/structure/cable, /obj/item/kirbyplants/random, @@ -17818,20 +17785,6 @@ "guY" = ( /turf/closed/wall, /area/station/service/chapel/storage) -"gvz" = ( -/obj/effect/turf_decal/siding/thinplating_new/dark{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/brown/line, -/obj/effect/turf_decal/stripes, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/obj/machinery/airalarm/directional/west, -/obj/effect/landmark/start/bitrunner, -/obj/machinery/camera/autoname/directional/west, -/turf/open/floor/iron/dark/smooth_half, -/area/station/cargo/bitrunning/den) "gvV" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/chair/office{ @@ -18252,6 +18205,12 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/small, /area/station/hallway/primary/fore) +"gBs" = ( +/obj/effect/spawner/structure/window, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/command/heads_quarters/qm) "gBu" = ( /turf/closed/wall/r_wall, /area/station/security/prison/mess) @@ -18319,15 +18278,6 @@ /obj/structure/table/glass, /turf/open/floor/glass/reinforced, /area/station/command/bridge) -"gBX" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) "gCe" = ( /obj/structure/cable, /obj/machinery/portable_atmospherics/canister/oxygen, @@ -18453,6 +18403,37 @@ /obj/structure/closet/firecloset, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"gEa" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/office) +"gEb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/item/folder/yellow{ + pixel_x = 7; + pixel_y = 6 + }, +/obj/item/storage/dice{ + pixel_x = -10; + pixel_y = 11 + }, +/obj/item/pen{ + pixel_x = -2; + pixel_y = 4 + }, +/turf/open/floor/carpet, +/area/station/maintenance/hallway/abandoned_recreation) "gEc" = ( /obj/structure/closet/emcloset, /turf/open/floor/plating, @@ -18500,6 +18481,25 @@ }, /turf/open/floor/iron/smooth, /area/station/command/bridge) +"gFi" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/button/door/directional/east{ + id = "qm_warehouse"; + name = "Warehouse Door Control"; + pixel_x = -24; + pixel_y = 24; + req_access = list("cargo") + }, +/obj/effect/turf_decal/loading_area{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "gFm" = ( /obj/machinery/light/dim/directional/south, /obj/effect/turf_decal/tile/neutral, @@ -18609,6 +18609,14 @@ /obj/structure/lattice, /turf/open/space/basic, /area/space/nearstation) +"gGA" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/cargo/storage) "gGB" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -18697,6 +18705,25 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/command/gateway) +"gIr" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/machinery/conveyor_switch/oneway{ + id = "packageSort2"; + name = "Sort and Deliver"; + pixel_x = 8; + pixel_y = 12 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/sorting) "gIs" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -18770,6 +18797,26 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron, /area/station/security) +"gJb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/conveyor{ + dir = 1; + id = "packageSort2" + }, +/obj/machinery/door/window/left/directional/west{ + name = "Crate Security Door"; + req_access = list("shipping") + }, +/turf/open/floor/plating, +/area/station/cargo/sorting) "gJo" = ( /turf/open/floor/iron/stairs{ dir = 8 @@ -18803,13 +18850,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"gJH" = ( -/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ - dir = 8 - }, -/obj/machinery/vending/cigarette, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "gJQ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table, @@ -18868,13 +18908,6 @@ "gLb" = ( /turf/closed/wall, /area/station/medical/virology) -"gLf" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/grille, -/obj/structure/window/reinforced/spawner/directional/west, -/turf/open/floor/plating, -/area/station/hallway/primary/central/fore) "gLg" = ( /obj/effect/turf_decal/siding/wood, /obj/machinery/camera/autoname/directional/north, @@ -18935,6 +18968,15 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"gLS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/landmark/navigate_destination/chapel, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "gLV" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -19129,6 +19171,13 @@ }, /turf/open/floor/iron, /area/station/science/xenobiology) +"gOS" = ( +/obj/machinery/rnd/production/techfab/department/cargo, +/obj/effect/turf_decal/delivery/white, +/obj/machinery/light_switch/directional/south, +/obj/machinery/light/warm/directional/south, +/turf/open/floor/iron/smooth, +/area/station/cargo/sorting) "gOX" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 @@ -19167,6 +19216,24 @@ /obj/structure/fermenting_barrel, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"gPO" = ( +/obj/structure/disposalpipe/trunk{ + dir = 2 + }, +/obj/machinery/disposal/delivery_chute{ + name = "Service Deliveries" + }, +/obj/structure/sign/departments/botany/directional/north, +/obj/effect/turf_decal/tile/green/fourcorners, +/obj/structure/plasticflaps{ + name = "Service Deliveries" + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/effect/turf_decal/delivery/white, +/turf/open/floor/iron/dark/side, +/area/station/cargo/sorting) "gPY" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/effect/turf_decal/stripes/white/line{ @@ -19188,36 +19255,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/plating, /area/station/maintenance/disposal/incinerator) -"gQD" = ( -/obj/structure/closet/secure_closet/security/cargo, -/obj/effect/turf_decal/tile/red/anticorner/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/smooth, -/area/station/security/checkpoint/supply) -"gQG" = ( -/obj/structure/window/spawner/directional/east, -/obj/structure/closet/crate, -/obj/effect/turf_decal/bot_white, -/obj/item/clothing/gloves/color/fyellow, -/obj/item/stack/package_wrap{ - pixel_y = 5 - }, -/obj/item/stack/package_wrap{ - pixel_y = 2 - }, -/obj/item/storage/box{ - desc = "It smells of monkey business..."; - name = "Empty Gorillacube Box" - }, -/obj/item/weldingtool, -/obj/item/radio{ - pixel_y = 3; - pixel_x = -6 - }, -/obj/item/assembly/signaler, -/turf/open/floor/iron/smooth, -/area/station/commons/storage/tools) "gRm" = ( /obj/structure/flora/bush/flowers_br, /obj/structure/flora/bush/flowers_pp/style_random, @@ -19303,6 +19340,13 @@ /obj/item/stack/sheet/mineral/titanium, /turf/open/floor/tram, /area/station/maintenance/department/medical/central) +"gSA" = ( +/obj/machinery/vending/wardrobe/cargo_wardrobe, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "gSD" = ( /obj/machinery/mass_driver/chapelgun{ dir = 8 @@ -19338,6 +19382,15 @@ }, /turf/open/floor/carpet/executive, /area/station/command/meeting_room) +"gTj" = ( +/obj/structure/cable, +/turf/closed/wall, +/area/station/maintenance/port/greater) +"gTw" = ( +/obj/machinery/light/small/dim/directional/north, +/obj/effect/spawner/random/structure/crate, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "gTH" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -19402,15 +19455,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/small, /area/station/hallway/primary/aft) -"gUf" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/access/all/supply/general, -/obj/machinery/door/airlock{ - name = "Cargo Maintenance" - }, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "gUk" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -19458,12 +19502,6 @@ /obj/machinery/atmospherics/pipe/smart/simple/green/visible, /turf/open/floor/engine/o2, /area/station/engineering/atmos) -"gUQ" = ( -/obj/machinery/atmospherics/pipe/layer_manifold/supply/visible{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/station/maintenance/department/engine/atmos) "gUV" = ( /obj/structure/cable, /obj/structure/chair/stool/directional/south{ @@ -19476,13 +19514,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/prison) -"gVb" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/thinplating_new, -/turf/open/floor/iron/smooth, -/area/station/cargo/miningfoundry) "gVc" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -19499,16 +19530,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/wood/large, /area/station/command/corporate_suite) -"gVy" = ( -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 8 - }, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "gVA" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -19576,6 +19597,18 @@ /obj/machinery/status_display/ai/directional/north, /turf/open/floor/iron/cafeteria, /area/station/science/breakroom) +"gXB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/lobby) "gXL" = ( /obj/structure/cable, /obj/machinery/door/airlock{ @@ -19611,18 +19644,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"gYh" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/lobby) "gYq" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -19674,6 +19695,16 @@ dir = 4 }, /area/station/hallway/secondary/entry) +"gZR" = ( +/obj/structure/sign/poster/random/directional/south, +/obj/machinery/conveyor{ + id = "mining"; + dir = 10 + }, +/obj/machinery/bouldertech/refinery, +/obj/structure/sign/poster/random/directional/east, +/turf/open/floor/iron, +/area/station/cargo/miningfoundry) "gZS" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/west, @@ -19709,6 +19740,12 @@ }, /turf/open/floor/engine, /area/station/engineering/atmospherics_engine) +"hao" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/lobby) "haq" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -19721,10 +19758,6 @@ /obj/machinery/light/cold/directional/south, /turf/open/floor/iron/dark, /area/station/medical/medbay/central) -"haD" = ( -/obj/machinery/portable_atmospherics/scrubber, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "haO" = ( /obj/effect/turf_decal/stripes/white/end, /obj/machinery/door/poddoor/shutters{ @@ -19732,13 +19765,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"hba" = ( -/obj/structure/hedge, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/iron/smooth, -/area/station/cargo/storage) "hbc" = ( /obj/effect/turf_decal/siding/dark_red/corner{ dir = 8 @@ -20171,12 +20197,6 @@ /obj/structure/lattice, /turf/open/misc/asteroid/airless, /area/space/nearstation) -"hft" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "hfI" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -20186,16 +20206,6 @@ }, /turf/open/floor/wood/tile, /area/station/tcommsat/server) -"hgd" = ( -/obj/structure/table, -/obj/item/screwdriver{ - pixel_y = -6 - }, -/obj/item/storage/toolbox/mechanical{ - pixel_y = 7 - }, -/turf/open/floor/iron/dark, -/area/station/commons/storage/tools) "hgf" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/green{ @@ -20219,6 +20229,16 @@ }, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/aft) +"hgp" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "hgu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -20299,21 +20319,13 @@ /obj/effect/mapping_helpers/airlock/access/all/security/general, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"hhp" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/chair/stool/directional/west, -/obj/machinery/airalarm/directional/east, -/obj/machinery/light/small/directional/east, -/turf/open/floor/wood, -/area/station/maintenance/hallway/abandoned_recreation) -"hhr" = ( -/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden{ +"hhy" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ dir = 4 }, -/turf/closed/wall/r_wall, -/area/station/maintenance/department/engine/atmos) +/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible, +/turf/open/floor/iron, +/area/station/engineering/atmos) "hhL" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -20400,6 +20412,21 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/small, /area/station/medical/morgue) +"hjA" = ( +/obj/structure/table, +/obj/machinery/status_display/supply{ + pixel_x = 1; + pixel_y = 32 + }, +/obj/machinery/fax/auto_name{ + pixel_x = -1; + pixel_y = 6 + }, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "hjQ" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral{ @@ -20407,6 +20434,19 @@ }, /turf/open/floor/iron, /area/station/engineering/lobby) +"hjS" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/table, +/obj/effect/turf_decal/delivery/white, +/obj/effect/spawner/random/food_or_drink/donkpockets{ + pixel_x = -9; + pixel_y = 3 + }, +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/cargo/sorting) "hkd" = ( /obj/effect/turf_decal/siding/wideplating{ dir = 8 @@ -20503,9 +20543,6 @@ /obj/machinery/status_display/ai/directional/west, /turf/open/floor/iron/dark/herringbone, /area/station/ai_monitored/command/nuke_storage) -"hle" = ( -/turf/open/floor/carpet/lone, -/area/station/service/chapel/office) "hlC" = ( /obj/effect/spawner/structure/window, /obj/effect/turf_decal/bot{ @@ -20530,6 +20567,18 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/dark, /area/station/science/ordnance/storage) +"hlP" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/wrapping_paper{ + pixel_x = -3; + pixel_y = 5 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/carpet/orange, +/area/station/command/heads_quarters/qm) "hlX" = ( /obj/machinery/door/airlock/public/glass{ name = "Old Command Hallway" @@ -20553,21 +20602,6 @@ /obj/effect/spawner/random/structure/girder, /turf/open/floor/tram, /area/station/security/tram) -"hmj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/item/tank/internals/emergency_oxygen{ - pixel_x = 5; - pixel_y = 3 - }, -/obj/item/gps{ - pixel_y = 5; - pixel_x = 13 - }, -/obj/item/storage/toolbox/emergency/old, -/turf/open/floor/iron/dark, -/area/station/commons/storage/tools) "hmk" = ( /obj/structure/chair/stool/directional/east, /turf/open/floor/iron/smooth, @@ -20613,30 +20647,12 @@ dir = 1 }, /area/station/service/bar/backroom) -"hmQ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/item/crowbar/large{ - pixel_y = 18 - }, -/obj/item/clothing/head/costume/pirate{ - pixel_x = 15; - pixel_y = -3 - }, -/obj/item/clothing/suit/hazardvest{ - pixel_x = -3; - pixel_y = -2 - }, -/obj/item/wrench{ - pixel_y = 15 - }, -/turf/open/floor/iron/dark, -/area/station/commons/storage/tools) "hmR" = ( -/obj/effect/turf_decal/loading_area/white, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, /turf/open/floor/iron, -/area/station/cargo/lobby) +/area/station/cargo/storage) "hnf" = ( /obj/item/bikehorn/rubberducky{ pixel_x = -6; @@ -20738,6 +20754,13 @@ /obj/structure/flora/bush/flowers_pp/style_random, /turf/open/misc/sandy_dirt, /area/station/medical/medbay/lobby) +"hpb" = ( +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 8 + }, +/obj/machinery/vending/cigarette, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "hpe" = ( /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/iron, @@ -20787,11 +20810,6 @@ dir = 8 }, /area/station/science/lobby) -"hqH" = ( -/obj/item/reagent_containers/cup/watering_can/wood, -/obj/structure/table, -/turf/open/floor/plating, -/area/station/maintenance/starboard/greater) "hqM" = ( /obj/structure/toiletbong{ dir = 1 @@ -20887,12 +20905,6 @@ /obj/machinery/light/warm/directional/east, /turf/open/floor/iron, /area/station/security/prison) -"hrP" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "hrV" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 5 @@ -21006,6 +21018,18 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) +"huh" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/delivery/white, +/obj/structure/rack, +/obj/item/stack/cable_coil/five, +/obj/item/pickaxe, +/obj/item/wrench, +/obj/item/radio/off, +/turf/open/floor/iron/smooth, +/area/station/commons/storage/tools) "huj" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -21067,13 +21091,6 @@ /obj/effect/mapping_helpers/airlock/access/all/command/general, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/ai_monitored/turret_protected/aisat/maint) -"hvw" = ( -/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ - dir = 1 - }, -/obj/effect/spawner/random/vending/snackvend, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "hvx" = ( /obj/structure/flora/rock/pile/jungle/style_random, /obj/machinery/light/small/directional/north, @@ -21243,6 +21260,25 @@ "hyE" = ( /turf/closed/wall, /area/station/maintenance/starboard/aft) +"hyS" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/engineering{ + name = "Engineering Office" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "atmos_airlock_1" + }, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/turf/open/floor/iron, +/area/station/engineering/atmos/office) "hyW" = ( /obj/effect/turf_decal/weather/dirt{ dir = 10 @@ -21281,6 +21317,16 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/port) +"hzr" = ( +/obj/structure/closet/secure_closet/detective, +/obj/machinery/requests_console/directional/north{ + department = "Detective's Office"; + name = "Detective Requests Console" + }, +/obj/machinery/light/small/directional/west, +/obj/structure/detectiveboard/directional/west, +/turf/open/floor/wood, +/area/station/security/detectives_office) "hzK" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plating, @@ -21339,6 +21385,19 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/maintenance/department/engine/atmos) +"hAO" = ( +/obj/machinery/computer/piratepad_control/civilian{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/machinery/camera/autoname/directional/south, +/obj/machinery/status_display/supply{ + pixel_y = -32 + }, +/turf/open/floor/iron/dark/side, +/area/station/cargo/lobby) "hAW" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -21417,18 +21476,6 @@ }, /turf/open/floor/plating, /area/station/command/heads_quarters/cmo) -"hBJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/item/radio/intercom/directional/south, -/obj/machinery/light/cold/directional/south, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "hBR" = ( /obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ dir = 4 @@ -21625,15 +21672,6 @@ "hEJ" = ( /turf/open/floor/iron/smooth, /area/station/service/library) -"hEK" = ( -/obj/machinery/conveyor{ - id = "mining" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/cargo/miningfoundry) "hFb" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -21697,12 +21735,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, /turf/closed/wall/r_wall, /area/station/maintenance/disposal/incinerator) -"hGa" = ( -/obj/machinery/camera/directional/east{ - c_tag = "Atmospherics Tank - Mix" - }, -/turf/open/floor/engine/vacuum, -/area/station/engineering/atmos) "hGb" = ( /turf/closed/wall/r_wall, /area/station/science/ordnance/storage) @@ -21728,6 +21760,11 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) +"hGA" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/effect/landmark/start/cargo_technician, +/turf/open/floor/iron, +/area/station/cargo/sorting) "hGE" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -21776,6 +21813,16 @@ }, /turf/open/space/basic, /area/space/nearstation) +"hHX" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/landmark/start/quartermaster, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/carpet/orange, +/area/station/command/heads_quarters/qm) "hIi" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -22298,6 +22345,17 @@ }, /turf/open/misc/sandy_dirt, /area/station/security/tram) +"hSn" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "hSK" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/white{ @@ -22489,13 +22547,6 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/dark, /area/station/science/genetics) -"hWa" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible, -/turf/open/floor/iron, -/area/station/engineering/atmos) "hWk" = ( /obj/machinery/vending/coffee, /obj/structure/extinguisher_cabinet/directional/south, @@ -22589,6 +22640,14 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos/project) +"hXM" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/start/depsec/supply, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/smooth, +/area/station/security/checkpoint/supply) "hXU" = ( /turf/closed/wall, /area/station/security/execution/education) @@ -22647,6 +22706,21 @@ dir = 8 }, /area/station/science/lab) +"hYQ" = ( +/obj/structure/disposalpipe/trunk{ + dir = 2 + }, +/obj/machinery/disposal/delivery_chute{ + name = "Security Deliveries" + }, +/obj/structure/sign/departments/security/directional/north, +/obj/effect/turf_decal/tile/red/fourcorners, +/obj/structure/plasticflaps{ + name = "Security Deliveries" + }, +/obj/effect/turf_decal/delivery/white, +/turf/open/floor/iron/dark/side, +/area/station/cargo/sorting) "hYS" = ( /obj/effect/turf_decal/tile/yellow/diagonal_centre, /obj/structure/railing, @@ -22687,27 +22761,12 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/command/meeting_room) -"hZA" = ( -/obj/effect/landmark/start/hangover, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/aft) "hZP" = ( /obj/structure/cable, /obj/structure/sign/poster/official/random/directional/north, /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"hZR" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/spawner/random/structure/closet_empty/crate, -/obj/effect/turf_decal/bot_white, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) "hZT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -22748,14 +22807,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/wood/large, /area/station/command/heads_quarters/captain/private) -"iax" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/structure/sign/poster/official/random/directional/north, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron, -/area/station/hallway/primary/central/aft) "iaA" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/machinery/light/small/directional/north, @@ -22919,12 +22970,6 @@ /obj/structure/table/reinforced, /turf/open/floor/iron/dark, /area/station/medical/medbay/central) -"idb" = ( -/obj/effect/decal/cleanable/oil, -/obj/machinery/byteforge, -/obj/effect/turf_decal/box, -/turf/open/floor/iron/dark/smooth_large, -/area/station/cargo/bitrunning/den) "idd" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -23001,6 +23046,11 @@ /obj/structure/broken_flooring/singular/directional/east, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"idB" = ( +/obj/structure/cable, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "idF" = ( /obj/effect/turf_decal/siding/wood{ dir = 10 @@ -23038,6 +23088,22 @@ /obj/machinery/telecomms/message_server/preset, /turf/open/floor/circuit, /area/station/tcommsat/server) +"iek" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/delivery_chute{ + name = "Engineering Deliveries" + }, +/obj/structure/sign/departments/engineering/directional/north, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/structure/plasticflaps{ + name = "Engineering Deliveries" + }, +/obj/effect/turf_decal/delivery/white, +/obj/machinery/light/warm/directional/north, +/turf/open/floor/iron/dark/side, +/area/station/cargo/sorting) "ieY" = ( /obj/structure/disposalpipe/segment, /obj/effect/mapping_helpers/broken_floor, @@ -23078,11 +23144,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"ifv" = ( -/obj/item/radio/intercom/directional/east, -/obj/machinery/light/warm/directional/east, -/turf/open/floor/iron, -/area/station/cargo/storage) "ifH" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/red/line{ @@ -23231,21 +23292,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/medical/morgue) -"ihD" = ( -/obj/structure/table, -/obj/machinery/status_display/supply{ - pixel_x = 1; - pixel_y = 32 - }, -/obj/machinery/fax/auto_name{ - pixel_x = -1; - pixel_y = 6 - }, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) "ihZ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -23304,6 +23350,24 @@ }, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) +"iiR" = ( +/obj/structure/railing{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/conveyor_switch/oneway{ + pixel_x = 4; + pixel_y = 10; + id = "mining" + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 6 + }, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningfoundry) "iiW" = ( /obj/structure/cable, /turf/open/floor/catwalk_floor/iron_dark, @@ -23317,12 +23381,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"ijp" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/light/small/directional/south, -/obj/effect/turf_decal/tile/red/half/contrasted, -/turf/open/floor/iron/smooth, -/area/station/security/checkpoint/supply) "ijz" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white/small, @@ -23425,22 +23483,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/command/heads_quarters/captain/private) -"ikQ" = ( -/obj/structure/table/wood, -/obj/item/folder/white{ - pixel_x = -3; - pixel_y = 0 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 5 - }, -/obj/item/pen{ - pixel_x = -2; - pixel_y = 4 - }, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/carpet, -/area/station/maintenance/hallway/abandoned_recreation) "ikU" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 10 @@ -23520,19 +23562,6 @@ /obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/iron/white/small, /area/station/science/ordnance/storage) -"ilL" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/cargo/sorting) "ilT" = ( /obj/machinery/door/airlock/external{ name = "Atmospherics External Access" @@ -23633,6 +23662,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/commons/dorms) +"ioJ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/effect/spawner/random/engineering/tracking_beacon, +/turf/open/floor/iron, +/area/station/cargo/lobby) "ioQ" = ( /obj/machinery/portable_atmospherics/scrubber, /obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2{ @@ -23834,6 +23870,14 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/dark, /area/station/security/interrogation) +"iqM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "ira" = ( /obj/structure/tank_dispenser/oxygen, /obj/machinery/light/small/directional/south, @@ -23967,13 +24011,14 @@ "itb" = ( /turf/closed/wall/r_wall/rust, /area/station/ai_monitored/turret_protected/aisat/maint) -"itr" = ( -/obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible{ - dir = 4 +"itf" = ( +/obj/structure/disposalpipe/segment, +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/siding/wood{ + dir = 9 }, -/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible, -/turf/open/floor/iron, -/area/station/engineering/atmos) +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/qm) "itw" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -24143,20 +24188,22 @@ /obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) +"ivC" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/lobby) "ivY" = ( /obj/structure/table/reinforced, /obj/effect/spawner/random/techstorage/tcomms_all, /obj/machinery/light/cold/directional/east, /turf/open/floor/iron, /area/station/engineering/storage/tech) -"iwo" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/junction/flip{ - dir = 4 - }, -/obj/effect/spawner/random/structure/steam_vent, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "iwt" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 8 @@ -24174,13 +24221,6 @@ /obj/structure/cable, /turf/open/floor/wood, /area/station/engineering/atmos/pumproom) -"ixa" = ( -/obj/machinery/rnd/production/techfab/department/cargo, -/obj/effect/turf_decal/delivery/white, -/obj/machinery/light_switch/directional/south, -/obj/machinery/light/warm/directional/south, -/turf/open/floor/iron/smooth, -/area/station/cargo/sorting) "ixl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -24378,6 +24418,11 @@ /obj/machinery/field/generator, /turf/open/floor/iron/dark/small, /area/station/engineering/storage_shared) +"iAt" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/wood, +/area/station/maintenance/hallway/abandoned_recreation) "iAu" = ( /obj/structure/bed{ dir = 4 @@ -24436,6 +24481,15 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"iAL" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "iAM" = ( /obj/effect/turf_decal/siding/wideplating/dark/corner{ dir = 1 @@ -24584,17 +24638,22 @@ /obj/machinery/door/firedoor, /turf/open/floor/catwalk_floor/iron_white, /area/station/science/server) -"iCN" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/cargo/lobby) "iDk" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/wood/tile, /area/station/command/meeting_room) +"iDm" = ( +/obj/structure/cable, +/obj/structure/railing/corner/end{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/thinplating_new, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningfoundry) "iDt" = ( /obj/effect/mapping_helpers/airlock/access/any/security/general, /obj/machinery/door/airlock/security{ @@ -24650,6 +24709,13 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/atmos) +"iEc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/small, +/area/station/engineering/break_room) "iEk" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -24739,10 +24805,42 @@ }, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) +"iFG" = ( +/obj/item/radio/intercom/directional/south, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/grimy, +/area/station/service/library/private) "iFP" = ( /obj/item/kirbyplants/random/fullysynthetic, /turf/open/floor/plating/rust, /area/station/maintenance/hallway/abandoned_command) +"iGb" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/closet/crate, +/obj/effect/turf_decal/bot_white, +/obj/item/clothing/gloves/color/fyellow, +/obj/item/stack/package_wrap{ + pixel_y = 5 + }, +/obj/item/stack/package_wrap{ + pixel_y = 2 + }, +/obj/item/storage/box{ + desc = "It smells of monkey business..."; + name = "Empty Gorillacube Box" + }, +/obj/item/weldingtool, +/obj/item/radio{ + pixel_y = 3; + pixel_x = -6 + }, +/obj/item/assembly/signaler, +/turf/open/floor/iron/smooth, +/area/station/commons/storage/tools) "iGl" = ( /turf/open/floor/plating, /area/station/maintenance/hallway/abandoned_command) @@ -24817,6 +24915,14 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) +"iGW" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/effect/landmark/start/hangover, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron, +/area/station/cargo/lobby) "iHa" = ( /obj/machinery/atmospherics/components/binary/pump/on{ name = "Gas to Cold Loop"; @@ -24927,6 +25033,20 @@ }, /turf/open/floor/iron/dark/textured_edge, /area/station/command/heads_quarters/hop) +"iIG" = ( +/obj/structure/rack, +/obj/item/clothing/gloves/cargo_gauntlet{ + pixel_y = -3 + }, +/obj/item/clothing/gloves/cargo_gauntlet, +/obj/item/clothing/gloves/cargo_gauntlet{ + pixel_y = 3 + }, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/iron/dark/textured_half{ + dir = 1 + }, +/area/station/cargo/storage) "iIK" = ( /obj/effect/turf_decal/bot, /obj/structure/rack, @@ -25017,6 +25137,18 @@ /mob/living/basic/pet/dog/corgi/ian, /turf/open/floor/iron/dark/textured_edge, /area/station/command/heads_quarters/hop) +"iJp" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/trimline/brown/line, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/effect/landmark/start/bitrunner, +/turf/open/floor/iron/dark/smooth_half, +/area/station/cargo/bitrunning/den) "iJq" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -25054,17 +25186,9 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"iJC" = ( -/obj/item/kirbyplants/organic/plant17, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/sign/calendar{ - pixel_x = 0; - pixel_y = -26 - }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/wood, -/area/station/maintenance/hallway/abandoned_recreation) +"iJH" = ( +/turf/closed/wall, +/area/station/security/checkpoint/supply) "iJI" = ( /obj/structure/table/glass, /obj/item/folder/blue, @@ -25121,6 +25245,14 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security/brig/entrance) +"iKn" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "iKo" = ( /obj/structure/broken_flooring/corner/directional/south, /obj/effect/spawner/random/trash/graffiti{ @@ -25197,12 +25329,6 @@ /obj/effect/mapping_helpers/airlock/access/any/command/hop, /turf/open/floor/plating, /area/station/maintenance/department/bridge) -"iLP" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lamp, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) "iLR" = ( /obj/structure/cable, /obj/structure/lattice/catwalk, @@ -25291,12 +25417,6 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) -"iNv" = ( -/obj/structure/chair/stool/directional/east, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/wood, -/area/station/maintenance/hallway/abandoned_recreation) "iNA" = ( /obj/machinery/light/cold/directional/east, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -25527,6 +25647,22 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating/elevatorshaft, /area/station/commons/dorms) +"iQM" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/arrows{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/cargo/sorting) "iQT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment{ @@ -25553,13 +25689,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/small, /area/station/commons/fitness/locker_room) -"iRd" = ( -/obj/effect/spawner/random/trash, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "iRk" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 8 @@ -25581,12 +25710,6 @@ }, /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) -"iRr" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/cargo/warehouse) "iRz" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -25754,16 +25877,15 @@ }, /turf/open/floor/circuit, /area/station/tcommsat/server) -"iUu" = ( -/obj/machinery/computer/cargo/request{ - dir = 1 +"iUA" = ( +/obj/machinery/conveyor{ + id = "mining" }, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/structure/extinguisher_cabinet/directional/south, -/turf/open/floor/iron/dark/side, -/area/station/cargo/lobby) +/turf/open/floor/iron, +/area/station/cargo/miningfoundry) "iUH" = ( /obj/effect/turf_decal/tile/neutral, /obj/machinery/camera/autoname/directional/south, @@ -25772,6 +25894,14 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"iUI" = ( +/obj/structure/railing, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/siding/thinplating_new, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningfoundry) "iUK" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 8 @@ -26110,6 +26240,11 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/dark/smooth_large, /area/station/maintenance/central/lesser) +"iZx" = ( +/obj/structure/cable, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "iZy" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -26195,6 +26330,10 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"jab" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "jar" = ( /obj/machinery/drone_dispenser, /turf/open/misc/asteroid, @@ -26248,14 +26387,6 @@ "jaQ" = ( /turf/open/floor/catwalk_floor/iron_dark, /area/station/security/processing) -"jaW" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "jbd" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -26303,18 +26434,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"jbB" = ( -/obj/effect/turf_decal/siding/thinplating_new/dark{ - dir = 1 - }, -/obj/effect/turf_decal/stripes, -/obj/effect/turf_decal/trimline/brown/line, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/obj/effect/landmark/start/bitrunner, -/turf/open/floor/iron/dark/smooth_half, -/area/station/cargo/bitrunning/den) "jbV" = ( /obj/machinery/photocopier, /turf/open/floor/iron/dark, @@ -26512,6 +26631,11 @@ /obj/machinery/light/dim/directional/north, /turf/open/floor/iron/smooth, /area/station/security/evidence) +"jfP" = ( +/turf/open/floor/iron/stairs{ + dir = 8 + }, +/area/station/cargo/storage) "jfT" = ( /obj/effect/turf_decal/siding/thinplating_new/light{ dir = 1 @@ -26528,6 +26652,20 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/service/greenroom) +"jgj" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/button/door/directional/east{ + id = "qm_warehouse"; + name = "Warehouse Door Control"; + pixel_x = -24; + pixel_y = -24; + req_access = list("cargo") + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/cargo/warehouse) "jgq" = ( /obj/effect/turf_decal/weather/dirt{ dir = 8 @@ -26540,16 +26678,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"jgA" = ( -/obj/machinery/door/airlock/hatch{ - name = "Tool Supply Corridor" - }, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 1 - }, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/cargo/lobby) "jgF" = ( /obj/effect/turf_decal/siding/wideplating/dark{ dir = 1 @@ -26566,19 +26694,6 @@ }, /turf/open/floor/iron, /area/station/security/prison/workout) -"jhc" = ( -/obj/structure/table, -/obj/item/paper/crumpled{ - pixel_x = -27; - pixel_y = 2 - }, -/obj/item/storage/medkit/regular{ - pixel_x = -5; - pixel_y = 6 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron, -/area/station/cargo/sorting) "jhj" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/machinery/computer/station_alert{ @@ -26598,13 +26713,6 @@ /obj/effect/turf_decal/stripes/white/line, /turf/open/floor/plating, /area/station/cargo/miningoffice) -"jhE" = ( -/obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) "jhF" = ( /obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ dir = 4 @@ -26687,19 +26795,6 @@ }, /turf/open/floor/iron/small, /area/station/maintenance/department/engine/atmos) -"jiG" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/cargo/miningfoundry) "jiR" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/engine/vacuum, @@ -26753,53 +26848,6 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron, /area/station/medical/chemistry) -"jjT" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 1 - }, -/turf/open/floor/iron/dark/side{ - dir = 1 - }, -/area/station/cargo/storage) -"jjV" = ( -/obj/effect/turf_decal/siding/white{ - dir = 5 - }, -/obj/structure/table, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/structure/railing{ - dir = 5 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted, -/obj/item/stack/package_wrap{ - pixel_y = 2 - }, -/obj/item/stack/package_wrap{ - pixel_y = 6; - pixel_x = -1 - }, -/obj/item/paper/crumpled{ - pixel_x = 5; - pixel_y = 0 - }, -/turf/open/floor/iron/dark/side{ - dir = 1 - }, -/area/station/cargo/lobby) -"jkn" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/pen{ - pixel_x = -2; - pixel_y = 3 - }, -/turf/open/floor/iron, -/area/station/cargo/sorting) "jkz" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -26841,6 +26889,19 @@ /obj/structure/cable, /turf/open/floor/plating/rust, /area/station/engineering/supermatter/room) +"jln" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/effect/landmark/start/cargo_technician, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "jlt" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -26936,6 +26997,13 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"jmC" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/sign/departments/holy/directional/south, +/obj/machinery/light/cold/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "jmF" = ( /obj/effect/spawner/random/structure/crate, /obj/effect/turf_decal/stripes/line{ @@ -26963,6 +27031,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"jmX" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/item/pen{ + pixel_x = -2; + pixel_y = 4 + }, +/turf/open/floor/carpet, +/area/station/maintenance/hallway/abandoned_recreation) "jmY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -26976,15 +27055,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/catwalk_floor, /area/station/engineering/break_room) -"jng" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/cargo/sorting) "jnh" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -27169,12 +27239,6 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron, /area/station/service/hydroponics) -"jqM" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "jqZ" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -27191,6 +27255,14 @@ }, /turf/open/floor/iron/dark, /area/station/medical/chemistry) +"jro" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron, +/area/station/cargo/sorting) "jrs" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -27205,6 +27277,12 @@ }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"jry" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/cargo/storage) "jrD" = ( /obj/effect/turf_decal/siding/wideplating{ dir = 4 @@ -27319,6 +27397,10 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/iron/diagonal, /area/station/command/heads_quarters/hop) +"jtB" = ( +/obj/effect/turf_decal/stripes/white/corner, +/turf/open/floor/iron/dark/corner, +/area/station/cargo/storage) "jtD" = ( /obj/structure/closet/emcloset, /turf/open/floor/iron/showroomfloor, @@ -27347,20 +27429,11 @@ /obj/machinery/status_display/ai/directional/east, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"jue" = ( -/obj/effect/turf_decal/siding/red, -/obj/item/kirbyplants/random, -/turf/open/floor/iron, -/area/station/cargo/storage) -"jus" = ( +"juo" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/structure/cable, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood/corner, -/turf/open/floor/carpet/red, -/area/station/command/heads_quarters/qm) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningfoundry) "juS" = ( /obj/structure/bed, /obj/item/bedsheet/hop, @@ -27368,18 +27441,14 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/grimy, /area/station/command/heads_quarters/hop) -"juY" = ( -/obj/structure/hedge, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/light_switch/directional/east, -/obj/machinery/light/warm/directional/east, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) +"juU" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light_switch/directional/west, +/obj/effect/landmark/event_spawn, +/obj/machinery/portable_atmospherics/pump/lil_pump, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "jvd" = ( /obj/effect/turf_decal/siding/thinplating{ dir = 1 @@ -27395,17 +27464,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark/small, /area/station/command/heads_quarters/captain/private) -"jvm" = ( -/obj/machinery/door/airlock/engineering/glass/critical{ - heat_proof = 1; - name = "Supermatter Chamber" - }, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "jvB" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -27661,9 +27719,6 @@ dir = 4 }, /area/station/command/heads_quarters/captain/private) -"jyP" = ( -/turf/open/floor/iron/dark, -/area/station/cargo/lobby) "jyY" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock{ @@ -27743,6 +27798,16 @@ /obj/machinery/light/small/dim/directional/south, /turf/open/floor/iron/dark, /area/station/engineering/lobby) +"jAN" = ( +/obj/machinery/computer/cargo{ + dir = 1 + }, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "jAR" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/machinery/airalarm/directional/east, @@ -27752,13 +27817,6 @@ /obj/structure/closet/firecloset, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) -"jBn" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/cargo/sorting) "jBo" = ( /obj/effect/turf_decal/siding/thinplating_new{ dir = 6 @@ -27796,6 +27854,42 @@ /obj/machinery/flasher/directional/north, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) +"jBJ" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/left/directional/west{ + name = "Cargo Desk"; + req_access = list("shipping") + }, +/obj/structure/desk_bell{ + pixel_x = 7 + }, +/obj/item/paper_bin{ + pixel_x = -7; + pixel_y = 6 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/item/pen{ + pixel_x = 8; + pixel_y = 8 + }, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/cargo/office) +"jBN" = ( +/obj/machinery/piratepad/civilian, +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/machinery/light/cold/dim/directional/south, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/iron/dark/side, +/area/station/cargo/lobby) "jBQ" = ( /obj/effect/turf_decal/tile/dark_red/fourcorners, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -27972,6 +28066,19 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) +"jFg" = ( +/obj/structure/table/wood/fancy/green, +/obj/item/paperplane{ + pixel_x = 7; + pixel_y = 7 + }, +/obj/item/paperplane{ + pixel_x = -1; + pixel_y = 1 + }, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "jFh" = ( /obj/item/kirbyplants/random, /turf/open/floor/iron, @@ -28036,12 +28143,6 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/plating, /area/station/maintenance/disposal/incinerator) -"jGx" = ( -/obj/structure/table/wood, -/obj/item/paper_bin, -/obj/item/pen, -/turf/open/floor/carpet/lone, -/area/station/service/chapel/office) "jGy" = ( /obj/machinery/power/apc/auto_name/directional/north, /obj/machinery/vending/wardrobe/bar_wardrobe, @@ -28062,6 +28163,15 @@ dir = 1 }, /area/station/hallway/secondary/entry) +"jGC" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/white/corner{ + dir = 8 + }, +/turf/open/floor/iron/dark/corner{ + dir = 8 + }, +/area/station/cargo/storage) "jGK" = ( /obj/structure/chair/wood, /obj/structure/cable, @@ -28155,6 +28265,11 @@ /mob/living/basic/sloth/citrus, /turf/open/floor/iron, /area/station/cargo/storage) +"jHC" = ( +/obj/effect/spawner/random/structure/crate, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "jHI" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 5 @@ -28173,6 +28288,21 @@ /obj/structure/chair/stool/directional/north, /turf/open/floor/plating, /area/station/maintenance/disposal/incinerator) +"jHN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/electrical) +"jHS" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Engineering Storage" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/engine_equipment, +/turf/open/floor/iron/smooth_half{ + dir = 8 + }, +/area/station/engineering/main) "jHU" = ( /obj/structure/chair/sofa/bench/left{ dir = 8 @@ -28180,16 +28310,6 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/science/lobby) -"jHW" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/turf/open/floor/iron/dark/side{ - dir = 4 - }, -/area/station/cargo/storage) "jIc" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock{ @@ -28224,6 +28344,12 @@ /obj/structure/window/spawner/directional/south, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"jIn" = ( +/obj/item/radio/intercom/directional/north, +/obj/machinery/firealarm/directional/west, +/obj/machinery/vending/cytopro, +/turf/open/floor/iron/white, +/area/station/science/cytology) "jIy" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -28254,6 +28380,39 @@ }, /turf/open/floor/wood, /area/station/engineering/main) +"jJw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/cargo/storage) +"jJB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/sorting) +"jJO" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/chair/stool/directional/east, +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/newscaster/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/maintenance/hallway/abandoned_recreation) "jJP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -28293,6 +28452,14 @@ dir = 1 }, /area/station/science/xenobiology) +"jKl" = ( +/obj/effect/landmark/start/cargo_technician, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/cargo/warehouse) "jKq" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -28329,6 +28496,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/maintenance/starboard/greater) +"jLt" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/item/kirbyplants/random, +/turf/open/floor/iron/white, +/area/station/science/cytology) "jLv" = ( /obj/effect/turf_decal/bot{ dir = 1 @@ -28412,15 +28586,6 @@ /obj/structure/spider/stickyweb, /turf/open/floor/iron/small, /area/station/maintenance/department/engine/atmos) -"jMQ" = ( -/obj/machinery/atmospherics/components/binary/pump/off{ - name = "O2 To Pure" - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "jMX" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -28482,6 +28647,13 @@ /obj/machinery/status_display/evac/directional/west, /turf/open/misc/sandy_dirt, /area/station/hallway/primary/central/fore) +"jNV" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "jOb" = ( /obj/machinery/firealarm/directional/east, /obj/effect/turf_decal/siding/wideplating/dark{ @@ -28564,6 +28736,10 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/fore/greater) +"jPl" = ( +/obj/machinery/button/ignition/incinerator/atmos, +/turf/closed/wall/r_wall, +/area/station/maintenance/disposal/incinerator) "jPo" = ( /obj/structure/cable, /obj/machinery/door/airlock/maintenance{ @@ -28613,6 +28789,14 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron/small, /area/station/commons/fitness/locker_room) +"jQG" = ( +/obj/machinery/holopad, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/chair/stool/directional/south, +/turf/open/floor/iron, +/area/station/cargo/sorting) "jQW" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -28899,23 +29083,6 @@ /obj/item/instrument/harmonica, /turf/open/floor/iron, /area/station/security/prison/rec) -"jUr" = ( -/obj/item/cigarette, -/obj/item/storage/fancy/cigarettes/cigpack_robust{ - pixel_y = 5; - pixel_x = 6 - }, -/obj/item/lighter, -/obj/structure/sign/poster/official/random/directional/east, -/obj/structure/table, -/obj/effect/turf_decal/tile/neutral/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 6 - }, -/turf/open/floor/iron/small, -/area/station/hallway/secondary/service) "jUx" = ( /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, @@ -28927,15 +29094,6 @@ /obj/machinery/atmospherics/pipe/bridge_pipe/scrubbers/visible, /turf/open/floor/iron, /area/station/engineering/atmos) -"jUz" = ( -/obj/structure/table, -/obj/item/restraints/handcuffs/cable/red{ - pixel_x = 1; - pixel_y = 6 - }, -/obj/item/storage/toolbox/mechanical, -/turf/open/floor/iron, -/area/station/cargo/sorting) "jUA" = ( /obj/item/kirbyplants/random, /obj/structure/disposalpipe/segment{ @@ -28982,18 +29140,6 @@ "jVM" = ( /turf/closed/wall, /area/station/maintenance/central/greater) -"jVS" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/cargo/lobby) -"jVV" = ( -/obj/structure/cable, -/obj/machinery/door/airlock/maintenance, -/obj/effect/mapping_helpers/airlock/access/all/supply/general, -/turf/open/floor/plating, -/area/station/cargo/warehouse) "jVY" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, @@ -29280,9 +29426,6 @@ /obj/effect/turf_decal/stripes/box, /turf/open/floor/plating, /area/station/service/janitor) -"kas" = ( -/turf/closed/wall, -/area/station/cargo/lobby) "kat" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -29401,20 +29544,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/showroomfloor, /area/station/medical/surgery/theatre) -"kcM" = ( -/obj/structure/disposalpipe/trunk, -/obj/machinery/disposal/delivery_chute{ - name = "Medical Deliveries" - }, -/obj/effect/turf_decal/tile/blue/fourcorners, -/obj/effect/turf_decal/stripes/corner, -/obj/structure/plasticflaps{ - name = "Medical Deliveries" - }, -/obj/effect/turf_decal/delivery/white, -/obj/structure/sign/departments/med/directional/north, -/turf/open/floor/iron/dark/side, -/area/station/cargo/sorting) "kcQ" = ( /obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ dir = 1 @@ -29468,13 +29597,6 @@ /obj/machinery/light_switch/directional/west, /turf/open/floor/iron/white/small, /area/station/science/server) -"kec" = ( -/obj/machinery/light/floor, -/obj/structure/flora/bush/flowers_br/style_3, -/obj/structure/flora/bush/flowers_yw, -/obj/structure/flora/bush/flowers_pp, -/turf/open/floor/grass, -/area/station/hallway/primary/central/fore) "kel" = ( /obj/machinery/light/cold/directional/south, /obj/machinery/modular_computer/preset/id{ @@ -29494,11 +29616,6 @@ "ket" = ( /turf/open/floor/iron, /area/station/security/prison/work) -"kev" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "keL" = ( /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood, @@ -29586,6 +29703,16 @@ dir = 1 }, /area/station/hallway/primary/aft) +"kgp" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/lobby) "kgu" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/components/unary/passive_vent, @@ -29638,6 +29765,24 @@ /obj/structure/tram, /turf/open/floor/tram, /area/station/security/tram) +"khw" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/arrows{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/cargo/sorting) "khD" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/reagent_dispensers/watertank, @@ -29652,13 +29797,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/construction) -"khK" = ( -/obj/effect/spawner/structure/window, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/plating, -/area/station/cargo/office) "khQ" = ( /obj/structure/transport/linear/tram, /obj/structure/fluff/tram_rail/floor, @@ -29703,6 +29841,12 @@ }, /turf/open/floor/grass/Airless, /area/station/hallway/primary/central/aft) +"kik" = ( +/obj/structure/chair/stool/directional/east, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/maintenance/hallway/abandoned_recreation) "kit" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -29759,10 +29903,24 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/construction/mining/aux_base) +"kiW" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/sorting) "kiY" = ( /obj/structure/flora/tree/jungle/style_6, /turf/open/floor/grass, /area/station/service/chapel) +"kjb" = ( +/obj/structure/hedge, +/obj/structure/sign/poster/contraband/random/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "kjg" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -29866,11 +30024,32 @@ /obj/machinery/light/small/dim/directional/east, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) -"kkx" = ( -/obj/structure/disposalpipe/segment{ +"kkD" = ( +/obj/effect/turf_decal/siding/white{ + dir = 5 + }, +/obj/structure/table, +/obj/effect/turf_decal/tile/brown{ dir = 4 }, -/turf/closed/wall, +/obj/structure/railing{ + dir = 5 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted, +/obj/item/stack/package_wrap{ + pixel_y = 2 + }, +/obj/item/stack/package_wrap{ + pixel_y = 6; + pixel_x = -1 + }, +/obj/item/paper/crumpled{ + pixel_x = 5; + pixel_y = 0 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, /area/station/cargo/lobby) "kkK" = ( /obj/effect/spawner/random/structure/closet_maintenance, @@ -29927,6 +30106,13 @@ dir = 1 }, /area/station/engineering/atmos) +"klA" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Plasma to Pure" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "klF" = ( /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 4 @@ -30091,6 +30277,10 @@ "knv" = ( /turf/closed/wall, /area/station/maintenance/department/engine/atmos) +"knw" = ( +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/supermatter/room) "knB" = ( /obj/machinery/door/airlock{ id_tag = "Toilet2"; @@ -30116,6 +30306,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white/small, /area/station/commons/toilet/restrooms) +"knR" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "knV" = ( /obj/structure/closet/l3closet, /obj/effect/turf_decal/stripes/line{ @@ -30359,6 +30554,12 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/iron/dark/diagonal, /area/station/service/bar) +"ksq" = ( +/obj/structure/chair/stool/directional/south, +/obj/machinery/light/small/directional/north, +/obj/structure/mirror/directional/north, +/turf/open/floor/iron/grimy, +/area/station/cargo/boutique) "ksv" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 8 @@ -30377,6 +30578,10 @@ }, /turf/open/floor/catwalk_floor/iron, /area/station/engineering/gravity_generator) +"ksE" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "ksJ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -30528,18 +30733,6 @@ /obj/structure/chair, /turf/open/floor/iron, /area/station/commons/storage/tools) -"kuX" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/structure/chair/comfy/brown{ - buildstackamount = 0; - color = "#c45c57"; - dir = 8 - }, -/turf/open/floor/iron/grimy, -/area/station/service/library/private) "kvl" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -30632,6 +30825,20 @@ /obj/structure/window/spawner/directional/north, /turf/open/space/basic, /area/space/nearstation) +"kxa" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/door/airlock/mining{ + name = "Mining Office" + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/mining, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) "kxb" = ( /obj/structure/table/reinforced/titaniumglass, /obj/effect/turf_decal/bot, @@ -30663,6 +30870,10 @@ /obj/machinery/firealarm/directional/north, /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) +"kxu" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/iron/small, +/area/station/cargo/lobby) "kxE" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/airlock/research/glass{ @@ -30678,19 +30889,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/fore/greater) -"kxG" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/structure/table, -/obj/effect/turf_decal/delivery/white, -/obj/machinery/microwave{ - pixel_y = 6 - }, -/obj/machinery/camera/autoname/directional/south, -/obj/structure/sign/poster/official/random/directional/south, -/turf/open/floor/iron/smooth, -/area/station/cargo/sorting) "kxL" = ( /turf/open/floor/iron/dark/small, /area/station/hallway/secondary/entry) @@ -30770,25 +30968,11 @@ }, /turf/open/floor/iron/white/corner, /area/station/hallway/secondary/exit/departure_lounge) -"kzG" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/door/poddoor/shutters{ - id = "qm_warehouse_aft"; - name = "Warehouse Shutters" - }, -/turf/open/floor/plating, -/area/station/cargo/warehouse) "kzI" = ( /obj/effect/turf_decal/bot_white, /obj/effect/spawner/random/structure/closet_empty/crate, /turf/open/floor/iron/smooth_large, /area/station/cargo/warehouse) -"kzM" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/camera/autoname/directional/west, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "kzP" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/trash, @@ -30822,13 +31006,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/small, /area/station/hallway/primary/fore) -"kAr" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/station/cargo/office) "kAz" = ( /obj/machinery/power/energy_accumulator/tesla_coil/anchored, /obj/structure/window/reinforced/plasma/spawner/directional/north, @@ -30978,10 +31155,6 @@ /obj/structure/chair/stool/directional/north, /turf/open/floor/carpet/purple, /area/station/commons/dorms) -"kDP" = ( -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/cargo/lobby) "kEd" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -31059,15 +31232,6 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) -"kFz" = ( -/obj/effect/mapping_helpers/broken_floor, -/obj/structure/sign/poster/random/directional/east, -/obj/machinery/conveyor{ - id = "mining" - }, -/obj/machinery/brm, -/turf/open/floor/iron, -/area/station/cargo/miningfoundry) "kFA" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -31211,15 +31375,6 @@ }, /turf/open/floor/iron, /area/station/security) -"kHR" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/radio/intercom/directional/south, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "kHX" = ( /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, @@ -31231,14 +31386,6 @@ /obj/structure/window/spawner/directional/east, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) -"kIl" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/effect/spawner/random/structure/steam_vent, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "kIm" = ( /obj/machinery/camera/autoname/directional/south, /obj/machinery/light/small/directional/south, @@ -31315,6 +31462,14 @@ /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/plating, /area/station/ai_monitored/security/armory) +"kJu" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/landmark/start/cargo_technician, +/obj/structure/chair/stool/directional/south, +/turf/open/floor/iron, +/area/station/cargo/sorting) "kJJ" = ( /obj/structure/cable, /obj/effect/mapping_helpers/broken_floor, @@ -31362,17 +31517,6 @@ }, /turf/open/floor/wood/parquet, /area/station/service/library) -"kKF" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/chair/stool/directional/east, -/obj/effect/landmark/start/quartermaster, -/obj/structure/cable, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/carpet/red, -/area/station/command/heads_quarters/qm) "kKT" = ( /obj/machinery/computer/camera_advanced/xenobio{ dir = 4 @@ -31415,6 +31559,27 @@ "kMe" = ( /turf/open/floor/iron/smooth_large, /area/station/engineering/supermatter/room) +"kMg" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/engineering{ + name = "Engineering Office" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "atmos_airlock_1" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/turf/open/floor/iron, +/area/station/engineering/atmos/office) "kMm" = ( /obj/structure/chair/sofa/right/brown{ dir = 1 @@ -31439,6 +31604,31 @@ /obj/machinery/holopad, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs) +"kMY" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/brown/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/door/airlock/mining{ + name = "Bitrunning Den" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/any/supply/bit_den, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark/smooth_half{ + dir = 1 + }, +/area/station/cargo/bitrunning/den) "kNf" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -31457,10 +31647,6 @@ /obj/structure/closet/firecloset, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"kNv" = ( -/obj/machinery/air_sensor/mix_tank, -/turf/open/floor/engine/vacuum, -/area/station/engineering/atmos) "kNx" = ( /turf/open/floor/engine/o2, /area/station/engineering/atmos) @@ -31517,6 +31703,15 @@ /obj/structure/cable, /turf/closed/wall/r_wall, /area/station/maintenance/solars/port/aft) +"kOA" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/sign/poster/random/directional/east, +/obj/machinery/conveyor{ + id = "mining" + }, +/obj/machinery/brm, +/turf/open/floor/iron, +/area/station/cargo/miningfoundry) "kOG" = ( /obj/structure/cable, /obj/machinery/door/airlock/external{ @@ -31564,6 +31759,14 @@ /obj/machinery/light/cold/directional/south, /turf/open/floor/iron/white/small, /area/station/security/warden) +"kPh" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/sign/poster/official/random/directional/north, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "kPk" = ( /obj/structure/chair/sofa/bench{ dir = 1 @@ -31614,6 +31817,15 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) +"kQj" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "kQk" = ( /obj/effect/turf_decal/siding/wood{ dir = 5 @@ -31628,6 +31840,9 @@ /obj/machinery/holopad, /turf/open/floor/iron, /area/station/cargo/storage) +"kRb" = ( +/turf/open/floor/iron, +/area/station/cargo/sorting) "kRi" = ( /obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ dir = 4 @@ -31723,11 +31938,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) -"kSN" = ( -/obj/effect/mapping_helpers/broken_floor, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/wood, -/area/station/maintenance/hallway/abandoned_recreation) "kTm" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/siding/wood{ @@ -31977,17 +32187,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/security/checkpoint/escape) -"kYT" = ( -/obj/structure/reagent_dispensers/watertank/high, -/obj/effect/turf_decal/siding/thinplating_new/light{ - dir = 9 - }, -/obj/machinery/light/small/dim/directional/north, -/obj/effect/turf_decal/delivery/white{ - color = "#52B4E9" - }, -/turf/open/floor/iron/white/small, -/area/station/service/hydroponics) "kYY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -32090,13 +32289,6 @@ }, /turf/open/floor/iron/small, /area/station/hallway/primary/central/aft) -"lam" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/landmark/event_spawn, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/lobby) "laF" = ( /obj/structure/table, /obj/effect/turf_decal/siding/thinplating_new/terracotta{ @@ -32141,6 +32333,10 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/port/aft) +"lbe" = ( +/obj/structure/sign/poster/official/random/directional/north, +/turf/open/floor/iron/dark, +/area/station/cargo/lobby) "lbG" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 1 @@ -32551,10 +32747,6 @@ /obj/item/camera, /turf/open/floor/iron, /area/station/security/prison/workout) -"lhd" = ( -/obj/structure/water_source/puddle, -/turf/open/floor/grass, -/area/station/security/prison/garden) "lhi" = ( /obj/machinery/airalarm/directional/north, /obj/machinery/button/door/directional/north{ @@ -32772,12 +32964,6 @@ }, /turf/open/floor/iron, /area/station/security/prison/rec) -"ljK" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/west, -/turf/open/floor/iron/smooth, -/area/station/cargo/lobby) "ljN" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -32867,6 +33053,18 @@ /obj/structure/flora/rock/pile/jungle/style_4, /turf/open/floor/grass, /area/station/service/chapel) +"lkL" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/pen{ + pixel_x = -2; + pixel_y = 3 + }, +/turf/open/floor/iron, +/area/station/cargo/sorting) "lkN" = ( /obj/effect/turf_decal/siding/wideplating{ dir = 1 @@ -32957,23 +33155,30 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"lmp" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/chair/stool/directional/west, +/obj/machinery/airalarm/directional/east, +/obj/machinery/light/small/directional/east, +/turf/open/floor/wood, +/area/station/maintenance/hallway/abandoned_recreation) "lmz" = ( /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "lmJ" = ( /turf/open/floor/iron, /area/station/engineering/atmos/project) -"lng" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"lmZ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, -/obj/structure/cable, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/light/warm/directional/north, +/obj/effect/landmark/navigate_destination/bar, +/obj/machinery/camera/autoname/directional/west, +/obj/machinery/light/small/directional/west, /turf/open/floor/iron, -/area/station/cargo/storage) +/area/station/hallway/primary/central/fore) "lnu" = ( /obj/machinery/holopad, /turf/open/floor/iron/dark, @@ -33024,6 +33229,17 @@ /obj/structure/ore_box, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"lnL" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/structure/chair{ + dir = 4; + pixel_y = -2 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "lnM" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/window/brigdoor/right/directional/north{ @@ -33059,10 +33275,6 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron, /area/station/service/hydroponics) -"lnV" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "lnW" = ( /obj/effect/turf_decal/tile/neutral/full, /obj/structure/chair{ @@ -33214,6 +33426,22 @@ "lqC" = ( /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/aft) +"lqK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "lqL" = ( /obj/effect/landmark/transport/nav_beacon/tram/platform/birdshot/prison_wing, /turf/open/floor/tram, @@ -33247,6 +33475,12 @@ /obj/effect/landmark/start/assistant, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) +"lrN" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Atmospherics Tank - Mix" + }, +/turf/open/floor/engine/vacuum, +/area/station/engineering/atmos) "lrP" = ( /obj/machinery/computer/security{ dir = 8 @@ -33281,6 +33515,10 @@ /obj/structure/closet/emcloset, /turf/open/floor/plating, /area/station/engineering/supermatter/room) +"lsH" = ( +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "lsO" = ( /obj/machinery/status_display/evac/directional/south, /turf/open/floor/iron/white/side{ @@ -33369,6 +33607,13 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/commons/dorms) +"lud" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light_switch/directional/south, +/obj/machinery/light/small/directional/south, +/turf/open/floor/wood, +/area/station/maintenance/hallway/abandoned_recreation) "lun" = ( /obj/machinery/door/firedoor, /obj/effect/mapping_helpers/airlock/access/all/command/general, @@ -33482,9 +33727,13 @@ /obj/effect/landmark/blobstart, /turf/open/floor/iron/small, /area/station/maintenance/department/engine/atmos) -"lvL" = ( -/turf/closed/wall/rust, -/area/station/cargo/lobby) +"lvN" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/sorting) "lvS" = ( /obj/machinery/porta_turret/ai{ dir = 4 @@ -33533,17 +33782,6 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"lwx" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/structure/hedge, -/obj/effect/turf_decal/siding/thinplating_new/end{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/cargo/storage) "lwI" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/machinery/computer/security/mining{ @@ -33602,6 +33840,10 @@ dir = 1 }, /area/station/commons/fitness/locker_room) +"lxE" = ( +/obj/effect/spawner/random/structure/closet_empty/crate, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "lxI" = ( /obj/effect/turf_decal/siding/wood/end, /obj/effect/spawner/random/engineering/atmospherics_portable, @@ -33736,6 +33978,10 @@ dir = 1 }, /area/station/command/bridge) +"lAM" = ( +/obj/effect/spawner/random/structure/girder, +/turf/open/floor/plating, +/area/station/maintenance/department/electrical) "lAO" = ( /obj/effect/mapping_helpers/broken_floor, /obj/effect/decal/cleanable/dirt, @@ -33883,21 +34129,6 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/engineering/lobby) -"lCJ" = ( -/obj/machinery/light/small/directional/east, -/obj/machinery/light_switch/directional/east, -/obj/effect/mapping_helpers/turn_off_lights_with_lightswitch, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/white/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/bot_white, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) "lCK" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -33989,20 +34220,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"lEs" = ( -/obj/structure/extinguisher_cabinet/directional/east, -/obj/effect/turf_decal/tile/neutral/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 4 - }, -/obj/machinery/computer/order_console/cook{ - dir = 8 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/iron/small, -/area/station/hallway/secondary/service) "lEJ" = ( /obj/machinery/door/poddoor{ id = "QMLoaddoor"; @@ -34042,6 +34259,13 @@ "lER" = ( /turf/open/floor/iron/dark, /area/station/maintenance/department/engine/atmos) +"lFb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "lFg" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -34112,23 +34336,6 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron, /area/station/science/lower) -"lGM" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/machinery/camera/autoname/directional/west, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) -"lGO" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/security/prison/garden) "lHb" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/computer/robotics, @@ -34193,10 +34400,6 @@ /obj/machinery/shower/directional/east, /turf/open/floor/iron/dark, /area/station/medical/pharmacy) -"lHK" = ( -/obj/structure/closet, -/turf/open/floor/iron/smooth, -/area/station/cargo/lobby) "lHS" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/chair/stool/directional/east, @@ -34223,12 +34426,6 @@ dir = 1 }, /area/station/command/heads_quarters/qm) -"lHU" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/smooth, -/area/station/cargo/warehouse) "lHW" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -34287,26 +34484,6 @@ dir = 8 }, /area/station/science/xenobiology) -"lIP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/red/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/red/line{ - dir = 8 - }, -/obj/structure/sign/directions/supply/directional/west{ - pixel_x = 0; - pixel_y = 39 - }, -/obj/structure/sign/directions/vault/directional/west{ - dir = 2; - pixel_x = 0; - pixel_y = 30 - }, -/turf/open/floor/iron/small, -/area/station/hallway/primary/central/fore) "lJe" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -34336,6 +34513,18 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload_foyer) +"lKf" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/machinery/camera/autoname/directional/west, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "lKg" = ( /obj/machinery/firealarm/directional/east, /turf/open/floor/wood, @@ -34442,17 +34631,6 @@ dir = 9 }, /area/station/hallway/secondary/construction) -"lLM" = ( -/obj/structure/table, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/item/folder/yellow{ - pixel_x = -3; - pixel_y = 3 - }, -/turf/open/floor/iron, -/area/station/cargo/sorting) "lLX" = ( /turf/open/floor/iron/showroomfloor, /area/station/medical/surgery/theatre) @@ -34563,15 +34741,6 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron/diagonal, /area/station/engineering/lobby) -"lNN" = ( -/obj/structure/table, -/obj/item/toy/foamblade, -/obj/item/analyzer{ - pixel_y = 8; - pixel_x = -9 - }, -/turf/open/floor/iron/dark/small, -/area/station/commons/fitness/locker_room) "lNQ" = ( /obj/effect/turf_decal/bot_white/right, /obj/machinery/firealarm/directional/north, @@ -34586,6 +34755,11 @@ /obj/effect/landmark/navigate_destination/court, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"lOg" = ( +/obj/effect/spawner/random/structure/grille, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "lOi" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -34631,9 +34805,6 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/cargo/miningoffice) -"lPm" = ( -/turf/closed/wall, -/area/station/maintenance/hallway/abandoned_recreation) "lPo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/landmark/start/assistant, @@ -34642,6 +34813,30 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"lPv" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/table, +/obj/item/folder/red{ + pixel_y = 3 + }, +/obj/item/food/monkeycube/bee{ + name = "monkey cube"; + pixel_y = 17 + }, +/obj/item/food/monkeycube/chicken{ + pixel_y = 15; + pixel_x = 6; + name = "monkey cube"; + desc = "A new Nanotrasen classic, the monkey cube. Tastes like everything!" + }, +/obj/item/wirecutters{ + pixel_y = 6 + }, +/turf/open/floor/iron/dark, +/area/station/commons/storage/tools) "lPC" = ( /obj/structure/bookcase/random, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -34668,15 +34863,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/security/execution/education) -"lQc" = ( -/obj/structure/chair/office{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 6 - }, -/turf/open/floor/carpet, -/area/station/maintenance/hallway/abandoned_recreation) "lQh" = ( /turf/open/floor/iron/small, /area/station/maintenance/port/aft) @@ -34729,14 +34915,6 @@ /obj/structure/broken_flooring/singular/directional/east, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"lRf" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/effect/landmark/start/cargo_technician, -/obj/structure/chair/stool/directional/south, -/turf/open/floor/iron, -/area/station/cargo/sorting) "lRh" = ( /obj/effect/landmark/start/scientist, /obj/machinery/light/small/directional/north, @@ -34961,15 +35139,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) -"lVv" = ( -/obj/structure/chair/stool/directional/south, -/obj/effect/turf_decal/siding/yellow{ - dir = 1 - }, -/obj/effect/landmark/start/atmospheric_technician, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/engineering/break_room) "lVy" = ( /obj/effect/turf_decal/tile/green/anticorner/contrasted{ dir = 8 @@ -35027,6 +35196,21 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) +"lWE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 5; + pixel_y = 3 + }, +/obj/item/gps{ + pixel_y = 5; + pixel_x = 13 + }, +/obj/item/storage/toolbox/emergency/old, +/turf/open/floor/iron/dark, +/area/station/commons/storage/tools) "lWV" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -35086,6 +35270,15 @@ }, /turf/open/floor/wood/tile, /area/station/science/lower) +"lXM" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/obj/machinery/light/small/directional/south, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/lone, +/area/station/service/chapel/office) "lXR" = ( /obj/structure/disposalpipe/junction, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -35116,6 +35309,17 @@ /obj/machinery/light/warm/directional/north, /turf/open/floor/iron, /area/station/commons/dorms) +"lYe" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/window/spawner/directional/west, +/obj/effect/turf_decal/stripes/end, +/obj/structure/disposaloutlet{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/cargo/sorting) "lYf" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -35280,17 +35484,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/hallway/secondary/dock) -"lZP" = ( -/obj/structure/table, -/obj/item/toy/eightball{ - pixel_x = -4 - }, -/obj/item/wirecutters{ - pixel_y = 17; - pixel_x = 4 - }, -/turf/open/floor/iron/dark/small, -/area/station/commons/fitness/locker_room) "lZR" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/duct, @@ -35303,6 +35496,12 @@ }, /turf/open/floor/grass, /area/station/service/chapel) +"mac" = ( +/obj/structure/hedge, +/obj/item/radio/intercom/directional/south, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "mae" = ( /obj/structure/cable, /turf/closed/wall, @@ -35370,24 +35569,6 @@ /obj/structure/fluff/broken_canister_frame, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"mbH" = ( -/obj/structure/disposalpipe/trunk{ - dir = 2 - }, -/obj/machinery/disposal/delivery_chute{ - name = "Service Deliveries" - }, -/obj/structure/sign/departments/botany/directional/north, -/obj/effect/turf_decal/tile/green/fourcorners, -/obj/structure/plasticflaps{ - name = "Service Deliveries" - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/effect/turf_decal/delivery/white, -/turf/open/floor/iron/dark/side, -/area/station/cargo/sorting) "mbP" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/machinery/requests_console/directional/north{ @@ -35399,17 +35580,6 @@ /obj/structure/disposalpipe/trunk, /turf/open/floor/iron/small, /area/station/engineering/atmos/office) -"mbS" = ( -/obj/machinery/door/airlock/command/glass{ - name = "Quartermaster's Office" - }, -/obj/effect/mapping_helpers/airlock/access/all/supply/qm, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/dark/textured_half{ - dir = 1 - }, -/area/station/command/heads_quarters/qm) "mbV" = ( /obj/effect/spawner/random/entertainment/arcade, /turf/open/floor/eighties/red, @@ -35509,6 +35679,10 @@ /obj/effect/landmark/start/chief_medical_officer, /turf/open/floor/wood/parquet, /area/station/command/heads_quarters/cmo) +"mdp" = ( +/obj/structure/water_source/puddle, +/turf/open/floor/grass, +/area/station/security/prison/garden) "mdr" = ( /obj/effect/spawner/random/structure/girder, /turf/open/floor/tram, @@ -35535,6 +35709,14 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/commons/fitness/recreation/entertainment) +"mek" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/holopad, +/mob/living/basic/chick/permanent{ + name = "Morgan" + }, +/turf/open/floor/iron/smooth, +/area/station/command/heads_quarters/qm) "meu" = ( /turf/closed/wall, /area/station/command/heads_quarters/captain) @@ -35585,10 +35767,6 @@ /obj/effect/mapping_helpers/mail_sorting/science/ordnance, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) -"mfx" = ( -/obj/effect/turf_decal/stripes/white/line, -/turf/open/floor/iron/dark/side, -/area/station/cargo/storage) "mfB" = ( /obj/structure/table/wood, /obj/item/book/bible, @@ -35615,23 +35793,6 @@ /obj/machinery/recharger, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs) -"mgd" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 5 - }, -/obj/structure/table/glass, -/obj/item/flashlight/lamp/green{ - pixel_x = 2; - pixel_y = 9 - }, -/obj/item/taperecorder{ - pixel_x = -15; - pixel_y = 3 - }, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/machinery/light_switch/directional/north, -/turf/open/floor/iron/grimy, -/area/station/service/library/private) "mgt" = ( /obj/machinery/vending/boozeomat, /obj/machinery/firealarm/directional/south, @@ -35761,6 +35922,20 @@ /obj/item/clothing/under/costume/skeleton, /turf/open/floor/eighties, /area/station/service/abandoned_gambling_den/gaming) +"mjh" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/holopad, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable, +/turf/open/floor/iron/small, +/area/station/engineering/break_room) "mjr" = ( /obj/machinery/vending/dinnerware, /obj/machinery/requests_console/auto_name/directional/south, @@ -35873,6 +36048,14 @@ /obj/structure/alien/weeds, /turf/open/floor/iron, /area/station/maintenance/starboard/greater) +"mln" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, +/obj/machinery/light/small/directional/west, +/obj/machinery/airlock_sensor/incinerator_atmos{ + pixel_y = -20 + }, +/turf/open/floor/engine, +/area/station/maintenance/disposal/incinerator) "mlp" = ( /obj/structure/chair/stool/bar/directional/south, /obj/effect/turf_decal/siding/wood{ @@ -35977,11 +36160,10 @@ }, /turf/open/floor/iron/smooth, /area/station/maintenance/department/electrical) -"mmX" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/smooth, -/area/station/cargo/warehouse) +"mmZ" = ( +/obj/effect/spawner/random/trash, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "mnb" = ( /obj/effect/turf_decal/stripes/white/corner{ dir = 4 @@ -36064,6 +36246,18 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/dark/smooth_large, /area/station/command/meeting_room) +"mnU" = ( +/obj/structure/hedge, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/light_switch/directional/east, +/obj/machinery/light/warm/directional/east, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "mog" = ( /obj/machinery/oven/range, /obj/machinery/airalarm/directional/north, @@ -36095,6 +36289,23 @@ /obj/machinery/door/firedoor, /turf/open/floor/catwalk_floor/iron_white, /area/station/science/research) +"moq" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/arrows{ + dir = 1 + }, +/obj/item/radio/intercom/directional/west, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/cargo/sorting) "mos" = ( /obj/machinery/light/small/directional/east, /turf/open/floor/iron/smooth, @@ -36140,6 +36351,26 @@ }, /turf/open/floor/wood/parquet, /area/station/medical/psychology) +"mpL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/crowbar/large{ + pixel_y = 18 + }, +/obj/item/clothing/head/costume/pirate{ + pixel_x = 15; + pixel_y = -3 + }, +/obj/item/clothing/suit/hazardvest{ + pixel_x = -3; + pixel_y = -2 + }, +/obj/item/wrench{ + pixel_y = 15 + }, +/turf/open/floor/iron/dark, +/area/station/commons/storage/tools) "mpQ" = ( /obj/structure/bed{ dir = 4 @@ -36199,30 +36430,15 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"mrP" = ( -/obj/structure/disposalpipe/segment{ +"mrY" = ( +/obj/effect/turf_decal/siding/wood{ dir = 6 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/table, -/obj/item/folder/red{ - pixel_y = 3 - }, -/obj/item/food/monkeycube/bee{ - name = "monkey cube"; - pixel_y = 17 - }, -/obj/item/food/monkeycube/chicken{ - pixel_y = 15; - pixel_x = 6; - name = "monkey cube"; - desc = "A new Nanotrasen classic, the monkey cube. Tastes like everything!" - }, -/obj/item/wirecutters{ - pixel_y = 6 - }, -/turf/open/floor/iron/dark, -/area/station/commons/storage/tools) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/grimy, +/area/station/service/library/private) "msg" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -36251,36 +36467,12 @@ /obj/structure/cable, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"msF" = ( -/obj/machinery/power/apc/auto_name/directional/south, -/obj/effect/landmark/start/quartermaster, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/cargo/storage) "msJ" = ( /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"msZ" = ( -/obj/structure/table/wood/fancy/green, -/obj/item/storage/wallet{ - pixel_x = -3; - pixel_y = 10 - }, -/obj/item/cigarette/cigar{ - pixel_x = -1; - pixel_y = -2 - }, -/obj/item/lighter{ - pixel_x = 11; - pixel_y = -7 - }, -/obj/machinery/light/directional/south, -/obj/structure/sign/poster/official/random/directional/south, +"mta" = ( +/obj/structure/dresser, +/obj/structure/sign/poster/contraband/random/directional/east, /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood, /area/station/command/heads_quarters/qm) @@ -36363,14 +36555,6 @@ "muS" = ( /turf/open/floor/iron/dark, /area/station/security/prison/workout) -"muT" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 8 - }, -/obj/machinery/camera/autoname/directional/west, -/turf/open/floor/iron, -/area/station/cargo/sorting) "muW" = ( /obj/structure/cable, /obj/machinery/status_display/ai/directional/north, @@ -36421,29 +36605,6 @@ dir = 1 }, /area/station/hallway/primary/central/fore) -"mvX" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/red{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/turf_decal/delivery, -/obj/machinery/light/small/directional/south, -/turf/open/floor/iron, -/area/station/cargo/storage) -"mwc" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/light/cold/directional/west, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "mwn" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -36516,6 +36677,15 @@ /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron, /area/station/security/warden) +"mxh" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/lobby) "mxp" = ( /obj/structure/table, /obj/structure/railing/corner{ @@ -36525,15 +36695,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/engineering/atmos) -"mxv" = ( -/obj/structure/chair/stool/directional/south, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/turf/open/floor/carpet/orange, -/area/station/command/heads_quarters/qm) "mxM" = ( /obj/structure/barricade/wooden/crude, /turf/open/floor/noslip, @@ -36671,10 +36832,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"mzv" = ( -/obj/docking_port/stationary/syndicate/northeast, -/turf/open/space/basic, -/area/space) "mzx" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -36706,10 +36863,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron, /area/station/engineering/storage/tech) -"mAu" = ( -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/storage) "mAv" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/structure/window/reinforced/spawner/directional/south, @@ -36747,11 +36900,6 @@ /obj/item/instrument/eguitar, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) -"mBt" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/smooth, -/area/station/cargo/miningfoundry) "mBC" = ( /obj/structure/sign/poster/official/soft_cap_pop_art/directional/north, /turf/open/floor/iron/grimy, @@ -36785,14 +36933,21 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"mCU" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/disposalpipe/junction/flip{ - dir = 8 +"mCV" = ( +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) +"mCW" = ( +/obj/machinery/airalarm/directional/south, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) +/obj/item/banner/cargo, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/qm) "mDf" = ( /obj/structure/chair/wood{ dir = 8 @@ -36808,6 +36963,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/lesser) +"mDk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "mDl" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -36816,18 +36978,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"mDx" = ( -/obj/machinery/mineral/ore_redemption{ - dir = 4; - input_dir = 8; - output_dir = 4 - }, -/obj/machinery/door/window/right/directional/east{ - name = "Ore Redemtion Window" - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron/textured_large, -/area/station/cargo/office) "mDA" = ( /obj/structure/table/wood, /obj/machinery/computer/libraryconsole{ @@ -36861,14 +37011,6 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron/half, /area/station/hallway/primary/central/fore) -"mDQ" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/landmark/start/depsec/supply, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/floor/iron/smooth, -/area/station/security/checkpoint/supply) "mDS" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -36933,6 +37075,15 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/showroomfloor, /area/station/security/prison/shower) +"mFd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/landmark/navigate_destination/chapel, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "mFh" = ( /obj/effect/decal/cleanable/glass, /obj/structure/table/reinforced/rglass, @@ -36978,17 +37129,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/circuit, /area/station/tcommsat/server) -"mFH" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 8 - }, -/obj/structure/chair{ - dir = 4; - pixel_y = -2 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "mFL" = ( /obj/structure/table, /obj/effect/turf_decal/siding/thinplating_new/terracotta{ @@ -37001,6 +37141,13 @@ /obj/structure/cable, /turf/open/floor/eighties, /area/station/service/abandoned_gambling_den/gaming) +"mFQ" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "mGg" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -37068,6 +37215,12 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos/project) +"mGI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/station/cargo/lobby) "mGM" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/broken_flooring/singular/directional/south, @@ -37159,20 +37312,20 @@ dir = 1 }, /area/station/science/lower) -"mIx" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/door/airlock/mining{ - name = "Mining Office" - }, -/obj/effect/mapping_helpers/airlock/access/all/supply/mining, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/unres{ +"mIp" = ( +/obj/effect/turf_decal/trimline/neutral/line{ dir = 8 }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 4 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, -/area/station/cargo/miningoffice) +/area/station/hallway/primary/central/fore) "mIA" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -37348,15 +37501,18 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) +"mKR" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/machinery/camera/autoname/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/cargo/warehouse) "mKY" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/service/hydroponics) -"mLa" = ( -/obj/machinery/light/small/dim/directional/north, -/obj/effect/spawner/random/structure/crate, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "mLh" = ( /obj/structure/cable, /obj/machinery/computer/security/mining{ @@ -37381,6 +37537,11 @@ }, /turf/open/floor/iron, /area/station/security/processing) +"mLz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/cargo/storage) "mLA" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/west, @@ -37510,6 +37671,14 @@ }, /turf/open/floor/wood/tile, /area/station/command/meeting_room) +"mOc" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engine Airlock" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "mOk" = ( /obj/structure/table/glass, /obj/item/folder/blue{ @@ -37670,6 +37839,12 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"mRQ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/storage) "mSa" = ( /turf/open/floor/iron, /area/station/commons/fitness/locker_room) @@ -37680,12 +37855,6 @@ }, /turf/open/floor/wood, /area/station/engineering/atmos/storage) -"mSu" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "mSA" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -37701,17 +37870,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/starboard/central) -"mSJ" = ( -/obj/structure/hedge, -/obj/machinery/status_display/supply{ - pixel_y = 32 - }, -/obj/machinery/light/small/directional/north, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/iron/smooth, -/area/station/cargo/storage) "mSQ" = ( /obj/effect/turf_decal/weather/dirt{ dir = 8 @@ -37955,6 +38113,17 @@ }, /turf/open/floor/iron/white/small, /area/station/service/hydroponics) +"mWU" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/chair{ + dir = 4; + pixel_y = -2 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "mWY" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/chair/sofa/bench/left{ @@ -37963,6 +38132,13 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron, /area/station/security/processing) +"mXb" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/structure/flora/tree/jungle/style_2, +/turf/open/floor/grass, +/area/station/service/chapel) "mXk" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/broken_flooring/singular/directional/east, @@ -38045,6 +38221,15 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"mYE" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/item/kirbyplants/random, +/obj/machinery/firealarm/directional/south, +/obj/item/storage/belt/utility, +/turf/open/floor/iron/smooth, +/area/station/commons/storage/tools) "mYP" = ( /obj/structure/table, /obj/item/storage/bag/tray/cafeteria{ @@ -38113,25 +38298,6 @@ /obj/structure/alien/weeds, /turf/open/floor/wood, /area/station/maintenance/starboard/greater) -"mZR" = ( -/obj/effect/mapping_helpers/broken_floor, -/obj/structure/table/wood, -/obj/item/paper_bin{ - pixel_x = -2; - pixel_y = 4 - }, -/obj/item/pen{ - pixel_x = -2; - pixel_y = 4 - }, -/obj/item/pen{ - pixel_x = -2; - pixel_y = 10 - }, -/obj/structure/sign/poster/official/the_owl/directional/west, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/wood, -/area/station/maintenance/hallway/abandoned_recreation) "mZZ" = ( /obj/structure/table/glass, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -38160,9 +38326,8 @@ /turf/open/floor/engine/vacuum, /area/station/science/ordnance/burnchamber) "naB" = ( -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) +/turf/closed/wall/rust, +/area/station/cargo/lobby) "naC" = ( /obj/structure/cable, /obj/structure/broken_flooring/singular/directional/south, @@ -38182,6 +38347,15 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/security/brig/entrance) +"naK" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engineering Office" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/engine_equipment, +/turf/open/floor/iron/smooth_half{ + dir = 8 + }, +/area/station/maintenance/department/engine/atmos) "naN" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock{ @@ -38208,10 +38382,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"nbN" = ( -/obj/effect/spawner/random/structure/girder, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) "ncb" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table/wood, @@ -38258,13 +38428,6 @@ /obj/effect/landmark/start/lawyer, /turf/open/floor/wood/tile, /area/station/service/lawoffice) -"ncB" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/storage) "ncD" = ( /obj/structure/lattice, /obj/structure/disposalpipe/segment{ @@ -38385,18 +38548,6 @@ }, /turf/open/floor/iron, /area/station/security) -"ngn" = ( -/obj/effect/turf_decal/weather/dirt, -/obj/effect/turf_decal/weather/dirt{ - dir = 1 - }, -/obj/structure/flora/bush/flowers_yw, -/obj/structure/flora/bush/large/style_random{ - pixel_x = -20; - pixel_y = 3 - }, -/turf/open/floor/grass, -/area/station/service/chapel) "ngq" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -38409,6 +38560,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/prison) +"nhk" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "nhl" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -38417,11 +38574,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"nht" = ( -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/north, -/turf/open/floor/iron/smooth, -/area/station/cargo/warehouse) "nhu" = ( /obj/structure/table, /obj/effect/spawner/random/engineering/flashlight, @@ -38516,14 +38668,6 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"niE" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/photocopier, -/turf/open/floor/iron/smooth, -/area/station/command/heads_quarters/qm) "niF" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -38600,6 +38744,16 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/fore/greater) +"njv" = ( +/obj/structure/reagent_dispensers/wall/peppertank/directional/west, +/obj/machinery/computer/records/security{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/smooth, +/area/station/security/checkpoint/supply) "njA" = ( /obj/machinery/photocopier, /obj/structure/sign/poster/official/random/directional/north, @@ -38642,11 +38796,6 @@ /obj/effect/mapping_helpers/airlock/access/all/security/general, /turf/open/floor/iron/textured_half, /area/station/security) -"nke" = ( -/obj/effect/spawner/random/structure/grille, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "nki" = ( /obj/effect/turf_decal/bot, /obj/machinery/light/cold/dim/directional/west, @@ -38660,6 +38809,14 @@ /obj/structure/barricade/wooden/crude, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"nku" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/cargo/warehouse) "nkw" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/trimline/blue/filled/corner{ @@ -38770,13 +38927,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/small, /area/station/engineering/break_room) -"nmw" = ( -/obj/effect/mapping_helpers/broken_floor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/light_switch/directional/south, -/obj/machinery/light/small/directional/south, -/turf/open/floor/wood, -/area/station/maintenance/hallway/abandoned_recreation) "nmC" = ( /obj/structure/table, /obj/item/storage/bag/tray, @@ -38790,11 +38940,24 @@ }, /turf/open/floor/iron/dark/textured_large, /area/station/service/kitchen) +"nmE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "nmH" = ( /obj/structure/railing, /obj/effect/turf_decal/siding/wideplating, /turf/open/floor/wood, /area/station/engineering/main) +"nmV" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "nmX" = ( /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, @@ -38914,18 +39077,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/large, /area/station/service/janitor) -"npf" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/delivery/white, -/obj/structure/rack, -/obj/item/stack/cable_coil/five, -/obj/item/pickaxe, -/obj/item/wrench, -/obj/item/radio/off, -/turf/open/floor/iron/smooth, -/area/station/commons/storage/tools) "npp" = ( /obj/structure/cable, /turf/open/floor/plating, @@ -39046,16 +39197,6 @@ }, /turf/open/floor/wood, /area/station/service/chapel) -"nrX" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/structure/sign/poster/official/random/directional/west, -/obj/structure/destructible/cult/item_dispenser/archives/library, -/obj/item/book/codex_gigas, -/obj/machinery/light/small/dim/directional/west, -/turf/open/floor/iron/grimy, -/area/station/service/library/private) "nsc" = ( /obj/structure/cable, /obj/item/kirbyplants/organic/applebush, @@ -39316,14 +39457,23 @@ }, /turf/open/floor/iron/recharge_floor, /area/station/maintenance/port/aft) -"nvU" = ( -/obj/structure/cable, +"nwb" = ( /obj/structure/disposalpipe/segment{ - dir = 10 + dir = 4 }, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) +"nwf" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "nwj" = ( /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -39387,10 +39537,6 @@ /obj/machinery/keycard_auth/wall_mounted/directional/south, /turf/open/floor/wood, /area/station/command/heads_quarters/qm) -"nxS" = ( -/obj/effect/landmark/start/librarian, -/turf/open/floor/iron/grimy, -/area/station/service/library/private) "nyd" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -39478,6 +39624,18 @@ /obj/machinery/light_switch/directional/west, /turf/open/floor/iron/dark, /area/station/medical/pharmacy) +"nzd" = ( +/obj/structure/filingcabinet, +/obj/machinery/firealarm/directional/east, +/obj/effect/turf_decal/tile/red/anticorner/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/smooth, +/area/station/security/checkpoint/supply) +"nzy" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted, +/turf/open/floor/iron, +/area/station/cargo/sorting) "nzA" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -39494,6 +39652,44 @@ "nzL" = ( /turf/closed/wall, /area/station/science/ordnance/testlab) +"nzO" = ( +/obj/structure/table, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/item/stamp/denied{ + pixel_x = -1; + pixel_y = 8 + }, +/obj/item/stamp{ + pixel_x = -7; + pixel_y = 0 + }, +/obj/item/radio{ + pixel_x = 9; + pixel_y = 4 + }, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) +"nzS" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped/layer2{ + dir = 4 + }, +/obj/machinery/light/small/directional/north, +/obj/machinery/button/door/incinerator_vent_atmos_aux{ + pixel_x = 8; + pixel_y = 24 + }, +/obj/machinery/button/door/incinerator_vent_atmos_main{ + pixel_x = 8; + pixel_y = 36 + }, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "nzU" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -39549,12 +39745,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos/project) -"nBn" = ( -/obj/effect/turf_decal/siding/wood/end{ - dir = 4 - }, -/turf/open/floor/carpet/red, -/area/station/command/heads_quarters/qm) "nBq" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -39592,13 +39782,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/central) -"nBI" = ( -/obj/effect/turf_decal/bot_white, -/obj/structure/reagent_dispensers/fueltank, -/obj/machinery/light/small/directional/west, -/obj/structure/sign/poster/official/random/directional/west, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) "nBP" = ( /obj/machinery/door/poddoor/shutters/radiation/preopen{ id = "engsm"; @@ -39642,15 +39825,6 @@ /obj/effect/landmark/start/station_engineer, /turf/open/floor/wood, /area/station/engineering/break_room) -"nCE" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/closet/secure_closet/quartermaster, -/obj/machinery/light_switch/directional/south, -/obj/effect/turf_decal/siding/wood{ - dir = 10 - }, -/turf/open/floor/carpet/red, -/area/station/command/heads_quarters/qm) "nCH" = ( /turf/closed/wall/r_wall, /area/station/security) @@ -39705,11 +39879,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/smooth_large, /area/station/engineering/supermatter/room) -"nDK" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/landmark/start/hangover, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "nDQ" = ( /obj/structure/chair{ dir = 4 @@ -39914,6 +40083,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth, /area/station/engineering/main) +"nHb" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/machinery/vending/wardrobe/curator_wardrobe, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/turf/open/floor/iron/grimy, +/area/station/service/library/private) "nHd" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -39922,23 +40100,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"nHq" = ( -/obj/structure/table/reinforced, -/obj/item/folder/yellow{ - pixel_x = 13; - pixel_y = 1 - }, -/obj/item/flashlight/lamp{ - pixel_x = -4; - pixel_y = 4 - }, -/obj/item/clothing/ears/earmuffs{ - pixel_x = 15; - pixel_y = 7 - }, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/engineering/break_room) "nHu" = ( /obj/effect/spawner/random/structure/closet_maintenance, /turf/open/floor/plating, @@ -40081,6 +40242,17 @@ }, /turf/open/floor/plating, /area/station/command/meeting_room) +"nJK" = ( +/obj/structure/reagent_dispensers/watertank/high, +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 9 + }, +/obj/machinery/light/small/dim/directional/north, +/obj/effect/turf_decal/delivery/white{ + color = "#52B4E9" + }, +/turf/open/floor/iron/white/small, +/area/station/service/hydroponics) "nJU" = ( /obj/machinery/conveyor{ dir = 4; @@ -40100,13 +40272,6 @@ /obj/machinery/light_switch/directional/east, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"nKe" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "nKj" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -40121,6 +40286,14 @@ /obj/machinery/light/floor, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) +"nLi" = ( +/obj/structure/cable, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningfoundry) "nLk" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -40158,6 +40331,23 @@ }, /turf/open/floor/iron, /area/station/engineering/storage/tech) +"nLQ" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/cell_charger{ + pixel_x = -1; + pixel_y = 4 + }, +/obj/item/stock_parts/power_store/cell/high{ + pixel_x = -1; + pixel_y = 4 + }, +/obj/item/assembly/timer{ + pixel_x = 14; + pixel_y = 6 + }, +/turf/open/floor/iron/dark, +/area/station/commons/storage/tools) "nMk" = ( /obj/machinery/power/emitter/welded{ dir = 1 @@ -40282,6 +40472,13 @@ /obj/effect/turf_decal/tile/dark_red/fourcorners, /turf/open/floor/iron, /area/station/security/brig/entrance) +"nPg" = ( +/obj/effect/spawner/random/trash, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "nPl" = ( /obj/machinery/power/supermatter_crystal/engine, /turf/open/floor/engine, @@ -40312,15 +40509,6 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/iron, /area/station/security/execution/transfer) -"nPL" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/cargo/storage) "nPM" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -40424,20 +40612,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/smooth, /area/station/engineering/break_room) -"nQE" = ( -/obj/structure/railing{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/holopad, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable, -/turf/open/floor/iron/small, -/area/station/engineering/break_room) "nQH" = ( /obj/structure/closet{ name = "Paramedic Supplies" @@ -40457,15 +40631,6 @@ dir = 1 }, /area/station/security/execution/transfer) -"nQW" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) "nQX" = ( /obj/machinery/holopad, /turf/open/floor/iron/smooth, @@ -40490,16 +40655,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/wood, /area/station/engineering/break_room) -"nRF" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/cargo/lobby) "nRP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -40526,15 +40681,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"nSh" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/disposal/bin, -/obj/machinery/light/small/directional/south, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/carpet/lone, -/area/station/service/chapel/office) "nSA" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -40605,46 +40751,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/catwalk_floor/iron_white, /area/station/science/cubicle) -"nTV" = ( -/obj/machinery/requests_console/directional/south{ - department = "Security"; - name = "Security Requests Console" - }, -/obj/effect/turf_decal/tile/red/anticorner/contrasted{ - dir = 8 - }, -/obj/structure/table/reinforced, -/obj/item/radio/off{ - pixel_x = -6 - }, -/obj/machinery/recharger{ - pixel_x = 5; - pixel_y = 4 - }, -/turf/open/floor/iron/smooth, -/area/station/security/checkpoint/supply) -"nUb" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/table/wood, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/item/folder/yellow{ - pixel_x = 7; - pixel_y = 6 - }, -/obj/item/storage/dice{ - pixel_x = -10; - pixel_y = 11 - }, -/obj/item/pen{ - pixel_x = -2; - pixel_y = 4 - }, -/turf/open/floor/carpet, -/area/station/maintenance/hallway/abandoned_recreation) "nUd" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -40721,18 +40827,6 @@ /obj/item/wirecutters, /turf/open/floor/iron/dark, /area/station/security/office) -"nVw" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/turf_decal/tile/neutral/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 8 - }, -/turf/open/floor/iron/small, -/area/station/hallway/secondary/service) "nVx" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -40770,11 +40864,6 @@ /obj/effect/turf_decal/siding/wideplating, /turf/open/floor/wood, /area/station/engineering/atmos/pumproom) -"nWc" = ( -/obj/structure/chair/stool/directional/west, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) "nWh" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /turf/closed/wall/r_wall, @@ -40843,12 +40932,6 @@ /obj/effect/turf_decal/stripes/box, /turf/open/floor/iron/small, /area/station/engineering/break_room) -"nXK" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/lobby) "nXP" = ( /obj/machinery/airalarm/directional/east, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -41004,6 +41087,23 @@ /obj/item/stock_parts/power_store/cell/high, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) +"oba" = ( +/obj/structure/table/reinforced, +/obj/item/folder/yellow{ + pixel_x = 13; + pixel_y = 1 + }, +/obj/item/flashlight/lamp{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/clothing/ears/earmuffs{ + pixel_x = 15; + pixel_y = 7 + }, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/engineering/break_room) "obb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -41024,6 +41124,10 @@ }, /turf/open/floor/iron/smooth, /area/station/engineering/break_room) +"obk" = ( +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/cargo/warehouse) "obq" = ( /obj/structure/cable, /obj/structure/lattice/catwalk, @@ -41075,16 +41179,6 @@ /obj/machinery/computer/records/security, /turf/open/floor/iron, /area/station/security/brig/entrance) -"ocZ" = ( -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/storage) "odh" = ( /obj/effect/landmark/atmospheric_sanity/ignore_area, /turf/open/floor/plating, @@ -41094,11 +41188,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/grimy, /area/station/commons/vacant_room/office) -"odr" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/effect/landmark/start/cargo_technician, -/turf/open/floor/iron, -/area/station/cargo/sorting) "odD" = ( /obj/effect/mapping_helpers/broken_floor, /obj/structure/table/wood, @@ -41168,14 +41257,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/paramedic) -"oeT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/chair/stool/directional/south, -/turf/open/floor/iron, -/area/station/cargo/sorting) "oeW" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -41216,6 +41297,15 @@ /obj/structure/cable, /turf/open/floor/iron/dark/small, /area/station/command/heads_quarters/captain/private) +"ogq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/light/cold/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "ogr" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -41360,12 +41450,6 @@ /obj/machinery/light/cold/directional/east, /turf/open/floor/iron/dark/small, /area/station/security/checkpoint/customs) -"ohN" = ( -/obj/item/radio/intercom/directional/north, -/obj/machinery/firealarm/directional/west, -/obj/machinery/vending/cytopro, -/turf/open/floor/iron/white, -/area/station/science/cytology) "oig" = ( /obj/effect/spawner/structure/window/reinforced, /obj/effect/turf_decal/stripes/corner{ @@ -41381,6 +41465,13 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/electrical) +"oim" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/structure/sign/warning/no_smoking/directional/east, +/turf/open/floor/iron, +/area/station/cargo/lobby) "ois" = ( /obj/effect/turf_decal/siding/white{ dir = 6 @@ -41404,17 +41495,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) -"oiO" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/turf/open/floor/iron/dark/side{ - dir = 8 - }, -/area/station/cargo/storage) "oiP" = ( /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 1 @@ -41498,6 +41578,21 @@ /obj/machinery/portable_atmospherics/canister/nitrous_oxide, /turf/open/floor/plating, /area/station/engineering/atmos/storage/gas) +"okL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "okW" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -41582,18 +41677,6 @@ /obj/structure/reagent_dispensers/watertank, /turf/open/floor/iron/white/corner, /area/station/science/xenobiology) -"omZ" = ( -/obj/machinery/light/small/directional/south, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/stairs{ - dir = 8 - }, -/area/station/cargo/storage) "ona" = ( /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) @@ -41677,12 +41760,6 @@ }, /turf/open/floor/plating, /area/station/engineering/atmos) -"ooB" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/sorting) "ooK" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -41903,10 +41980,6 @@ /obj/structure/cable, /turf/open/floor/iron/small, /area/station/medical/morgue) -"osB" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted, -/turf/open/floor/iron, -/area/station/cargo/sorting) "osP" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/iron, @@ -41965,9 +42038,6 @@ dir = 1 }, /area/station/command/corporate_suite) -"ouk" = ( -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/cargo/lobby) "oul" = ( /obj/effect/turf_decal/weather/dirt, /obj/structure/flora/bush/flowers_yw/style_2, @@ -42166,31 +42236,20 @@ }, /turf/open/floor/wood/parquet, /area/station/service/library) -"oxo" = ( -/obj/effect/turf_decal/stripes{ +"oxt" = ( +/obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/effect/turf_decal/trimline/brown/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/brown/line{ +/obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 4 }, -/obj/effect/turf_decal/stripes{ - dir = 8 - }, -/obj/machinery/door/airlock/mining{ - name = "Bitrunning Den" +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 }, /obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/any/supply/bit_den, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/dark/smooth_half{ - dir = 1 - }, -/area/station/cargo/bitrunning/den) +/turf/open/floor/iron, +/area/station/cargo/sorting) "oyn" = ( /obj/structure/disposalpipe/segment, /obj/machinery/door/airlock/public/glass{ @@ -42202,6 +42261,11 @@ /obj/machinery/light/warm/directional/south, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) +"oyv" = ( +/obj/machinery/light/small/directional/north, +/obj/effect/landmark/start/cargo_technician, +/turf/open/floor/iron/smooth, +/area/station/cargo/lobby) "oyz" = ( /obj/structure/flora/grass/jungle/b/style_3, /obj/effect/turf_decal/weather/dirt{ @@ -42210,6 +42274,13 @@ /obj/structure/cable, /turf/open/floor/grass, /area/station/service/chapel) +"oyH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/red, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/cargo/storage) "oyQ" = ( /turf/closed/wall, /area/station/science/auxlab/firing_range) @@ -42331,6 +42402,20 @@ }, /turf/open/floor/engine, /area/station/engineering/atmospherics_engine) +"oBO" = ( +/obj/machinery/door/airlock/public/glass/incinerator/atmos_interior, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/obj/machinery/airlock_controller/incinerator_atmos{ + pixel_x = -40; + pixel_y = -8 + }, +/turf/open/floor/engine, +/area/station/maintenance/disposal/incinerator) "oBP" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -42501,6 +42586,15 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"oEL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/storage) "oFc" = ( /obj/effect/spawner/random/trash, /obj/machinery/light/small/directional/west, @@ -42874,6 +42968,12 @@ }, /turf/open/floor/iron/white/small, /area/station/commons/toilet/restrooms) +"oLE" = ( +/obj/structure/chair/stool/directional/west, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/sign/poster/official/random/directional/north, +/turf/open/floor/wood, +/area/station/maintenance/hallway/abandoned_recreation) "oLV" = ( /obj/machinery/camera/autoname/directional/south, /obj/structure/cable, @@ -42888,23 +42988,6 @@ /mob/living/basic/slime, /turf/open/floor/engine, /area/station/science/xenobiology) -"oMJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/mining/glass{ - name = "Delivery Office" - }, -/obj/effect/mapping_helpers/airlock/access/all/supply/general, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 8 - }, -/turf/open/floor/iron/small, -/area/station/cargo/sorting) "oNd" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/siding/blue/corner{ @@ -42950,6 +43033,11 @@ dir = 8 }, /area/station/science/research) +"oNQ" = ( +/obj/item/kirbyplants/random, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/service/chapel/office) "oNX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -42965,6 +43053,13 @@ /obj/effect/spawner/random/engineering/atmospherics_portable, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"oOf" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "oOg" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small/directional/north, @@ -42987,6 +43082,14 @@ }, /turf/open/floor/plating, /area/station/construction/mining/aux_base) +"oOm" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/chair/stool/directional/east, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/sign/poster/official/random/directional/north, +/obj/machinery/light/small/directional/west, +/turf/open/floor/wood, +/area/station/maintenance/hallway/abandoned_recreation) "oOp" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/light/cold/directional/east, @@ -43062,20 +43165,6 @@ }, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai_upload) -"oPh" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/effect/turf_decal/tile/neutral/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron/small, -/area/station/hallway/secondary/service) "oPj" = ( /turf/open/floor/engine/plasma, /area/station/engineering/atmos) @@ -43159,6 +43248,16 @@ /obj/effect/turf_decal/siding/wideplating, /turf/open/floor/wood, /area/station/engineering/atmos/pumproom) +"oQP" = ( +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 8 + }, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "oRj" = ( /obj/effect/turf_decal/siding/yellow{ dir = 8 @@ -43278,6 +43377,12 @@ }, /turf/open/floor/iron/smooth, /area/station/command/bridge) +"oSB" = ( +/obj/machinery/vending/wardrobe/chap_wardrobe, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/carpet/lone, +/area/station/service/chapel/office) "oTf" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -43465,18 +43570,6 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron, /area/station/security/execution/transfer) -"oVQ" = ( -/obj/structure/table/wood, -/obj/effect/decal/cleanable/dirt, -/obj/item/stack/wrapping_paper{ - pixel_x = -3; - pixel_y = 5 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/turf/open/floor/carpet/orange, -/area/station/command/heads_quarters/qm) "oVW" = ( /obj/effect/turf_decal/weather/dirt{ dir = 5 @@ -43557,10 +43650,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"oYf" = ( -/obj/machinery/button/ignition/incinerator/atmos, -/turf/closed/wall/r_wall, -/area/station/maintenance/disposal/incinerator) "oYi" = ( /obj/effect/turf_decal/trimline/neutral/line, /obj/effect/turf_decal/trimline/neutral/line{ @@ -43666,15 +43755,18 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) -"paf" = ( +"oZZ" = ( /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 +/obj/effect/landmark/start/depsec/supply, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 }, -/turf/open/floor/iron/dark/side{ - dir = 8 +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 1 }, -/area/station/cargo/storage) +/turf/open/floor/iron/smooth, +/area/station/security/checkpoint/supply) "pan" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -43793,6 +43885,12 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"pbV" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/lobby) "pca" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/red/line{ @@ -43932,6 +44030,10 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"peE" = ( +/obj/structure/closet, +/turf/open/floor/iron/smooth, +/area/station/cargo/lobby) "peN" = ( /obj/structure/lattice, /obj/machinery/camera/motion/directional/north{ @@ -44055,14 +44157,6 @@ /obj/item/kirbyplants/fern, /turf/open/floor/iron/white, /area/station/science/cytology) -"pgA" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/chair/stool/directional/east, -/obj/effect/decal/cleanable/cobweb, -/obj/structure/sign/poster/official/random/directional/north, -/obj/machinery/light/small/directional/west, -/turf/open/floor/wood, -/area/station/maintenance/hallway/abandoned_recreation) "phd" = ( /obj/effect/turf_decal/siding/red{ dir = 4 @@ -44380,6 +44474,12 @@ }, /turf/open/floor/iron/smooth_large, /area/station/science/auxlab/firing_range) +"pmD" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/light/small/directional/south, +/obj/effect/turf_decal/tile/red/half/contrasted, +/turf/open/floor/iron/smooth, +/area/station/security/checkpoint/supply) "pmE" = ( /obj/effect/turf_decal/tile/yellow/diagonal_centre, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -44397,13 +44497,6 @@ }, /turf/open/floor/iron, /area/station/security/prison/workout) -"pmP" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/landmark/start/hangover, -/turf/open/floor/iron, -/area/station/cargo/lobby) "pnf" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -44451,11 +44544,6 @@ /obj/structure/flora/bush/jungle/c/style_random, /turf/open/floor/grass, /area/station/service/chapel) -"pnO" = ( -/obj/structure/cable, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) "pnQ" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 6 @@ -44490,17 +44578,6 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/iron/freezer, /area/station/command/corporate_suite) -"poi" = ( -/obj/machinery/airalarm/directional/south, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/obj/item/banner/cargo, -/obj/effect/turf_decal/siding/wood{ - dir = 6 - }, -/turf/open/floor/carpet/red, -/area/station/command/heads_quarters/qm) "pot" = ( /obj/structure/table/wood, /obj/item/cigarette/cigar/premium{ @@ -44610,6 +44687,16 @@ /obj/effect/spawner/random/engineering/atmospherics_portable, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) +"ppP" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "ppQ" = ( /obj/effect/turf_decal/stripes/box, /obj/machinery/portable_atmospherics/canister/carbon_dioxide, @@ -44669,10 +44756,6 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"prd" = ( -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/supermatter/room) "prf" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -44825,6 +44908,18 @@ }, /turf/open/floor/iron/smooth, /area/station/maintenance/port/aft) +"ptO" = ( +/obj/structure/sign/poster/official/random/directional/east, +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 6 + }, +/obj/item/aquarium_kit, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "ptX" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -44834,14 +44929,9 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"pua" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, +"puk" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, /area/station/cargo/lobby) "pus" = ( /obj/effect/turf_decal/box/red/corners, @@ -44857,19 +44947,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/diagonal, /area/station/command/heads_quarters/hop) -"puP" = ( -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/iron/dark, -/area/station/cargo/lobby) -"puQ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/cargo/sorting) "pvi" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -44883,15 +44960,6 @@ /obj/effect/turf_decal/tile/neutral/opposingcorners, /turf/open/floor/iron, /area/station/commons/fitness/recreation/entertainment) -"pvt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/cargo/storage) "pvC" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -44999,21 +45067,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) -"pyG" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 - }, -/obj/structure/sign/warning/no_smoking/directional/east, -/turf/open/floor/iron, -/area/station/cargo/lobby) -"pyY" = ( -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/access/all/supply/general, -/obj/machinery/door/airlock{ - name = "Cargo Maintenance" - }, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "pzb" = ( /obj/effect/turf_decal/trimline/blue/corner{ dir = 1 @@ -45025,6 +45078,13 @@ "pzd" = ( /turf/closed/wall, /area/station/commons/fitness/recreation/entertainment) +"pzk" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "pzy" = ( /obj/structure/table, /obj/item/storage/box/prisoner{ @@ -45136,6 +45196,22 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/dark, /area/station/security/interrogation) +"pBo" = ( +/obj/structure/table/wood, +/obj/item/folder/white{ + pixel_x = -3; + pixel_y = 0 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/item/pen{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/structure/sign/poster/official/random/directional/north, +/turf/open/floor/carpet, +/area/station/maintenance/hallway/abandoned_recreation) "pBu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral{ @@ -45573,6 +45649,16 @@ }, /turf/open/floor/iron/dark/small, /area/station/commons/fitness/locker_room) +"pIg" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/storage) "pIn" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -45582,6 +45668,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) +"pIo" = ( +/obj/machinery/computer/order_console/bitrunning{ + dir = 8 + }, +/turf/open/floor/iron/dark/smooth_large, +/area/station/cargo/bitrunning/den) "pIp" = ( /obj/machinery/light/small/directional/west, /obj/effect/turf_decal/stripes/white/line{ @@ -45628,14 +45720,6 @@ /obj/effect/landmark/start/cargo_technician, /turf/open/floor/iron, /area/station/cargo/storage) -"pJo" = ( -/obj/effect/turf_decal/siding/wood, -/obj/machinery/holopad, -/mob/living/basic/chick/permanent{ - name = "Morgan" - }, -/turf/open/floor/iron/smooth, -/area/station/command/heads_quarters/qm) "pJr" = ( /obj/machinery/portable_atmospherics/canister, /turf/open/floor/plating, @@ -45698,20 +45782,6 @@ }, /turf/open/floor/wood/parquet, /area/station/service/library) -"pKO" = ( -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 4 - }, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "pKR" = ( /obj/effect/turf_decal/tile/blue/anticorner/contrasted{ dir = 4 @@ -45836,23 +45906,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/catwalk_floor/iron_dark, /area/station/science/xenobiology) -"pMC" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/table/glass, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen/invisible{ - pixel_x = -2; - pixel_y = 7 - }, -/obj/machinery/newscaster/directional/north, -/obj/item/storage/photo_album/library, -/turf/open/floor/iron/grimy, -/area/station/service/library/private) "pMM" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 @@ -45872,6 +45925,26 @@ }, /turf/open/floor/plating, /area/station/engineering/gravity_generator) +"pMX" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/station/service/chapel/office) +"pNa" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/arrows{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/cargo/sorting) "pNh" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -45919,13 +45992,6 @@ }, /turf/closed/wall, /area/station/commons/fitness/locker_room) -"pOc" = ( -/obj/structure/cable, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) "pOi" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -46155,6 +46221,10 @@ /obj/effect/mapping_helpers/airlock/access/any/security/general, /turf/open/floor/iron/textured_half, /area/station/security/checkpoint/customs/auxiliary) +"pRO" = ( +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/iron/smooth, +/area/station/cargo/lobby) "pRQ" = ( /obj/effect/turf_decal/tile/blue/half/contrasted, /turf/open/floor/iron/white, @@ -46195,16 +46265,6 @@ }, /turf/open/space/basic, /area/space/nearstation) -"pSt" = ( -/obj/structure/sign/poster/random/directional/south, -/obj/machinery/conveyor{ - id = "mining"; - dir = 10 - }, -/obj/machinery/bouldertech/refinery, -/obj/structure/sign/poster/random/directional/east, -/turf/open/floor/iron, -/area/station/cargo/miningfoundry) "pSB" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/tank/air{ @@ -46273,6 +46333,12 @@ /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/iron, /area/station/commons/fitness/recreation/entertainment) +"pTK" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/station/maintenance/department/engine/atmos) "pTZ" = ( /obj/effect/turf_decal/siding/wideplating/dark{ dir = 8 @@ -46367,11 +46433,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"pVk" = ( -/obj/effect/spawner/structure/window, -/obj/structure/curtain/bounty/start_closed, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "pVq" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/trimline/neutral/line{ @@ -46416,6 +46477,12 @@ }, /turf/open/floor/iron/dark/side, /area/station/science/xenobiology) +"pVV" = ( +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron/stairs{ + dir = 1 + }, +/area/station/cargo/lobby) "pWl" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -46652,6 +46719,11 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"pZt" = ( +/obj/structure/chair/stool/directional/west, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "pZv" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -46662,6 +46734,22 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"pZC" = ( +/obj/structure/table/wood, +/obj/item/folder{ + pixel_x = 1; + pixel_y = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/item/pen{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/structure/sign/poster/official/tactical_game_cards/directional/north, +/turf/open/floor/carpet, +/area/station/maintenance/hallway/abandoned_recreation) "pZK" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -46821,13 +46909,6 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/maintenance/department/electrical) -"qcJ" = ( -/obj/structure/filingcabinet/filingcabinet, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) "qcQ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -46854,19 +46935,17 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/prison) -"qdH" = ( -/obj/structure/chair/office{ +"qdL" = ( +/obj/structure/extinguisher_cabinet/directional/east, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ dir = 1 }, -/obj/effect/landmark/start/cargo_technician, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 }, -/turf/open/floor/iron, -/area/station/cargo/office) +/obj/machinery/fishing_portal_generator, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "qdM" = ( /obj/structure/chair/sofa/bench/left{ dir = 4 @@ -46935,24 +47014,6 @@ /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/iron, /area/station/security/prison/workout) -"qet" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/cargo/sorting) -"qeM" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/lobby) "qeP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -47075,15 +47136,17 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/white/small, /area/station/commons/toilet/restrooms) -"qgK" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 +"qgX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/item/kirbyplants/random, -/obj/machinery/firealarm/directional/south, -/obj/item/storage/belt/utility, -/turf/open/floor/iron/smooth, -/area/station/commons/storage/tools) +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"qgZ" = ( +/turf/open/floor/carpet/lone, +/area/station/service/chapel/office) "qhh" = ( /obj/structure/cable, /obj/structure/table/glass, @@ -47102,25 +47165,6 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron/white, /area/station/science/cytology) -"qht" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "CO2 to Pure" - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) -"qhA" = ( -/obj/structure/cable, -/obj/machinery/airalarm/directional/north, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/disposal/bin, -/turf/open/floor/iron/smooth, -/area/station/command/heads_quarters/qm) "qhD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -47150,6 +47194,15 @@ }, /turf/open/floor/iron/dark/diagonal, /area/station/service/bar) +"qhU" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/qm) "qhV" = ( /obj/structure/table, /obj/machinery/fax{ @@ -47338,14 +47391,13 @@ /obj/machinery/power/terminal, /turf/open/floor/iron/smooth_large, /area/station/engineering/supermatter/room) -"qks" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/junction{ - dir = 4 +"qkC" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 }, /turf/open/floor/iron, -/area/station/cargo/storage) +/area/station/cargo/office) "qkK" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -47496,6 +47548,16 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/iron/white/small, /area/station/science/ordnance/storage) +"qnU" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/qm) "qoj" = ( /obj/structure/disposalpipe/segment, /obj/machinery/door/window/right/directional/west{ @@ -47510,12 +47572,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/space/nearstation) -"qou" = ( -/obj/structure/hedge, -/obj/item/radio/intercom/directional/south, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) "qow" = ( /obj/machinery/door/airlock{ name = "Maintenance" @@ -47563,11 +47619,6 @@ /obj/structure/steam_vent, /turf/open/floor/iron/smooth, /area/station/maintenance/port/aft) -"qpv" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/cargo/storage) "qpO" = ( /obj/structure/chair{ dir = 1 @@ -47591,6 +47642,19 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) +"qqB" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + location = "QM #2" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/storage) "qqC" = ( /obj/structure/chair/comfy/carp{ dir = 1 @@ -47629,6 +47693,15 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/science/xenobiology) +"qrJ" = ( +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningfoundry) +"qrW" = ( +/obj/machinery/portable_atmospherics/canister/plasma, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/engine/plasma, +/area/station/engineering/atmos) "qsg" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/power/terminal, @@ -47684,18 +47757,6 @@ "qtd" = ( /turf/open/floor/wood/tile, /area/station/command/corporate_showroom) -"qti" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/loading_area{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "qtE" = ( /obj/structure/bed{ dir = 4 @@ -47720,6 +47781,16 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) +"qtW" = ( +/obj/machinery/door/morgue{ + name = "Private Study"; + req_access = list("library") + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/maintenance/central/greater) "quq" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/closet/crate/cardboard, @@ -47862,15 +47933,6 @@ }, /turf/open/floor/iron/solarpanel/airless, /area/station/solars/port) -"qxc" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "qxi" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -47894,15 +47956,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/tcommsat/server) -"qxF" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/plating/elevatorshaft, -/area/station/engineering/break_room) "qxN" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -47957,20 +48010,23 @@ /obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating/rust, /area/station/maintenance/fore/lesser) +"qyE" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/effect/landmark/start/botanist, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "qyN" = ( /obj/structure/railing, /turf/open/space/basic, /area/space/nearstation) -"qyQ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/status_display/supply{ - pixel_x = -2; - pixel_y = 32 - }, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/cargo/storage) "qyT" = ( /turf/closed/wall, /area/station/hallway/secondary/exit/departure_lounge) @@ -48082,11 +48138,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"qzW" = ( -/obj/effect/spawner/random/structure/crate, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "qAj" = ( /obj/machinery/bluespace_vendor/directional/north, /turf/open/floor/iron, @@ -48247,25 +48298,34 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/dark, /area/station/science/xenobiology) -"qCF" = ( -/obj/effect/mapping_helpers/broken_floor, -/obj/structure/rack, -/obj/item/clothing/ears/earmuffs{ - pixel_x = -3; - pixel_y = -2 +"qCG" = ( +/obj/effect/turf_decal/siding/white{ + dir = 9 }, -/obj/item/clothing/ears/earmuffs{ - pixel_x = -8; - pixel_y = 11 +/obj/structure/table, +/obj/structure/railing{ + dir = 9 }, -/obj/item/clothing/ears/earmuffs{ - pixel_x = 4; - pixel_y = 6 +/obj/effect/turf_decal/tile/brown/half/contrasted, +/obj/item/radio{ + desc = "An old handheld radio. You could use it, if you really wanted to."; + icon_state = "radio"; + name = "old radio"; + pixel_x = -4; + pixel_y = 10 }, -/obj/item/pickaxe, -/obj/machinery/newscaster/directional/west, -/turf/open/floor/iron/smooth, -/area/station/cargo/miningfoundry) +/obj/item/reagent_containers/cup/glass/coffee{ + pixel_x = 15; + pixel_y = 8 + }, +/obj/effect/spawner/random/food_or_drink/donuts{ + pixel_x = 8; + pixel_y = 0 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/cargo/lobby) "qCJ" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/wood{ @@ -48387,23 +48447,6 @@ /obj/structure/reagent_dispensers/water_cooler, /turf/open/floor/wood/parquet, /area/station/medical/psychology) -"qDL" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/firealarm/directional/east, -/obj/effect/turf_decal/tile/neutral/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 4 - }, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 4 - }, -/obj/effect/landmark/start/botanist, -/turf/open/floor/iron/small, -/area/station/hallway/secondary/service) "qDN" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/status_display/evac/directional/west, @@ -48676,12 +48719,6 @@ /obj/structure/broken_flooring/pile/directional/east, /turf/open/floor/plating, /area/station/hallway/secondary/dock) -"qJe" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "qJq" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -48711,14 +48748,6 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/dark, /area/station/engineering/atmos/storage) -"qJW" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "qKe" = ( /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/effect/turf_decal/siding/green, @@ -48726,29 +48755,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/cafeteria, /area/station/science/circuits) -"qKh" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/effect/spawner/random/structure/steam_vent, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "qKt" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_dark, /area/station/science/xenobiology) -"qKw" = ( -/obj/machinery/door/airlock/mining/glass{ - name = "Filing Room" - }, -/obj/effect/mapping_helpers/airlock/access/all/supply/general, -/obj/structure/cable, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/cargo/lobby) "qKx" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -48881,9 +48893,27 @@ /obj/structure/cable, /turf/open/floor/iron/small, /area/station/maintenance/department/electrical) +"qMI" = ( +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/stripes/white/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark/corner{ + dir = 4 + }, +/area/station/cargo/storage) "qMK" = ( /turf/closed/wall, /area/station/command/bridge) +"qMM" = ( +/obj/machinery/firealarm/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/cargo/storage) "qMP" = ( /obj/structure/closet/firecloset, /obj/structure/sign/poster/official/random/directional/north, @@ -48938,11 +48968,6 @@ }, /turf/open/floor/engine/n2o, /area/station/engineering/atmos) -"qOs" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/cargo/storage) "qOG" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -49120,12 +49145,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) -"qRT" = ( -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/smooth, -/area/station/cargo/miningfoundry) "qRU" = ( /obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible{ dir = 8 @@ -49176,6 +49195,12 @@ /obj/machinery/portable_atmospherics/canister/nitrogen, /turf/open/floor/iron/smooth_large, /area/station/science/ordnance/storage) +"qSF" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "qSH" = ( /obj/effect/turf_decal/bot_white, /obj/effect/spawner/random/structure/crate, @@ -49252,16 +49277,11 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/wood, /area/station/cargo/boutique) -"qTU" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/holopad, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/lobby) +"qTS" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/loading_area, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "qUa" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -49628,23 +49648,17 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/iron/dark/small, /area/station/security/tram) -"qYr" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/turf_decal/tile/neutral/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 8 +"qYq" = ( +/obj/machinery/door/airlock/wood{ + desc = "Sessions held every Friday."; + name = "The Sunfinder Society" }, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/iron/small, -/area/station/hallway/secondary/service) +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "qYv" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -49677,6 +49691,12 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/engineering/main) +"qYG" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "qYK" = ( /obj/structure/disposalpipe/trunk, /obj/structure/window/reinforced/spawner/directional/west, @@ -49769,6 +49789,26 @@ }, /turf/open/floor/iron/smooth_large, /area/station/science/ordnance/storage) +"qZX" = ( +/obj/effect/decal/cleanable/molten_object, +/obj/effect/landmark/event_spawn, +/obj/structure/table, +/obj/item/reagent_containers/cup/bottle/welding_fuel{ + pixel_y = -3; + pixel_x = 13 + }, +/obj/item/stack/sheet/iron/ten{ + pixel_y = -6; + pixel_x = -2 + }, +/obj/item/hand_labeler{ + pixel_y = -15 + }, +/obj/item/reagent_containers/cup/watering_can{ + pixel_y = 12 + }, +/turf/open/floor/iron/dark, +/area/station/commons/storage/tools) "raf" = ( /obj/structure/reagent_dispensers/water_cooler, /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -49794,16 +49834,6 @@ /obj/machinery/duct, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) -"raK" = ( -/obj/machinery/computer/cargo{ - dir = 1 - }, -/obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) "raL" = ( /obj/effect/turf_decal/siding/thinplating_new/dark/corner{ dir = 1 @@ -49883,6 +49913,14 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"rbT" = ( +/obj/effect/landmark/navigate_destination/cargo, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "rbW" = ( /obj/machinery/door/airlock{ name = "Maintenance" @@ -49960,22 +49998,6 @@ /obj/machinery/light/small/dim/directional/east, /turf/open/floor/iron, /area/station/maintenance/department/engine/atmos) -"rdr" = ( -/obj/structure/table/reinforced, -/obj/item/paper_bin{ - pixel_x = 1; - pixel_y = 9 - }, -/obj/item/pen{ - pixel_x = 1; - pixel_y = 9 - }, -/obj/item/book/manual/wiki/security_space_law, -/obj/item/radio/intercom/directional/east, -/obj/machinery/camera/autoname/directional/south, -/obj/effect/turf_decal/tile/red/anticorner/contrasted, -/turf/open/floor/iron/smooth, -/area/station/security/checkpoint/supply) "rds" = ( /obj/machinery/computer/slot_machine{ pixel_y = 2 @@ -50047,15 +50069,6 @@ "reh" = ( /turf/closed/wall/r_wall, /area/station/science/robotics/lab) -"rei" = ( -/obj/structure/disposalpipe/segment, -/obj/item/food/grown/pineapple{ - pixel_x = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/cargo/storage) "rej" = ( /obj/effect/spawner/random/structure/crate, /obj/effect/spawner/random/maintenance, @@ -50067,6 +50080,24 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) +"rev" = ( +/obj/machinery/requests_console/directional/south{ + department = "Security"; + name = "Security Requests Console" + }, +/obj/effect/turf_decal/tile/red/anticorner/contrasted{ + dir = 8 + }, +/obj/structure/table/reinforced, +/obj/item/radio/off{ + pixel_x = -6 + }, +/obj/machinery/recharger{ + pixel_x = 5; + pixel_y = 4 + }, +/turf/open/floor/iron/smooth, +/area/station/security/checkpoint/supply) "rex" = ( /obj/effect/turf_decal/tile/neutral/full, /obj/effect/decal/cleanable/dirt, @@ -50166,6 +50197,11 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/glass, /area/station/command/heads_quarters/rd) +"rfP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/storage) "rfT" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 5 @@ -50269,6 +50305,12 @@ /obj/structure/chair/office, /turf/open/floor/iron/smooth, /area/station/cargo/drone_bay) +"rhF" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/lobby) "rhH" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -50464,6 +50506,14 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron/dark, /area/station/science/ordnance/testlab) +"rmc" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/cargo/sorting) "rmk" = ( /obj/effect/turf_decal/weather/dirt, /obj/structure/flora/bush/jungle/c/style_3{ @@ -50515,15 +50565,6 @@ }, /turf/open/floor/plating, /area/station/medical/chemistry) -"rnS" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/wood, -/area/station/service/chapel/office) "rnV" = ( /obj/structure/cable, /turf/open/floor/iron/showroomfloor, @@ -50669,16 +50710,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/catwalk_floor/iron_dark, /area/station/science/xenobiology) -"rrj" = ( -/obj/structure/chair/office/light{ - dir = 4 - }, -/obj/effect/landmark/start/quartermaster, -/obj/effect/turf_decal/siding/wood{ - dir = 10 - }, -/turf/open/floor/carpet/orange, -/area/station/command/heads_quarters/qm) "rro" = ( /obj/structure/railing, /obj/structure/disposalpipe/segment{ @@ -50709,6 +50740,12 @@ }, /turf/open/floor/iron/small, /area/station/engineering/atmos/pumproom) +"rrJ" = ( +/obj/structure/filingcabinet/filingcabinet, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/maintenance/hallway/abandoned_recreation) "rrQ" = ( /obj/item/kirbyplants/random/fullysynthetic, /obj/effect/turf_decal/tile/dark_red/half/contrasted, @@ -50806,13 +50843,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/small, /area/station/commons/fitness/locker_room) -"rtg" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/structure/table, -/turf/open/floor/iron, -/area/station/cargo/sorting) "rth" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -50826,6 +50856,17 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/small, /area/station/ai_monitored/command/storage/eva) +"rtH" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/cargo/storage) "rtI" = ( /turf/open/floor/iron/white/corner{ dir = 8 @@ -50908,33 +50949,6 @@ "ruD" = ( /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) -"ruK" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 - }, -/obj/machinery/conveyor_switch/oneway{ - id = "packageSort2"; - name = "Sort and Deliver"; - pixel_x = 8; - pixel_y = 12 - }, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/sorting) -"ruR" = ( -/obj/machinery/door/airlock/engineering{ - name = "Engine Airlock" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "ruS" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -50948,10 +50962,6 @@ "ruY" = ( /turf/open/floor/plating, /area/station/maintenance/fore/lesser) -"rvk" = ( -/obj/effect/spawner/random/structure/closet_empty/crate, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "rvp" = ( /turf/closed/mineral/random/stationside, /area/station/maintenance/hallway/abandoned_command) @@ -51210,6 +51220,16 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"ryX" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + location = "QM #1" + }, +/obj/effect/turf_decal/delivery, +/mob/living/simple_animal/bot/mulebot, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron, +/area/station/cargo/storage) "rza" = ( /obj/structure/disposalpipe/junction{ dir = 1 @@ -51259,6 +51279,17 @@ dir = 1 }, /area/station/hallway/secondary/entry) +"rzX" = ( +/obj/structure/hedge, +/obj/machinery/status_display/supply{ + pixel_y = -32 + }, +/obj/machinery/light/small/directional/south, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/iron/smooth, +/area/station/cargo/storage) "rzZ" = ( /obj/effect/spawner/random/structure/crate, /obj/effect/spawner/random/maintenance, @@ -51413,18 +51444,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/carpet/lone, /area/station/service/abandoned_gambling_den) -"rDc" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/siding/yellow{ - dir = 4 - }, -/obj/effect/spawner/random/food_or_drink/donkpockets{ - pixel_y = 6 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/engineering/break_room) "rDj" = ( /obj/structure/chair/sofa/bench/left{ dir = 8 @@ -51435,6 +51454,14 @@ dir = 4 }, /area/station/hallway/secondary/entry) +"rDs" = ( +/obj/machinery/door/airlock/mining/glass{ + name = "Filing Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/cargo/lobby) "rDv" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/light/cold/directional/west, @@ -51514,6 +51541,11 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"rEV" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/security/prison/garden) "rEW" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -51546,6 +51578,12 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"rFm" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "rFn" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral, @@ -51563,6 +51601,17 @@ dir = 4 }, /area/station/science/ordnance/testlab) +"rFv" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/railing, +/obj/structure/hedge, +/obj/effect/turf_decal/siding/thinplating_new/end{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/cargo/storage) "rFy" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -51594,6 +51643,12 @@ dir = 6 }, /area/station/science/research) +"rFU" = ( +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/carpet/lone, +/area/station/service/chapel/office) "rFV" = ( /obj/effect/turf_decal/trimline/blue/filled/corner, /turf/open/floor/iron/white, @@ -51751,6 +51806,30 @@ }, /turf/open/floor/grass, /area/station/science/xenobiology) +"rJB" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/photocopier, +/turf/open/floor/iron/smooth, +/area/station/command/heads_quarters/qm) +"rJL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/sorting) +"rJQ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/storage) "rJW" = ( /obj/machinery/suit_storage_unit/hos, /obj/effect/decal/cleanable/dirt, @@ -51764,6 +51843,11 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"rKn" = ( +/obj/structure/cable, +/obj/item/banner/cargo, +/turf/open/floor/iron/smooth, +/area/station/command/heads_quarters/qm) "rKv" = ( /obj/structure/broken_flooring/singular/directional/east, /turf/open/floor/iron, @@ -51809,6 +51893,13 @@ }, /turf/open/floor/engine, /area/station/science/explab) +"rLp" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "rLr" = ( /obj/machinery/door/poddoor/incinerator_ordmix, /turf/open/floor/engine/vacuum, @@ -51973,13 +52064,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) -"rOf" = ( -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) "rOG" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -52064,9 +52148,6 @@ }, /turf/open/floor/iron/small, /area/station/hallway/primary/central/fore) -"rPI" = ( -/turf/open/floor/iron, -/area/station/cargo/sorting) "rPL" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -52074,6 +52155,15 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/lesser) +"rPM" = ( +/obj/effect/landmark/start/cargo_technician, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/cargo/storage) "rPT" = ( /obj/structure/chair/stool/bar/directional/east, /obj/effect/turf_decal/siding/red/corner{ @@ -52136,22 +52226,6 @@ /obj/effect/mapping_helpers/airlock/access/all/medical/pharmacy, /turf/open/floor/iron/dark/small, /area/station/medical/pharmacy) -"rQJ" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/arrows{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted, -/turf/open/floor/iron/dark/side{ - dir = 1 - }, -/area/station/cargo/sorting) "rQN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral{ @@ -52187,6 +52261,17 @@ dir = 1 }, /area/station/security/courtroom) +"rRl" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/chair/stool/directional/east, +/obj/effect/landmark/start/quartermaster, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/qm) "rRq" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -52206,15 +52291,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/courtroom) -"rRO" = ( -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/bot, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/power/apc/auto_name/directional/south, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "rRQ" = ( /obj/structure/hedge, /obj/item/radio/intercom/directional/south, @@ -52274,6 +52350,15 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood/tile, /area/station/command/corporate_showroom) +"rSM" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "rST" = ( /turf/closed/wall, /area/station/cargo/storage) @@ -52373,13 +52458,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"rUX" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/landmark/start/hangover, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "rVj" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/light/cold/directional/north, @@ -52459,6 +52537,11 @@ }, /turf/open/floor/iron/dark, /area/station/security/processing) +"rWa" = ( +/obj/structure/closet, +/obj/machinery/camera/autoname/directional/east, +/turf/open/floor/iron/smooth, +/area/station/cargo/lobby) "rWm" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -52506,6 +52589,13 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron/grimy, /area/station/command/heads_quarters/ce) +"rWK" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/red/corner, +/turf/open/floor/iron, +/area/station/cargo/storage) "rWM" = ( /obj/structure/table, /obj/item/exodrone{ @@ -52540,6 +52630,19 @@ dir = 1 }, /area/station/cargo/bitrunning/den) +"rWR" = ( +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal/delivery_chute{ + name = "Science Deliveries" + }, +/obj/structure/sign/departments/science/directional/north, +/obj/effect/turf_decal/tile/purple/fourcorners, +/obj/structure/plasticflaps{ + name = "Science Deliveries" + }, +/obj/effect/turf_decal/delivery/white, +/turf/open/floor/iron/dark/side, +/area/station/cargo/sorting) "rWU" = ( /obj/structure/rack, /obj/effect/spawner/random/maintenance, @@ -52613,13 +52716,6 @@ /obj/structure/flora/bush/flowers_yw/style_3, /turf/open/floor/grass, /area/station/service/chapel) -"rYt" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/item/kirbyplants/random, -/turf/open/floor/iron/white, -/area/station/science/cytology) "rYx" = ( /obj/effect/turf_decal/siding/wideplating/dark, /obj/structure/cable, @@ -52728,9 +52824,6 @@ /obj/item/clothing/glasses/eyepatch/medical, /turf/open/floor/carpet/orange, /area/station/commons/dorms) -"rZV" = ( -/turf/open/floor/iron, -/area/station/cargo/lobby) "saq" = ( /obj/machinery/camera/directional/east{ c_tag = "Atmospherics Tank - Toxins" @@ -52881,19 +52974,6 @@ /obj/machinery/light_switch/directional/east, /turf/open/floor/iron/dark, /area/station/security/interrogation) -"sdJ" = ( -/obj/structure/disposalpipe/trunk, -/obj/machinery/disposal/delivery_chute{ - name = "Science Deliveries" - }, -/obj/structure/sign/departments/science/directional/north, -/obj/effect/turf_decal/tile/purple/fourcorners, -/obj/structure/plasticflaps{ - name = "Science Deliveries" - }, -/obj/effect/turf_decal/delivery/white, -/turf/open/floor/iron/dark/side, -/area/station/cargo/sorting) "sdZ" = ( /obj/machinery/portable_atmospherics/canister, /obj/machinery/atmospherics/components/unary/portables_connector/visible{ @@ -52911,12 +52991,6 @@ /obj/effect/turf_decal/siding/white/corner, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) -"sec" = ( -/obj/machinery/vending/wardrobe/chap_wardrobe, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/camera/autoname/directional/south, -/turf/open/floor/carpet/lone, -/area/station/service/chapel/office) "seq" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/plating, @@ -53015,6 +53089,14 @@ dir = 8 }, /area/station/engineering/main) +"sfL" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron, +/area/station/cargo/sorting) "sge" = ( /obj/structure/reagent_dispensers/beerkeg, /obj/item/clothing/head/costume/festive, @@ -53113,6 +53195,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/corner, /area/station/science/xenobiology) +"sjn" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/structure/chair/comfy/brown{ + buildstackamount = 0; + color = "#c45c57"; + dir = 8 + }, +/turf/open/floor/iron/grimy, +/area/station/service/library/private) "sjp" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -53158,6 +53252,11 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"sjX" = ( +/obj/item/radio/intercom/directional/east, +/obj/machinery/light/warm/directional/east, +/turf/open/floor/iron, +/area/station/cargo/storage) "sjY" = ( /obj/machinery/atmospherics/pipe/layer_manifold/purple/visible{ dir = 4 @@ -53292,16 +53391,6 @@ "slY" = ( /turf/closed/wall, /area/station/maintenance/port/fore) -"slZ" = ( -/obj/structure/closet/secure_closet/detective, -/obj/machinery/requests_console/directional/north{ - department = "Detective's Office"; - name = "Detective Requests Console" - }, -/obj/machinery/light/small/directional/west, -/obj/structure/detectiveboard/directional/west, -/turf/open/floor/wood, -/area/station/security/detectives_office) "smf" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -53495,6 +53584,23 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/white/small, /area/station/medical/cryo) +"spA" = ( +/obj/structure/table, +/obj/machinery/light/warm/directional/south, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/obj/effect/spawner/random/food_or_drink/snack/lizard{ + pixel_x = 9; + pixel_y = 3 + }, +/obj/effect/spawner/random/food_or_drink/refreshing_beverage{ + pixel_x = -5; + pixel_y = 7 + }, +/obj/structure/sign/poster/official/random/directional/south, +/turf/open/floor/iron, +/area/station/cargo/office) "spH" = ( /obj/machinery/door/firedoor, /turf/open/floor/iron/small, @@ -53548,14 +53654,6 @@ /obj/structure/sink/directional/south, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"sqq" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/sign/departments/cargo/directional/west, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "sqz" = ( /obj/effect/spawner/random/structure/closet_maintenance, /obj/effect/spawner/random/maintenance, @@ -53575,15 +53673,6 @@ }, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs/auxiliary) -"sqM" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/components/binary/volume_pump, -/obj/structure/railing{ - dir = 1 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/office) "sqV" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/chair/sofa/bench/left{ @@ -53622,9 +53711,6 @@ /obj/structure/disposalpipe/segment, /turf/closed/wall, /area/station/maintenance/port/greater) -"srw" = ( -/turf/closed/wall/r_wall/rust, -/area/station/maintenance/department/electrical) "srx" = ( /obj/machinery/power/port_gen/pacman, /obj/effect/turf_decal/bot{ @@ -53685,11 +53771,6 @@ }, /turf/open/floor/wood/tile, /area/station/command/meeting_room) -"ssj" = ( -/obj/item/kirbyplants/random, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood, -/area/station/service/chapel/office) "sso" = ( /obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/plating, @@ -53711,17 +53792,6 @@ }, /turf/open/floor/wood/tile, /area/station/science/lower) -"ssw" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/chair{ - dir = 4; - pixel_y = -2 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "ssz" = ( /turf/closed/wall/r_wall, /area/station/maintenance/department/science/xenobiology) @@ -53963,13 +54033,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) -"swr" = ( -/obj/effect/turf_decal/siding/wood, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/turf/open/floor/iron/smooth, -/area/station/command/heads_quarters/qm) "swu" = ( /turf/open/floor/wood, /area/station/security/detectives_office) @@ -54079,6 +54142,16 @@ /obj/structure/lattice, /turf/open/space/basic, /area/space/nearstation) +"sxQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/holopad, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/lobby) "sxT" = ( /obj/structure/cable, /obj/structure/lattice/catwalk, @@ -54172,12 +54245,37 @@ }, /turf/open/floor/wood, /area/station/service/chapel) +"sAy" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/railing, +/obj/structure/hedge, +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating_new/end{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/cargo/storage) "sBm" = ( /obj/structure/transport/linear/tram, /obj/structure/fluff/tram_rail/floor, /obj/structure/thermoplastic/light, /turf/open/floor/tram, /area/station/maintenance/port/aft) +"sBn" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/machinery/firealarm/directional/east, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/sorting) "sBq" = ( /obj/effect/turf_decal/siding/wood, /obj/structure/closet/l3closet/janitor, @@ -54364,6 +54462,12 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"sEd" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth, +/area/station/cargo/warehouse) "sEn" = ( /obj/item/clothing/head/cone, /obj/item/clothing/head/cone{ @@ -54529,6 +54633,9 @@ /obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, /area/station/maintenance/starboard/central) +"sHW" = ( +/turf/closed/wall, +/area/station/maintenance/hallway/abandoned_recreation) "sHX" = ( /obj/effect/turf_decal/stripes/red/line{ dir = 6 @@ -54568,10 +54675,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/grimy, /area/station/commons/vacant_room/office) -"sJf" = ( -/obj/structure/water_source/puddle, -/turf/open/misc/asteroid, -/area/station/maintenance/starboard/greater) "sJg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, /obj/machinery/door/airlock/command{ @@ -54617,12 +54720,6 @@ }, /turf/open/floor/iron/dark, /area/station/medical/medbay/aft) -"sJJ" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 6 - }, -/turf/open/floor/carpet/orange, -/area/station/command/heads_quarters/qm) "sJL" = ( /obj/structure/table, /obj/effect/turf_decal/siding{ @@ -54653,6 +54750,18 @@ }, /turf/open/floor/iron, /area/station/service/hydroponics) +"sKh" = ( +/obj/effect/landmark/start/librarian, +/turf/open/floor/iron/grimy, +/area/station/service/library/private) +"sKj" = ( +/obj/machinery/light/warm/directional/east, +/obj/effect/turf_decal/tile/brown/anticorner{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/lobby) "sKk" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -54706,6 +54815,24 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/white/small, /area/station/security/warden) +"sKO" = ( +/obj/structure/table, +/obj/item/disk/cargo{ + pixel_x = 6 + }, +/obj/item/storage/fancy/cigarettes/cigpack_robust{ + pixel_x = -3; + pixel_y = 11 + }, +/obj/item/pen{ + pixel_x = -9; + pixel_y = 0 + }, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "sKS" = ( /obj/structure/sign/poster/official/pda_ad/directional/north, /obj/structure/tank_holder/extinguisher, @@ -54713,20 +54840,6 @@ /obj/effect/gibspawner, /turf/open/floor/wood, /area/station/maintenance/starboard/greater) -"sKT" = ( -/obj/structure/rack, -/obj/item/clothing/gloves/cargo_gauntlet{ - pixel_y = -3 - }, -/obj/item/clothing/gloves/cargo_gauntlet, -/obj/item/clothing/gloves/cargo_gauntlet{ - pixel_y = 3 - }, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/iron/dark/textured_half{ - dir = 1 - }, -/area/station/cargo/storage) "sLB" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -55120,6 +55233,10 @@ dir = 8 }, /area/station/science/lobby) +"sRs" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/storage) "sRD" = ( /obj/machinery/shower/directional/west, /obj/effect/turf_decal/siding/thinplating/dark{ @@ -55240,6 +55357,16 @@ /obj/machinery/telecomms/bus/preset_one, /turf/open/floor/circuit, /area/station/tcommsat/server) +"sTN" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/sign/poster/official/random/directional/west, +/obj/structure/destructible/cult/item_dispenser/archives/library, +/obj/item/book/codex_gigas, +/obj/machinery/light/small/dim/directional/west, +/turf/open/floor/iron/grimy, +/area/station/service/library/private) "sTR" = ( /obj/structure/cable, /obj/effect/mapping_helpers/airlock/access/all/medical/general, @@ -55367,6 +55494,20 @@ "sVN" = ( /turf/closed/wall/r_wall, /area/station/security/prison/workout) +"sVQ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/red{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron, +/area/station/cargo/storage) "sWc" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/chem_master, @@ -55401,6 +55542,10 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/science/cytology) +"sXj" = ( +/obj/machinery/air_sensor/mix_tank, +/turf/open/floor/engine/vacuum, +/area/station/engineering/atmos) "sXm" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -55601,16 +55746,6 @@ }, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) -"sZy" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/cargo/lobby) "sZA" = ( /obj/structure/flora/bush/flowers_br/style_random, /obj/structure/flora/bush/flowers_pp/style_2, @@ -55799,11 +55934,6 @@ }, /turf/open/floor/iron/dark, /area/station/science/genetics) -"tcn" = ( -/obj/structure/cable, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "tcz" = ( /obj/effect/turf_decal/trimline/blue/filled/corner, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -56008,18 +56138,13 @@ /obj/structure/table/wood, /turf/open/floor/iron/grimy, /area/station/hallway/secondary/entry) -"tfx" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) +"tfj" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/light/small/directional/west, +/obj/structure/sign/poster/official/random/directional/west, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "tfy" = ( /obj/structure/closet/firecloset, /obj/effect/turf_decal/tile/red{ @@ -56222,6 +56347,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) +"tjg" = ( +/obj/machinery/atmospherics/components/binary/pump/off{ + name = "O2 To Pure" + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "tjj" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/turret_protected/ai_upload) @@ -56252,6 +56386,12 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron, /area/station/maintenance/port/fore) +"tki" = ( +/obj/structure/cable, +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/turf/open/floor/plating, +/area/station/cargo/warehouse) "tkm" = ( /obj/structure/window/spawner/directional/west, /obj/structure/flora/bush/large/style_random{ @@ -56303,6 +56443,9 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"tlG" = ( +/turf/closed/wall, +/area/station/cargo/lobby) "tlI" = ( /obj/structure/flora/bush/fullgrass/style_random, /obj/structure/flora/rock/pile/jungle/style_random, @@ -56563,12 +56706,6 @@ /obj/structure/window/reinforced/spawner/directional/west, /turf/open/floor/noslip, /area/station/security/tram) -"tpF" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/cargo/storage) "tpG" = ( /obj/structure/closet/athletic_mixed, /obj/effect/turf_decal/stripes/red/line{ @@ -56630,12 +56767,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, /area/station/commons/fitness/recreation) -"tqn" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) "tqo" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -56683,6 +56814,12 @@ dir = 1 }, /area/station/hallway/secondary/dock) +"tri" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/maintenance/hallway/abandoned_recreation) "trp" = ( /turf/closed/wall, /area/station/maintenance/port/aft) @@ -56726,6 +56863,28 @@ /obj/structure/sign/departments/aiupload/directional/south, /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) +"tsk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/cargo/sorting) +"tsl" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/door/airlock/public/glass{ + name = "Chapel Office" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/service/chapel_office, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/textured_half, +/area/station/service/chapel/office) "tst" = ( /obj/machinery/atmospherics/pipe/smart/simple/general/visible{ dir = 4 @@ -56762,10 +56921,6 @@ /obj/structure/flora/grass/jungle/b/style_random, /turf/open/floor/grass, /area/station/service/chapel) -"ttd" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "tts" = ( /obj/structure/altar_of_gods, /obj/item/book/bible, @@ -56836,6 +56991,14 @@ /obj/item/stack/sheet/glass/fifty, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) +"tuw" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/junction/flip{ + dir = 4 + }, +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "tux" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -57337,6 +57500,15 @@ }, /turf/open/floor/iron, /area/station/security/prison/workout) +"tBE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "tCh" = ( /obj/structure/chair/stool/directional/north, /obj/effect/turf_decal/siding/red, @@ -57501,13 +57673,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"tFe" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "tFs" = ( /obj/structure/table/glass, /obj/item/storage/medkit/regular{ @@ -57605,19 +57770,19 @@ /mob/living/carbon/human/species/monkey/punpun, /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) +"tHo" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/supermatter/room) "tHp" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/machinery/light/small/directional/east, /turf/open/floor/iron, /area/station/security/tram) -"tHv" = ( -/obj/structure/rack, -/obj/item/storage/medkit/regular, -/turf/open/floor/iron/dark/textured_half{ - dir = 1 - }, -/area/station/cargo/storage) "tHK" = ( /turf/closed/wall, /area/station/security/prison/shower) @@ -57627,13 +57792,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/catwalk_floor, /area/station/hallway/secondary/entry) -"tHV" = ( -/obj/effect/turf_decal/weather/dirt{ - dir = 10 - }, -/obj/structure/flora/tree/jungle/style_2, -/turf/open/floor/grass, -/area/station/service/chapel) "tIa" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/chair{ @@ -57642,19 +57800,6 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron, /area/station/security/brig/entrance) -"tIk" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) -"tIn" = ( -/obj/machinery/light/warm/directional/east, -/obj/effect/turf_decal/tile/brown/anticorner{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/lobby) "tIz" = ( /obj/structure/chair/wood{ dir = 8 @@ -57746,6 +57891,20 @@ "tJX" = ( /turf/open/floor/plating, /area/station/maintenance/aft) +"tJY" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/status_display/supply{ + pixel_x = 0; + pixel_y = 32 + }, +/obj/structure/cable, +/turf/open/floor/iron/small, +/area/station/cargo/lobby) "tKa" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -58016,6 +58175,12 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"tOu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "tOw" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -58117,6 +58282,11 @@ /obj/structure/cable, /turf/open/floor/catwalk_floor/iron_dark, /area/station/cargo/bitrunning/den) +"tQn" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/sign/poster/official/no_erp/directional/south, +/turf/open/floor/wood, +/area/station/maintenance/hallway/abandoned_recreation) "tQr" = ( /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/effect/turf_decal/siding/green{ @@ -58181,6 +58351,16 @@ /obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/iron, /area/station/security/courtroom) +"tRm" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Plasma to Pure" + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "tRw" = ( /obj/structure/disposalpipe/trunk{ dir = 8 @@ -58240,17 +58420,6 @@ }, /turf/open/floor/iron/kitchen/small, /area/station/security/prison/mess) -"tSY" = ( -/obj/structure/chair/sofa/bench/left{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/landmark/start/hangover, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/dark/side, -/area/station/hallway/primary/central/fore) "tTg" = ( /obj/structure/table, /obj/item/trash/cheesie{ @@ -58261,12 +58430,6 @@ /obj/item/storage/fancy/donut_box, /turf/open/floor/iron/checker, /area/station/security/breakroom) -"tTl" = ( -/obj/structure/chair/stool/directional/south, -/obj/machinery/light/small/directional/north, -/obj/structure/mirror/directional/north, -/turf/open/floor/iron/grimy, -/area/station/cargo/boutique) "tTp" = ( /obj/structure/cable, /obj/effect/turf_decal/caution/stand_clear/red{ @@ -58410,14 +58573,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"tVb" = ( -/obj/machinery/airalarm/directional/north, -/obj/item/kirbyplants/organic/applebush{ - pixel_y = 5 - }, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron/smooth, -/area/station/cargo/miningfoundry) "tVc" = ( /obj/machinery/door/airlock/external{ name = "Escape Pod One"; @@ -58508,13 +58663,6 @@ /obj/effect/spawner/random/vending/snackvend, /turf/open/floor/eighties/red, /area/station/hallway/primary/central/fore) -"tXc" = ( -/obj/machinery/light/cold/directional/west, -/obj/machinery/atmospherics/components/unary/thermomachine/freezer/layer2{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "tXl" = ( /obj/effect/turf_decal/sand/plating, /obj/structure/table/bronze, @@ -58829,9 +58977,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos/project) -"uct" = ( -/turf/open/floor/engine/vacuum, -/area/station/engineering/atmos) "ucy" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/red{ @@ -58856,6 +59001,13 @@ }, /turf/open/floor/wood, /area/station/service/chapel/funeral) +"ucO" = ( +/obj/machinery/light/floor, +/obj/structure/flora/bush/flowers_br/style_3, +/obj/structure/flora/bush/flowers_yw, +/obj/structure/flora/bush/flowers_pp, +/turf/open/floor/grass, +/area/station/hallway/primary/central/fore) "ucR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/airlock{ @@ -59030,6 +59182,20 @@ }, /turf/open/floor/iron/textured_large, /area/station/command/heads_quarters/hop) +"ueL" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/brown/line, +/obj/effect/turf_decal/stripes, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/machinery/airalarm/directional/west, +/obj/effect/landmark/start/bitrunner, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron/dark/smooth_half, +/area/station/cargo/bitrunning/den) "ueP" = ( /obj/machinery/camera/directional/east{ c_tag = "Atmospherics Tank - Air" @@ -59137,13 +59303,6 @@ }, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) -"ugt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron/small, -/area/station/engineering/break_room) "ugA" = ( /obj/effect/turf_decal/siding/yellow{ dir = 1 @@ -59267,14 +59426,6 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/dark/small, /area/station/medical/chemistry) -"uic" = ( -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/access/all/supply, -/obj/machinery/door/airlock/mining{ - name = "Mining Office" - }, -/turf/open/floor/plating, -/area/station/cargo/miningfoundry) "uid" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -59297,14 +59448,6 @@ }, /turf/open/floor/plating, /area/station/construction/mining/aux_base) -"uin" = ( -/obj/structure/disposalpipe/segment, -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/turf/open/floor/carpet/red, -/area/station/command/heads_quarters/qm) "uiw" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -59325,6 +59468,31 @@ }, /turf/open/floor/iron/white/small, /area/station/science/lobby) +"uiK" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/supply/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/station/maintenance/department/engine/atmos) +"uiO" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/item/pen{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/item/pen{ + pixel_x = -2; + pixel_y = 10 + }, +/obj/structure/sign/poster/official/the_owl/directional/west, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/wood, +/area/station/maintenance/hallway/abandoned_recreation) "uiS" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -59333,15 +59501,13 @@ dir = 1 }, /area/station/science/research) -"uiT" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 6 +"uiU" = ( +/obj/effect/spawner/structure/window, +/obj/structure/disposalpipe/segment{ + dir = 10 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron/grimy, -/area/station/service/library/private) +/turf/open/floor/plating, +/area/station/cargo/office) "uiY" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -59587,6 +59753,14 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"umL" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "unc" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -59602,6 +59776,12 @@ }, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs/auxiliary) +"unG" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningfoundry) "unK" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating, @@ -59666,19 +59846,6 @@ }, /turf/open/floor/iron/small, /area/station/hallway/primary/port) -"upo" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "upr" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -59703,6 +59870,17 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/hallway/primary/starboard) +"upF" = ( +/obj/structure/table, +/obj/item/toy/eightball{ + pixel_x = -4 + }, +/obj/item/wirecutters{ + pixel_y = 17; + pixel_x = 4 + }, +/turf/open/floor/iron/dark/small, +/area/station/commons/fitness/locker_room) "upG" = ( /obj/structure/railing, /obj/structure/cable, @@ -59712,6 +59890,12 @@ dir = 4 }, /area/station/command/heads_quarters/ce) +"upM" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/cargo/sorting) "upP" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -59965,12 +60149,6 @@ /obj/effect/spawner/random/trash, /turf/open/floor/plating, /area/station/maintenance/fore/greater) -"usi" = ( -/obj/structure/dresser, -/obj/structure/sign/poster/contraband/random/directional/east, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) "usF" = ( /obj/effect/mapping_helpers/broken_floor, /obj/structure/easel, @@ -60042,6 +60220,25 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"uur" = ( +/obj/structure/table/wood/fancy/green, +/obj/item/storage/wallet{ + pixel_x = -3; + pixel_y = 10 + }, +/obj/item/cigarette/cigar{ + pixel_x = -1; + pixel_y = -2 + }, +/obj/item/lighter{ + pixel_x = 11; + pixel_y = -7 + }, +/obj/machinery/light/directional/south, +/obj/structure/sign/poster/official/random/directional/south, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "uuz" = ( /obj/structure/rack, /obj/effect/turf_decal/tile/brown/opposingcorners{ @@ -60052,6 +60249,15 @@ /obj/machinery/camera/directional/west, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) +"uuA" = ( +/obj/structure/chair/stool/directional/south, +/obj/effect/turf_decal/siding/yellow{ + dir = 1 + }, +/obj/effect/landmark/start/atmospheric_technician, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/engineering/break_room) "uuS" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/siding/blue{ @@ -60124,6 +60330,14 @@ /obj/effect/landmark/transport/nav_beacon/tram/nav/immovable_rod, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"uwO" = ( +/obj/machinery/door/airlock/hatch{ + name = "Tool Supply Corridor" + }, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/effect/mapping_helpers/airlock/unres, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/commons/storage/tools) "uxJ" = ( /obj/machinery/smartfridge/chemistry/preloaded, /obj/machinery/door/firedoor, @@ -60173,12 +60387,6 @@ /obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, /area/station/maintenance/aft) -"uzG" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/iron, -/area/station/cargo/sorting) "uzJ" = ( /turf/open/floor/iron, /area/station/cargo/storage) @@ -60241,11 +60449,6 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/wood/tile, /area/station/command/bridge) -"uAN" = ( -/obj/structure/closet, -/obj/machinery/camera/autoname/directional/east, -/turf/open/floor/iron/smooth, -/area/station/cargo/lobby) "uAY" = ( /turf/open/floor/plating, /area/station/maintenance/department/bridge) @@ -60342,17 +60545,6 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/dark/small, /area/station/command/heads_quarters/captain/private) -"uBT" = ( -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/structure/window/spawner/directional/west, -/obj/effect/turf_decal/stripes/end, -/obj/structure/disposaloutlet{ - dir = 1 - }, -/turf/open/floor/plating, -/area/station/cargo/sorting) "uBY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/side, @@ -60535,12 +60727,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/security/brig) -"uEU" = ( -/obj/effect/spawner/structure/window, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/station/command/heads_quarters/qm) "uEZ" = ( /obj/effect/turf_decal/siding/wideplating, /obj/effect/turf_decal/siding/wideplating{ @@ -60774,6 +60960,23 @@ /obj/item/assault_pod/mining, /turf/open/floor/iron, /area/station/construction/mining/aux_base) +"uHE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/mining/glass{ + name = "Delivery Office" + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 8 + }, +/turf/open/floor/iron/small, +/area/station/cargo/sorting) "uHF" = ( /obj/machinery/atmospherics/pipe/layer_manifold/supply/visible, /obj/machinery/door/airlock{ @@ -60799,19 +61002,6 @@ dir = 1 }, /area/station/service/chapel/office) -"uHK" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/button/door/directional/east{ - id = "qm_warehouse_aft"; - name = "Warehouse Door Control"; - pixel_x = -24; - pixel_y = -23; - req_access = list("cargo") - }, -/obj/machinery/light/small/dim/directional/west, -/obj/effect/turf_decal/loading_area, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "uHR" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -60849,6 +61039,16 @@ }, /turf/open/floor/iron/white/small, /area/station/service/hydroponics) +"uIG" = ( +/obj/machinery/computer/cargo/request{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/iron/dark/side, +/area/station/cargo/lobby) "uIP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -60902,6 +61102,27 @@ /obj/machinery/shieldgen, /turf/open/floor/iron/dark/small, /area/station/engineering/storage_shared) +"uJI" = ( +/obj/machinery/power/apc/auto_name/directional/south, +/obj/effect/landmark/start/quartermaster, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/cargo/storage) +"uJV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "uKh" = ( /obj/structure/closet/emcloset, /obj/effect/turf_decal/bot, @@ -60967,6 +61188,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating/rust, /area/station/engineering/main) +"uLz" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "uLD" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -61011,10 +61241,6 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/hallway/secondary/service) -"uMj" = ( -/obj/structure/cable, -/turf/closed/wall, -/area/station/maintenance/port/greater) "uMl" = ( /obj/machinery/cryo_cell, /obj/effect/turf_decal/stripes/line{ @@ -61142,11 +61368,6 @@ }, /turf/open/floor/wood/tile, /area/station/maintenance/central/lesser) -"uOA" = ( -/obj/structure/cable, -/obj/item/banner/cargo, -/turf/open/floor/iron/smooth, -/area/station/command/heads_quarters/qm) "uOH" = ( /obj/item/kirbyplants/random, /obj/machinery/light_switch/directional/west, @@ -61157,6 +61378,18 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/wood/tile, /area/station/command/meeting_room) +"uPf" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/maintenance{ + name = "Maintenance" + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "uPr" = ( /obj/structure/weightmachine/weightlifter, /obj/effect/turf_decal/bot, @@ -61229,6 +61462,17 @@ "uQo" = ( /turf/open/floor/engine/air, /area/station/engineering/atmos) +"uQt" = ( +/obj/machinery/door/airlock/command/glass{ + name = "Quartermaster's Office" + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/qm, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/textured_half{ + dir = 1 + }, +/area/station/command/heads_quarters/qm) "uQu" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/machinery/status_display/door_timer{ @@ -61303,24 +61547,6 @@ }, /turf/open/floor/iron/kitchen/small, /area/station/service/kitchen) -"uRB" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/arrows{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable, -/turf/open/floor/iron/dark/side{ - dir = 1 - }, -/area/station/cargo/sorting) "uRF" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -61389,6 +61615,14 @@ /obj/effect/landmark/navigate_destination/tcomms, /turf/open/floor/iron, /area/station/science/lower) +"uSM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/spawner/random/structure/closet_empty/crate, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "uSN" = ( /obj/effect/spawner/random/vending/snackvend, /obj/effect/turf_decal/tile/neutral/half/contrasted{ @@ -61405,14 +61639,6 @@ }, /turf/open/floor/iron/textured_half, /area/station/commons/storage/art) -"uSQ" = ( -/obj/machinery/computer/cargo{ - dir = 4 - }, -/turf/open/floor/iron/dark/textured_half{ - dir = 1 - }, -/area/station/cargo/storage) "uTb" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/structure/table/glass, @@ -61491,6 +61717,36 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"uUq" = ( +/obj/structure/table/wood, +/obj/item/folder/yellow{ + pixel_x = 3; + pixel_y = 6 + }, +/obj/item/dest_tagger{ + pixel_x = -11; + pixel_y = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/carpet/orange, +/area/station/command/heads_quarters/qm) +"uUz" = ( +/obj/machinery/light/small/directional/east, +/obj/machinery/light_switch/directional/east, +/obj/effect/mapping_helpers/turn_off_lights_with_lightswitch, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "uUA" = ( /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, @@ -61534,6 +61790,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"uVB" = ( +/obj/item/kirbyplants/organic/plant17, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/sign/calendar{ + pixel_x = 0; + pixel_y = -26 + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/wood, +/area/station/maintenance/hallway/abandoned_recreation) "uVD" = ( /obj/effect/mapping_helpers/broken_floor, /obj/machinery/airalarm/directional/east, @@ -61556,12 +61823,6 @@ "uVT" = ( /turf/closed/wall/r_wall, /area/station/command/heads_quarters/hop) -"uVU" = ( -/obj/structure/chair/stool/directional/west, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/wood, -/area/station/maintenance/hallway/abandoned_recreation) "uWe" = ( /obj/structure/sign/directions/science{ dir = 4; @@ -61730,13 +61991,6 @@ }, /turf/open/floor/iron, /area/station/security/brig/entrance) -"uZs" = ( -/obj/effect/landmark/event_spawn, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "uZA" = ( /obj/structure/chair{ dir = 1; @@ -62195,6 +62449,15 @@ /obj/effect/mapping_helpers/airlock/access/any/science/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) +"vgL" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/components/binary/volume_pump, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/office) "vgN" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/yellow/opposingcorners, @@ -62310,14 +62573,6 @@ /obj/effect/mapping_helpers/airlock/unres, /turf/open/floor/plating, /area/station/maintenance/starboard/central) -"viM" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) "viP" = ( /obj/structure/closet/emcloset, /turf/open/floor/iron/small, @@ -62366,6 +62621,15 @@ /obj/structure/alien/weeds, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"vjs" = ( +/obj/structure/disposalpipe/segment, +/obj/item/food/grown/pineapple{ + pixel_x = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/storage) "vjI" = ( /obj/machinery/door/airlock{ name = "Bathrooms" @@ -62373,13 +62637,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/textured_half, /area/station/commons/toilet/restrooms) -"vjL" = ( -/obj/machinery/vending/wardrobe/cargo_wardrobe, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) "vkh" = ( /turf/closed/wall, /area/station/service/bar) @@ -62448,6 +62705,17 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/command/heads_quarters/qm) +"vkR" = ( +/obj/machinery/door/airlock/engineering/glass/critical{ + heat_proof = 1; + name = "Supermatter Chamber" + }, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "vkS" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -62798,15 +63066,6 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/aft) -"vpl" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) "vpq" = ( /obj/machinery/door/poddoor/massdriver_ordnance, /obj/effect/turf_decal/stripes/end, @@ -63003,6 +63262,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/herringbone, /area/station/security/courtroom) +"vse" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "vsf" = ( /obj/structure/closet/crate{ name = "Materials Crate" @@ -63176,14 +63440,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"vuN" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "vuR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -63265,15 +63521,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/construction) -"vvB" = ( -/obj/effect/landmark/start/cargo_technician, -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/turf/open/floor/iron/dark/side{ - dir = 4 - }, -/area/station/cargo/storage) "vvC" = ( /obj/machinery/door/firedoor, /obj/effect/mapping_helpers/airlock/access/any/engineering/construction, @@ -63311,12 +63558,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/wood, /area/station/commons/fitness/recreation) -"vvZ" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "vwc" = ( /obj/structure/chair/comfy/brown{ buildstackamount = 0; @@ -63436,18 +63677,6 @@ "vxt" = ( /turf/closed/wall, /area/station/maintenance/department/engine) -"vxA" = ( -/obj/effect/turf_decal/tile/neutral/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/turf/open/floor/iron/small, -/area/station/hallway/secondary/service) "vxM" = ( /turf/open/floor/iron, /area/station/commons/storage/art) @@ -63550,6 +63779,10 @@ /obj/structure/cable, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) +"vzD" = ( +/obj/effect/turf_decal/stripes/white/line, +/turf/open/floor/iron/dark/side, +/area/station/cargo/storage) "vzE" = ( /obj/structure/window/spawner/directional/east, /obj/structure/window/spawner/directional/west, @@ -63726,12 +63959,6 @@ /obj/structure/lattice, /turf/open/space/basic, /area/space/nearstation) -"vCo" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) "vCp" = ( /obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible{ dir = 1 @@ -63753,10 +63980,6 @@ }, /turf/open/floor/iron/dark, /area/station/science/xenobiology) -"vCK" = ( -/obj/effect/turf_decal/stripes/white/corner, -/turf/open/floor/iron/dark/corner, -/area/station/cargo/storage) "vCO" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, @@ -63784,26 +64007,6 @@ }, /turf/open/floor/iron, /area/station/security/brig/entrance) -"vDg" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/conveyor{ - dir = 1; - id = "packageSort2" - }, -/obj/machinery/door/window/left/directional/west{ - name = "Crate Security Door"; - req_access = list("shipping") - }, -/turf/open/floor/plating, -/area/station/cargo/sorting) "vDB" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -63830,23 +64033,12 @@ /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron, /area/station/security/lockers) -"vDS" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/obj/item/clothing/suit/hooded/wintercoat/engineering, -/obj/structure/cable, -/turf/open/floor/iron/small, -/area/station/engineering/break_room) "vDV" = ( /turf/closed/wall/r_wall, /area/station/command/heads_quarters/cmo) "vDX" = ( /turf/closed/wall, /area/station/maintenance/starboard/lesser) -"vDY" = ( -/turf/open/floor/iron/stairs{ - dir = 8 - }, -/area/station/cargo/storage) "vEa" = ( /obj/machinery/griddle, /turf/open/floor/iron/kitchen/small, @@ -64057,12 +64249,6 @@ /obj/structure/extinguisher_cabinet/directional/south, /turf/open/floor/iron/dark/small, /area/station/medical/morgue) -"vHm" = ( -/obj/structure/cable, -/obj/effect/turf_decal/siding/wood, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron/smooth, -/area/station/command/heads_quarters/qm) "vHu" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/closet/secure_closet/security/sec, @@ -64095,15 +64281,6 @@ /obj/machinery/light/cold/directional/east, /turf/open/floor/engine, /area/station/science/xenobiology) -"vHU" = ( -/obj/machinery/door/airlock/engineering{ - name = "Engineering Office" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/engine_equipment, -/turf/open/floor/iron/smooth_half{ - dir = 8 - }, -/area/station/maintenance/department/engine/atmos) "vHV" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -64122,15 +64299,6 @@ }, /turf/open/floor/wood, /area/station/engineering/atmos/office) -"vIb" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/landmark/navigate_destination/chapel, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "vId" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -64214,6 +64382,13 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"vJE" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Public Shrine" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/textured_half, +/area/station/hallway/primary/port) "vJG" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/brown/opposingcorners, @@ -64672,6 +64847,10 @@ /obj/structure/sign/poster/official/random/directional/east, /turf/open/floor/eighties/red, /area/station/hallway/primary/central/fore) +"vRc" = ( +/obj/effect/turf_decal/loading_area/white, +/turf/open/floor/iron, +/area/station/cargo/lobby) "vRd" = ( /obj/structure/table, /obj/effect/turf_decal/tile/dark_red, @@ -64703,23 +64882,6 @@ /obj/machinery/power/apc/auto_name/directional/west, /turf/open/floor/iron/dark, /area/station/security/interrogation) -"vRH" = ( -/obj/structure/table, -/obj/machinery/light/warm/directional/south, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/obj/effect/spawner/random/food_or_drink/snack/lizard{ - pixel_x = 9; - pixel_y = 3 - }, -/obj/effect/spawner/random/food_or_drink/refreshing_beverage{ - pixel_x = -5; - pixel_y = 7 - }, -/obj/structure/sign/poster/official/random/directional/south, -/turf/open/floor/iron, -/area/station/cargo/office) "vSg" = ( /turf/closed/wall/r_wall, /area/station/hallway/primary/aft) @@ -64739,6 +64901,17 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"vSn" = ( +/obj/structure/hedge, +/obj/machinery/status_display/supply{ + pixel_y = 32 + }, +/obj/machinery/light/small/directional/north, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/iron/smooth, +/area/station/cargo/storage) "vSt" = ( /obj/effect/turf_decal/siding/wideplating{ dir = 4 @@ -64801,9 +64974,6 @@ }, /turf/open/floor/iron, /area/station/commons/storage/art) -"vTb" = ( -/turf/closed/wall, -/area/station/security/checkpoint/supply) "vTf" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer2{ dir = 9 @@ -64921,11 +65091,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/port/aft) -"vUr" = ( -/obj/structure/closet/emcloset, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/iron/dark/side, -/area/station/hallway/primary/central/fore) "vUz" = ( /obj/structure/table_frame, /obj/effect/decal/cleanable/glass, @@ -65095,6 +65260,14 @@ }, /turf/open/floor/iron/small, /area/station/hallway/primary/central/fore) +"vWy" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/sign/departments/cargo/directional/west, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "vWA" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/machinery/firealarm/directional/south, @@ -65175,6 +65348,15 @@ /obj/machinery/power/apc/auto_name/directional/west, /turf/open/floor/iron, /area/station/security/prison/rec) +"vXv" = ( +/obj/structure/table, +/obj/item/toy/foamblade, +/obj/item/analyzer{ + pixel_y = 8; + pixel_x = -9 + }, +/turf/open/floor/iron/dark/small, +/area/station/commons/fitness/locker_room) "vXy" = ( /obj/effect/turf_decal/stripes/corner, /turf/open/floor/iron/white/corner{ @@ -65296,38 +65478,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"vZf" = ( -/obj/structure/table, -/obj/item/disk/cargo{ - pixel_x = 6 - }, -/obj/item/storage/fancy/cigarettes/cigpack_robust{ - pixel_x = -3; - pixel_y = 11 - }, -/obj/item/pen{ - pixel_x = -9; - pixel_y = 0 - }, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) -"vZg" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/structure/hedge, -/obj/effect/turf_decal/siding/thinplating{ - dir = 8 - }, -/obj/effect/turf_decal/siding/thinplating_new/end{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/cargo/storage) "vZm" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron, @@ -65358,6 +65508,11 @@ }, /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) +"vZS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/cargo/lobby) "vZW" = ( /obj/structure/chair/sofa/bench/right{ dir = 4 @@ -65412,11 +65567,6 @@ /obj/machinery/vending/games, /turf/open/floor/wood/parquet, /area/station/service/library) -"waJ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "waN" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 @@ -65428,24 +65578,6 @@ /obj/structure/bookcase/random/religion, /turf/open/floor/wood, /area/station/service/chapel/office) -"waT" = ( -/obj/structure/railing{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/conveyor_switch/oneway{ - pixel_x = 4; - pixel_y = 10; - id = "mining" - }, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 6 - }, -/turf/open/floor/iron/smooth, -/area/station/cargo/miningfoundry) "waX" = ( /obj/effect/turf_decal/tile/yellow/opposingcorners, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -65490,6 +65622,15 @@ dir = 1 }, /area/station/science/lower) +"wbt" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/closet/secure_closet/quartermaster, +/obj/machinery/light_switch/directional/south, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/qm) "wbH" = ( /obj/machinery/holopad, /obj/effect/decal/cleanable/dirt, @@ -65619,20 +65760,6 @@ }, /turf/open/space/basic, /area/space/nearstation) -"wdG" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/sorting) "wdS" = ( /obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ dir = 4 @@ -65640,12 +65767,6 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/circuit, /area/station/tcommsat/server) -"wdV" = ( -/obj/machinery/camera/autoname/directional/west, -/turf/open/floor/iron/stairs{ - dir = 1 - }, -/area/station/cargo/lobby) "wdY" = ( /obj/effect/spawner/random/structure/table, /turf/open/floor/plating, @@ -65804,6 +65925,13 @@ }, /turf/open/floor/iron, /area/station/security/execution/transfer) +"whg" = ( +/obj/effect/landmark/start/hangover, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "whl" = ( /obj/machinery/portable_atmospherics/canister/oxygen, /obj/effect/turf_decal/stripes/line{ @@ -65896,6 +66024,14 @@ /obj/structure/cable, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"wie" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/effect/spawner/random/vending/colavend, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/dark/side, +/area/station/cargo/lobby) "win" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -65929,14 +66065,6 @@ "wja" = ( /turf/closed/wall/r_wall, /area/station/commons/toilet/auxiliary) -"wjj" = ( -/obj/structure/filingcabinet, -/obj/machinery/firealarm/directional/east, -/obj/effect/turf_decal/tile/red/anticorner/contrasted{ - dir = 4 - }, -/turf/open/floor/iron/smooth, -/area/station/security/checkpoint/supply) "wjq" = ( /obj/structure/sign/painting/large/library{ dir = 1 @@ -65947,13 +66075,6 @@ /obj/structure/tank_holder/extinguisher, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"wjw" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/supermatter/room) "wjG" = ( /obj/structure/filingcabinet, /turf/open/floor/iron/dark/small, @@ -65995,13 +66116,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) -"wkD" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "wkF" = ( /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, @@ -66123,6 +66237,15 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/cargo/office) +"wnf" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating/elevatorshaft, +/area/station/engineering/break_room) "wnw" = ( /obj/machinery/pdapainter/engineering, /obj/effect/turf_decal/bot, @@ -66176,13 +66299,6 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron/dark/small, /area/station/medical/chemistry) -"woh" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "woi" = ( /turf/closed/wall/r_wall, /area/station/maintenance/solars/starboard/fore) @@ -66253,6 +66369,15 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) +"woY" = ( +/obj/structure/chair/stool/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/open/floor/carpet/orange, +/area/station/command/heads_quarters/qm) "wpa" = ( /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) @@ -66280,10 +66405,6 @@ "wpO" = ( /turf/closed/wall/r_wall, /area/station/security/processing) -"wpP" = ( -/obj/machinery/skill_station, -/turf/open/floor/wood/parquet, -/area/station/service/library) "wqb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -66297,17 +66418,18 @@ /obj/effect/mapping_helpers/requests_console/ore_update, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) -"wqd" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ - dir = 8 - }, -/obj/structure/extinguisher_cabinet/directional/west, -/turf/open/floor/iron, -/area/station/cargo/sorting) "wqj" = ( /turf/closed/wall, /area/station/commons/toilet/restrooms) +"wqx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "wqz" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/visible, /turf/open/floor/engine, @@ -66413,15 +66535,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/carpet/lone, /area/station/service/abandoned_gambling_den) -"wrV" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "wrW" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -66503,6 +66616,14 @@ }, /turf/open/floor/iron/dark/side, /area/station/science/xenobiology) +"wtd" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor/shutters{ + id = "qm_warehouse_aft"; + name = "Warehouse Shutters" + }, +/turf/open/floor/plating, +/area/station/cargo/warehouse) "wte" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 1 @@ -66722,6 +66843,13 @@ /obj/structure/hedge, /turf/open/floor/iron/grimy, /area/station/science/cubicle) +"wvF" = ( +/obj/structure/filingcabinet/filingcabinet, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "wvM" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -66734,13 +66862,6 @@ }, /turf/open/floor/engine, /area/station/engineering/atmospherics_engine) -"wwc" = ( -/obj/effect/spawner/structure/window, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "wwk" = ( /obj/effect/turf_decal/siding/thinplating_new/light{ dir = 8 @@ -66811,10 +66932,6 @@ /obj/effect/mapping_helpers/airlock/access/any/science/maintenance, /turf/open/floor/iron/cafeteria, /area/station/maintenance/starboard/fore) -"wxg" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron, -/area/station/cargo/sorting) "wxu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/closed/wall/r_wall, @@ -66824,6 +66941,34 @@ /obj/machinery/light/small/dim/directional/north, /turf/open/floor/iron/dark, /area/station/maintenance/department/engine/atmos) +"wxJ" = ( +/obj/machinery/door/airlock/engineering/glass/critical{ + heat_proof = 1; + name = "Supermatter Chamber" + }, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter) +"wxM" = ( +/obj/machinery/firealarm/directional/east, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/obj/machinery/computer/order_console/cook{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "wxR" = ( /obj/structure/rack, /obj/effect/spawner/random/maintenance, @@ -66910,6 +67055,12 @@ /obj/machinery/light/warm/directional/east, /turf/open/floor/iron/dark, /area/station/science/genetics) +"wyG" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/carpet/orange, +/area/station/command/heads_quarters/qm) "wyH" = ( /obj/machinery/door/airlock/maintenance{ name = "Maintenance" @@ -66948,15 +67099,10 @@ "wzv" = ( /turf/open/floor/plating, /area/station/maintenance/department/electrical) -"wzB" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 - }, +"wzz" = ( +/obj/structure/disposalpipe/segment, /turf/open/floor/iron, -/area/station/cargo/lobby) +/area/station/cargo/sorting) "wzF" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -67001,6 +67147,16 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"wAh" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/status_display/supply{ + pixel_x = -2; + pixel_y = 32 + }, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/cargo/storage) "wAj" = ( /obj/structure/table/wood, /obj/machinery/computer/records/medical/laptop{ @@ -67053,16 +67209,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/hallway/secondary/construction) -"wBj" = ( -/obj/structure/railing{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 4 - }, -/turf/open/floor/iron/smooth, -/area/station/cargo/miningfoundry) "wBm" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -67123,15 +67269,6 @@ /obj/machinery/computer/arcade/orion_trail/kobayashi, /turf/open/floor/wood/tile, /area/station/maintenance/port/lesser) -"wCC" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/landmark/navigate_destination/chapel, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "wCH" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 9 @@ -67218,6 +67355,15 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) +"wDQ" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/spawner/random/structure/steam_vent, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "wEf" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral{ @@ -67293,20 +67439,6 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) -"wFo" = ( -/obj/structure/table/wood, -/obj/item/hand_labeler_refill{ - pixel_x = -4; - pixel_y = 26 - }, -/obj/structure/sign/poster/official/random/directional/south, -/obj/machinery/fax{ - fax_name = "Quartermaster's Office"; - name = "Quartermaster's Fax Machine"; - pixel_y = 7 - }, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) "wFq" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -67454,16 +67586,6 @@ /obj/structure/flora/rock/pile/jungle/style_random, /turf/open/misc/sandy_dirt, /area/station/medical/medbay/lobby) -"wIk" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "wIm" = ( /obj/machinery/door/airlock/hatch{ name = "Centcom Dock" @@ -67665,12 +67787,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"wLv" = ( -/obj/machinery/light/floor, -/obj/structure/flora/bush/flowers_br, -/obj/structure/flora/bush/flowers_br/style_3, -/turf/open/floor/grass, -/area/station/hallway/primary/central/fore) "wLw" = ( /obj/machinery/atmospherics/pipe/bridge_pipe/cyan/visible, /obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible{ @@ -67708,14 +67824,6 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/service/library) -"wMy" = ( -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "wMz" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -67974,15 +68082,6 @@ /obj/effect/landmark/start/depsec/medical, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs/auxiliary) -"wOK" = ( -/obj/structure/cable, -/obj/machinery/airalarm/directional/north, -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) "wOS" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -67992,26 +68091,6 @@ /obj/effect/landmark/navigate_destination/disposals, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) -"wOZ" = ( -/obj/effect/decal/cleanable/molten_object, -/obj/effect/landmark/event_spawn, -/obj/structure/table, -/obj/item/reagent_containers/cup/bottle/welding_fuel{ - pixel_y = -3; - pixel_x = 13 - }, -/obj/item/stack/sheet/iron/ten{ - pixel_y = -6; - pixel_x = -2 - }, -/obj/item/hand_labeler{ - pixel_y = -15 - }, -/obj/item/reagent_containers/cup/watering_can{ - pixel_y = 12 - }, -/turf/open/floor/iron/dark, -/area/station/commons/storage/tools) "wPd" = ( /turf/closed/wall/r_wall, /area/station/maintenance/starboard/lesser) @@ -68067,16 +68146,6 @@ }, /turf/open/floor/iron/smooth, /area/station/engineering/main) -"wPO" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - name = "O2 to Airmix" - }, -/obj/machinery/light/no_nightlight/directional/north, -/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "wPP" = ( /obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ dir = 1 @@ -68116,14 +68185,6 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood, /area/station/service/abandoned_gambling_den) -"wQd" = ( -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/turf_decal/siding/thinplating_new, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/smooth, -/area/station/cargo/miningfoundry) "wQi" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ dir = 4 @@ -68337,25 +68398,6 @@ /obj/effect/spawner/random/techstorage/engineering_all, /turf/open/floor/iron, /area/station/engineering/storage/tech) -"wSQ" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=8"; - location = "QM #1" - }, -/obj/effect/turf_decal/delivery, -/mob/living/simple_animal/bot/mulebot, -/obj/machinery/camera/autoname/directional/south, -/turf/open/floor/iron, -/area/station/cargo/storage) -"wST" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/effect/turf_decal/tile/brown/anticorner{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/lobby) "wSZ" = ( /turf/closed/wall/r_wall, /area/station/maintenance/hallway/abandoned_command) @@ -68493,24 +68535,6 @@ }, /turf/open/floor/wood, /area/station/hallway/primary/central/aft) -"wUF" = ( -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/status_display/supply{ - pixel_x = 0; - pixel_y = 32 - }, -/obj/structure/cable, -/turf/open/floor/iron/small, -/area/station/cargo/lobby) -"wUH" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/wood, -/area/station/service/chapel/office) "wUS" = ( /obj/structure/window/reinforced/spawner/directional/north, /obj/effect/turf_decal/stripes/line{ @@ -68529,6 +68553,12 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/science/ordnance/testlab) +"wVr" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/turf/open/floor/iron/smooth, +/area/station/cargo/lobby) "wVI" = ( /obj/machinery/biogenerator, /obj/machinery/light/small/dim/directional/north, @@ -68563,17 +68593,6 @@ dir = 1 }, /area/station/hallway/secondary/construction) -"wWA" = ( -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "wWD" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/landmark/start/hangover, @@ -68712,34 +68731,6 @@ }, /turf/open/misc/sandy_dirt, /area/station/security/tram) -"wYX" = ( -/obj/effect/turf_decal/siding/white{ - dir = 9 - }, -/obj/structure/table, -/obj/structure/railing{ - dir = 9 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted, -/obj/item/radio{ - desc = "An old handheld radio. You could use it, if you really wanted to."; - icon_state = "radio"; - name = "old radio"; - pixel_x = -4; - pixel_y = 10 - }, -/obj/item/reagent_containers/cup/glass/coffee{ - pixel_x = 15; - pixel_y = 8 - }, -/obj/effect/spawner/random/food_or_drink/donuts{ - pixel_x = 8; - pixel_y = 0 - }, -/turf/open/floor/iron/dark/side{ - dir = 1 - }, -/area/station/cargo/lobby) "wZa" = ( /obj/docking_port/stationary{ dir = 8; @@ -68823,12 +68814,6 @@ }, /turf/open/floor/iron/white/corner, /area/station/hallway/secondary/exit/departure_lounge) -"xah" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/maintenance/central/greater) "xam" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -68965,6 +68950,13 @@ "xck" = ( /turf/closed/wall/r_wall, /area/station/engineering/atmos/office) +"xco" = ( +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "xcq" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 8 @@ -68987,6 +68979,22 @@ /obj/structure/window/spawner/directional/north, /turf/open/floor/grass, /area/station/service/hydroponics) +"xcA" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/pen{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/book/manual/wiki/security_space_law, +/obj/item/radio/intercom/directional/east, +/obj/machinery/camera/autoname/directional/south, +/obj/effect/turf_decal/tile/red/anticorner/contrasted, +/turf/open/floor/iron/smooth, +/area/station/security/checkpoint/supply) "xcF" = ( /turf/open/floor/iron, /area/station/commons/dorms) @@ -69021,19 +69029,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) -"xdl" = ( -/obj/machinery/computer/piratepad_control/civilian{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 - }, -/obj/machinery/camera/autoname/directional/south, -/obj/machinery/status_display/supply{ - pixel_y = -32 - }, -/turf/open/floor/iron/dark/side, -/area/station/cargo/lobby) "xdo" = ( /obj/machinery/firealarm/directional/north, /obj/item/kirbyplants/random/fullysynthetic, @@ -69187,6 +69182,18 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/white/textured_large, /area/station/science/research) +"xeZ" = ( +/obj/machinery/light/small/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/stairs{ + dir = 8 + }, +/area/station/cargo/storage) "xfa" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -69338,6 +69345,21 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"xgK" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/arrows{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/cargo/sorting) "xhk" = ( /obj/machinery/door/airlock/public/glass{ name = "Public Shrine" @@ -69348,6 +69370,15 @@ dir = 8 }, /area/station/hallway/primary/central/fore) +"xhC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/lobby) "xhD" = ( /obj/structure/table, /obj/item/clothing/shoes/ducky_shoes{ @@ -69365,16 +69396,6 @@ /obj/effect/landmark/navigate_destination/lawyer, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) -"xhL" = ( -/obj/machinery/door/airlock/mining{ - name = "Mining Office" - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/all/supply, -/turf/open/floor/iron/smooth, -/area/station/cargo/warehouse) "xhM" = ( /obj/structure/table, /obj/item/book/manual/wiki/tcomms, @@ -69476,6 +69497,20 @@ dir = 5 }, /area/station/science/lower) +"xjc" = ( +/obj/machinery/door/airlock/mining/glass{ + name = "Cargo Office" + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/small, +/area/station/cargo/office) "xjg" = ( /turf/open/floor/iron/dark, /area/station/security/interrogation) @@ -69567,10 +69602,6 @@ "xkt" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/security/armory) -"xkA" = ( -/obj/structure/filingcabinet/chestdrawer, -/turf/open/floor/iron/smooth, -/area/station/cargo/lobby) "xkK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -69919,23 +69950,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"xqr" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/arrows{ - dir = 1 - }, -/obj/item/radio/intercom/directional/west, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted, -/turf/open/floor/iron/dark/side{ - dir = 1 - }, -/area/station/cargo/sorting) "xqs" = ( /obj/structure/chair/stool/directional/south, /turf/open/floor/eighties/red, @@ -69994,6 +70008,17 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/catwalk_floor/iron_white, /area/station/science/robotics/augments) +"xrt" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/landmark/start/hangover, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/hallway/primary/central/fore) "xru" = ( /obj/item/kirbyplants/random/fullysynthetic, /obj/machinery/airalarm/directional/east, @@ -70112,12 +70137,6 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/commons/dorms) -"xsB" = ( -/obj/structure/cable, -/obj/item/reagent_containers/pill/maintenance, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "xsC" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/extinguisher_cabinet/directional/west, @@ -70175,6 +70194,20 @@ dir = 4 }, /area/station/science/lobby) +"xsP" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/sorting) "xsT" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -70273,14 +70306,6 @@ "xul" = ( /turf/open/floor/iron, /area/station/maintenance/port/aft) -"xum" = ( -/obj/effect/spawner/structure/window, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/station/cargo/office) "xur" = ( /turf/closed/wall, /area/station/security/processing) @@ -70412,6 +70437,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) +"xvR" = ( +/obj/machinery/firealarm/directional/east, +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/trimline/brown/line, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/machinery/light/small/directional/east, +/obj/structure/sign/poster/official/random/directional/north, +/turf/open/floor/iron/dark/smooth_half, +/area/station/cargo/bitrunning/den) "xvT" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/turret_protected/aisat/maint) @@ -70454,11 +70490,6 @@ /obj/structure/bed/maint, /turf/open/floor/light/colour_cycle/dancefloor_b, /area/station/maintenance/starboard/central) -"xwn" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, -/obj/machinery/portable_atmospherics/pump, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "xwr" = ( /obj/effect/turf_decal/siding/thinplating_new/light, /obj/machinery/recharge_station, @@ -70510,13 +70541,6 @@ /obj/structure/tram, /turf/open/floor/tram, /area/station/security/tram) -"xwO" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/red, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron, -/area/station/cargo/storage) "xwQ" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/white/line{ @@ -70569,20 +70593,6 @@ /obj/structure/closet/secure_closet/personal, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) -"xxG" = ( -/obj/machinery/door/airlock/grunge{ - name = "Janitorial Closet" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron/textured_half{ - dir = 8 - }, -/area/station/service/janitor) "xxL" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron/checker{ @@ -70594,6 +70604,17 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/command/heads_quarters/hos) +"xyb" = ( +/obj/structure/window/spawner/directional/west, +/obj/effect/turf_decal/stripes/end{ + dir = 1 + }, +/obj/machinery/disposal/delivery_chute, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/cargo/sorting) "xyh" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -70753,17 +70774,6 @@ /obj/effect/spawner/random/trash, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"xAx" = ( -/obj/machinery/door/airlock/engineering/glass/critical{ - heat_proof = 1; - name = "Supermatter Chamber" - }, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "xAA" = ( /obj/effect/turf_decal/tile/green/half/contrasted{ dir = 1 @@ -70786,6 +70796,15 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) +"xAO" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/junction/flip{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/sorting) "xAR" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -70918,6 +70937,21 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/port/lesser) +"xDl" = ( +/obj/structure/bed, +/obj/effect/decal/cleanable/dirt, +/obj/item/bedsheet/qm, +/obj/item/reagent_containers/cup/glass/bottle/tequila{ + pixel_x = -5; + pixel_y = 2 + }, +/obj/structure/sign/poster/contraband/random/directional/east, +/obj/machinery/camera/autoname/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "xDs" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/firedoor, @@ -70927,21 +70961,6 @@ }, /turf/open/floor/iron/small, /area/station/hallway/primary/starboard) -"xDx" = ( -/obj/structure/disposalpipe/trunk{ - dir = 2 - }, -/obj/machinery/disposal/delivery_chute{ - name = "Security Deliveries" - }, -/obj/structure/sign/departments/security/directional/north, -/obj/effect/turf_decal/tile/red/fourcorners, -/obj/structure/plasticflaps{ - name = "Security Deliveries" - }, -/obj/effect/turf_decal/delivery/white, -/turf/open/floor/iron/dark/side, -/area/station/cargo/sorting) "xDS" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -71125,18 +71144,6 @@ }, /turf/open/floor/iron, /area/station/commons/storage/tools) -"xGg" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/landmark/start/depsec/supply, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/smooth, -/area/station/security/checkpoint/supply) "xGl" = ( /obj/machinery/door/airlock/external{ name = "External Docking Port" @@ -71264,6 +71271,13 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/catwalk_floor/iron, /area/station/science/lobby) +"xIl" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/cargo/lobby) "xIu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -71395,6 +71409,16 @@ /obj/machinery/light_switch/directional/north, /turf/open/floor/iron/cafeteria, /area/station/science/circuits) +"xKn" = ( +/obj/machinery/door/airlock/hatch{ + name = "Tool Supply Corridor" + }, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/cargo/lobby) "xKq" = ( /obj/machinery/rnd/production/circuit_imprinter/department/science, /obj/effect/turf_decal/bot, @@ -71409,6 +71433,12 @@ "xKG" = ( /turf/open/floor/iron, /area/station/hallway/primary/port) +"xKI" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "xKQ" = ( /obj/effect/turf_decal/tile/dark_red/fourcorners, /obj/machinery/firealarm/directional/north, @@ -71460,6 +71490,15 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/port/lesser) +"xLw" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/lobby) "xLy" = ( /obj/effect/turf_decal/sand/plating, /obj/effect/decal/cleanable/dirt/dust, @@ -71544,17 +71583,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"xMt" = ( -/obj/structure/window/spawner/directional/west, -/obj/effect/turf_decal/stripes/end{ - dir = 1 - }, -/obj/machinery/disposal/delivery_chute, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plating, -/area/station/cargo/sorting) "xMv" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -71654,11 +71682,6 @@ /obj/machinery/newscaster/directional/north, /turf/open/floor/iron, /area/station/security/prison/rec) -"xOU" = ( -/obj/machinery/light/small/directional/north, -/obj/effect/landmark/start/cargo_technician, -/turf/open/floor/iron/smooth, -/area/station/cargo/lobby) "xPd" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -71887,6 +71910,14 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) +"xRC" = ( +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/obj/machinery/door/airlock{ + name = "Cargo Maintenance" + }, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "xRH" = ( /turf/closed/wall, /area/station/maintenance/fore/lesser) @@ -71980,6 +72011,20 @@ }, /turf/open/floor/iron/white/textured_large, /area/station/medical/medbay/lobby) +"xSY" = ( +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal/delivery_chute{ + name = "Medical Deliveries" + }, +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/effect/turf_decal/stripes/corner, +/obj/structure/plasticflaps{ + name = "Medical Deliveries" + }, +/obj/effect/turf_decal/delivery/white, +/obj/structure/sign/departments/med/directional/north, +/turf/open/floor/iron/dark/side, +/area/station/cargo/sorting) "xSZ" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -72197,15 +72242,6 @@ /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, /area/station/service/janitor) -"xVW" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "xVY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -72431,6 +72467,9 @@ }, /turf/open/floor/iron, /area/station/engineering/gravity_generator) +"xYo" = ( +/turf/open/floor/iron, +/area/station/cargo/lobby) "xYu" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -72662,16 +72701,6 @@ "ybO" = ( /turf/closed/wall/r_wall, /area/station/engineering/atmos) -"ybY" = ( -/obj/machinery/piratepad/civilian, -/obj/effect/turf_decal/bot_white, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 - }, -/obj/machinery/light/cold/dim/directional/south, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/iron/dark/side, -/area/station/cargo/lobby) "ycb" = ( /obj/effect/turf_decal/weather/dirt{ dir = 6 @@ -72782,15 +72811,6 @@ /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron/dark/side, /area/station/hallway/primary/central/fore) -"ydA" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 10 - }, -/obj/machinery/vending/wardrobe/curator_wardrobe, -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/west, -/turf/open/floor/iron/grimy, -/area/station/service/library/private) "ydL" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt/dust, @@ -72802,16 +72822,6 @@ "yeh" = ( /turf/closed/wall, /area/station/hallway/primary/starboard) -"yei" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Atmospherics Maintenance" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) "yel" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -72941,13 +72951,6 @@ "yfD" = ( /turf/closed/wall, /area/station/medical/surgery/theatre) -"yfF" = ( -/obj/machinery/vending/autodrobe, -/obj/effect/turf_decal/siding/wideplating/dark{ - dir = 8 - }, -/turf/open/floor/iron/small, -/area/station/commons/fitness/locker_room) "yfJ" = ( /obj/effect/spawner/random/structure/closet_maintenance, /obj/effect/decal/cleanable/dirt, @@ -72968,13 +72971,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) -"yfT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "yfX" = ( /obj/machinery/space_heater, /obj/effect/decal/cleanable/dirt, @@ -72998,19 +72994,6 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) -"ygs" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood, -/obj/machinery/door/airlock/public/glass{ - name = "Chapel Office" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/service/chapel_office, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/textured_half, -/area/station/service/chapel/office) "ygu" = ( /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) @@ -73051,16 +73034,6 @@ /obj/effect/spawner/random/aimodule/harmless, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai_upload) -"yhk" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) "yhq" = ( /obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ @@ -73201,12 +73174,6 @@ }, /turf/open/floor/iron, /area/station/science/robotics/lab) -"yiV" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/broken_floor, -/obj/structure/closet/firecloset, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "yiY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -73237,6 +73204,35 @@ /obj/machinery/newscaster/directional/west, /turf/open/floor/iron/white/small, /area/station/science/cubicle) +"yjy" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/item/folder/red{ + pixel_x = -4; + pixel_y = -1 + }, +/obj/item/folder/blue{ + pixel_x = 3; + pixel_y = -30 + }, +/obj/effect/spawner/random/entertainment/toy_figure{ + pixel_x = 4; + pixel_y = 11 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/item/pen{ + pixel_x = -2; + pixel_y = 4 + }, +/turf/open/floor/carpet, +/area/station/maintenance/hallway/abandoned_recreation) "yjE" = ( /turf/closed/wall/r_wall, /area/station/maintenance/department/engine) @@ -79872,7 +79868,7 @@ ybp qBK jMp cor -wPO +bDi wLw udH gbh @@ -80113,7 +80109,7 @@ rDU hYC bLp wGx -qht +cdp nrn lCT trX @@ -80129,7 +80125,7 @@ kNx tyc dJn nrn -jMQ +tjg wmL civ gbh @@ -81915,7 +81911,7 @@ fAD jWm ybO kVB -dzH +qrW rPg nrn trY @@ -82158,7 +82154,7 @@ wWm mPB pit wWm -pnO +idB pCn teV dix @@ -82169,7 +82165,7 @@ ykk hYC egC nlt -ckR +tRm nrn ktJ saq @@ -82411,7 +82407,7 @@ wBo sRf wBo hFO -oYf +jPl mPB wWm nlR @@ -82667,9 +82663,9 @@ wBo fgX uFS wBo -eKd +mln wBo -aeH +nzS dOP pit dHx @@ -82925,7 +82921,7 @@ bTI jnI gya qBM -ael +oBO wcF eqr mUe @@ -82939,7 +82935,7 @@ pjk pjk pjk qfK -crP +klA hLx klg lRy @@ -83966,8 +83962,8 @@ oVm fjf sRW fjf -itr -hWa +cHD +hhy wFK ybO qOr @@ -84019,7 +84015,7 @@ lOj dTW lwI lOj -mSJ +vSn kdH kmo ouN @@ -84027,8 +84023,8 @@ rST ouN oQr kdH -hba -cYj +eEG +rzX slw dDd vuj @@ -84276,7 +84272,7 @@ bTE cob vWA lOj -uSQ +aNE kdH nJU kEA @@ -84284,8 +84280,8 @@ kQe ouR oRr kdH -tHv -sKT +dfM +iIG slw qtJ qdu @@ -84471,7 +84467,7 @@ pWm pRw pnl pxz -yei +enI ybO ybO qKA @@ -84742,7 +84738,7 @@ wmq vMI pKW kiP -tqn +dIw dYv jZl feu @@ -84752,7 +84748,7 @@ bGX jhj cGV tkU -ocZ +bst pqr tkU kUN @@ -84791,15 +84787,15 @@ jvR jir lPi uzJ -aTm +eib knk ppk uzJ ovQ oSb -cDd +edA uzJ -wSQ +ryX slw slw lLi @@ -84989,7 +84985,7 @@ fjh wzv pnl dpH -kNv +sXj gAy jZl bKK @@ -85045,18 +85041,18 @@ nFo nFo nFo nFo -mIx +kxa lOj jTA -jqM +qYG pZK -hrP +xKI kQM -fXY +kQj pZK -hrP +xKI mjQ -beR +qqB ahr nFX nFX @@ -85245,9 +85241,9 @@ pWm uEH dfd pnl -uct -uct -uct +bjt +bjt +bjt jZl bEG rCk @@ -85294,31 +85290,31 @@ slY gOK slY hfc -ttd +bEv iNE nFo ach -gvz +ueL ylH nEl ejq tvN moz moz -rei +vjs odX odX odX odX odX -akl +rWK mjV -mvX +sVQ mhk ihb ozt sqz -hft +bHw mhk iSD pbw @@ -85502,9 +85498,9 @@ wzv yil wzv pnl -uct -hGa -uct +bjt +lrN +bjt jZl oqq tmK @@ -85552,30 +85548,30 @@ gPN gZk iNE kPW -rvk +lxE nFo tPZ rPx cvP rWP -oxo +kMY jWA uzJ -vCK -jHW -bpd -vvB -bpd -eka -qpv -ftJ +jtB +jJw +fxO +rPM +fxO +qMI +rfP +fiE qby qby qby -vTb -vTb +iJH +iJH mhk -hft +bHw mhk pGS sUN @@ -85757,12 +85753,12 @@ kNn yil xnL yil -bXb +jHN pnl pnl pnl pnl -srw +emz tXF qaU yew @@ -85808,31 +85804,31 @@ slY gPN slY kwY -ttd +bEv hfc nFo hNv -jbB -idb +iJp +ggn nyf ejq -pvt +oEL uzJ -mfx -esB +vzD +amq mRD kEH mRD -jjT -qpv -ftJ +gGA +rfP +fiE qby -gQD +frY mLh -bzx -nTV +njv +rev mhk -hft +bHw mhk cXb sry @@ -86014,10 +86010,10 @@ rjo pWm pWm pWm -bXb -bXb -bXb -bXb +jHN +jHN +jHN +jHN yil fTJ qpp @@ -86033,7 +86029,7 @@ ttL glo dPW vCp -sqM +vgL kWY mzx dcK @@ -86064,30 +86060,30 @@ mFA slY slY slY -ttd +bEv slY slY nFo nFo -dNl -gdd +xvR +pIo nFo nFo -lng -qJe -gpd -oiO -paf -paf -paf -fxc +boG +hmR +jGC +rtH +eti +eti +eti +dvP odX -xwO +oyH lWY -xGg +oZZ mLk -mDQ -ijp +hXM +pmD srn pRc mhk @@ -86271,7 +86267,7 @@ mmT vtJ acg pWm -efn +eZd wzv wzv wzv @@ -86320,9 +86316,9 @@ gEc gIx sjq sjq -kIl +guq jCo -jVV +tki nPX ouT jjq @@ -86330,21 +86326,21 @@ jjq jjq rST iUN -arI -woh +pIg +rLp moz -vuN +iqM uzJ uzJ -ifv +sjX uzJ -qOs -jue +mLz +cNw qby -wjj +nzd mMt dVW -rdr +xcA mhk kwy mhk @@ -86530,8 +86526,8 @@ bOa pWm bvt bvt -nbN -ggr +lAM +fgo oii pnl gmv @@ -86577,25 +86573,25 @@ slY hTr slY slY -cGf -bFI +qgX +mmZ jjq jiu -bLr -nBI +obk +tfj kzI -iRr +gus oGl iVx lzp jFB -tpF -msF +mRQ +uJI wuM pBD wuM pBD -mbS +uQt wuM wuM wuM @@ -86622,7 +86618,7 @@ uAk yea vmX vij -ssj +oNQ wyl fEC fEC @@ -86797,14 +86793,14 @@ jDi jDi jDi pnl -srw +emz pnl pnl jZl xck -cag +hyS xck -bJH +kMg xck cGV bNq @@ -86812,9 +86808,9 @@ bNq ecq bNq bNq -hhr +pTK bNq -gUQ +uiK bNq bNq bNq @@ -86834,32 +86830,32 @@ hLD hTD oOK slY -yfT +lFb slY jjq jjq -nht +dcu jNc qSH -fEt +mKR rST iVI -bBb +fma jHB -mAu -fvq +sRs +qMM wuM -uOA -vHm -naB -tIk -iLP +rKn +bdi +lsH +nmE +dFn wCI -wFo +eJi mhk nFY mhk -haD +mCV mze iLH oyz @@ -87091,27 +87087,27 @@ tjY siG nEA slY -aBk -uHK -kzG +tBE +ehu +wtd pAU -mmX -azk -fZY -cdh +fxc +nku +jKl +jgj rTA -fwB -uZs +gFi +xco lUI -ncB -qks -uEU -fzM -pJo +rJQ +iKn +gBs +ggK +mek kSb -mxv -oVQ -rrj +cjc +hlP +hHX nxJ mhk xYJ @@ -87223,7 +87219,7 @@ aWt sis sis sis -lhd +mdp xjz blb dDB @@ -87348,30 +87344,30 @@ rhm cis slY slY -yfT -akk -kzG -gsr +lFb +qTS +wtd +eQI vrW -lCJ -hZR -lHU +uUz +uSM +sEd rTA -qti +csj eDy uzJ -mAu +sRs lzp pBD -niE -swr -cNL -aJx -eqW -sJJ +rJB +cUV +ksE +woY +uUq +wyG urF mhk -waJ +cEp mhk sNW mze @@ -87389,14 +87385,14 @@ cdB wAW rpB jzr -vIb -ygs -wUH -rnS +gLS +tsl +pMX +cDQ buc -jGx -hle -sec +rFU +qgZ +oSB fEC kJJ qVP @@ -87475,7 +87471,7 @@ eua izh xAG jWd -lGO +rEV cZA hyX tBm @@ -87565,7 +87561,7 @@ kNn pnl pnl pnl -srw +emz pnl tOc oCE @@ -87604,27 +87600,27 @@ slY slY mEB slY -gmz +vse mFA slY jjq jjq -xhL +fCK jjq ibe ipP rST eeb -cgT -vZg -vDY -omZ +fHX +sAy +jfP +xeZ wuM -qhA -fgV -eQR +cbq +eCO +bIu lHk -cvx +nhk lKg efS mhk @@ -87653,7 +87649,7 @@ pvC aLS wzS wzS -nSh +lXM fEC rui qVP @@ -87861,21 +87857,21 @@ dDB dDB blb slY -xsB +bUq xwz xwz -qCF -gVb -jiG +cyQ +cuZ +eNa xwz mTl mTl rST -qyQ -gtU -lwx -fGY -nPL +wAh +jry +rFv +dwy +bbV wuM wuM wuM @@ -87884,9 +87880,9 @@ lHT vkN wuM wuM -lPm -aYl -mZR +sHW +rrJ +uiO mhk mze mhk @@ -87900,10 +87896,10 @@ lFm kzV uaa eYB -ciD +vJE wXk glM -gsj +jmC yea vrf von @@ -88118,32 +88114,32 @@ dDB dDB blb slY -gmz +vse xwz -tVb -mBt -ess -bbR +cky +juo +iDm +biV xwz -mbH -xqr -muT +gPO +moq +jro jnn jnn bDN bDN -ilL -wqd +ebM +sfL kFD kTp -uin -buP -nCE +itf +qnU +wbt kTp -pgA -avc -iNv -iJC +oOm +jJO +kik +uVB mhk gLV mhk @@ -88156,11 +88152,11 @@ tBk miF miF miF -bAw +etJ wAW -wCC +mFd ckP -kHR +amX yea yea vJn @@ -88375,33 +88371,33 @@ dDB dDB blb slY -gmz +vse xwz -qRT -bgW -wQd +unG +qrJ +iUI jwU xwz -xDx -csi -wxg -oeT -lLM -jkn -odr -puQ -osB +hYQ +pNa +wzz +dXu +ahI +lkL +hGA +tsk +nzy btG pBD -jus -kKF -poi +qhU +rRl +mCW wuM -bbI -eIB -cms -cgc -bdx +pZC +yjy +jmX +tri +qYq xsD mhk xxj @@ -88414,11 +88410,11 @@ cxz cZs cZs eYB -ciD +vJE wXk uQK -mCU -rRO +bfS +fMf yea vJA vKa @@ -88632,32 +88628,32 @@ dDB dDB blb slY -gmz -uic -fjH -wBj -waT +vse +and +nLi +cNl +iiR ePn uki -fpr -eJR -uzG -bCM -jhc +iek +xgK +upM +jQG +abv wcP -rPI -jng -osB -ixa +kRb +rJL +nzy +gOS wuM -nBn -fxE -msZ +giA +jFg +uur wuM -ikQ -nUb -lQc -nmw +pBo +gEb +dgy +lud mhk fpN mhk @@ -88846,7 +88842,7 @@ kMe nDJ lWV cYt -wjw +tHo gAV tDu ccA @@ -88861,14 +88857,14 @@ oYv jJg bsG wqW -cQV +jHS tdb tdb tdb tdb qyr mLZ -vHU +naK lER hRO knv @@ -88889,35 +88885,35 @@ blb slY mEB slY -tcn +iZx xwz xwz -kFz -hEK -pSt +kOA +iUA +gZR xwz -sdJ -rQJ -jBn -lRf -jUz -rtg -ooB -eYx -eQj -fod +rWR +iQM +lvN +kJu +fvX +cOs +kiW +xAO +rmc +hjS pBD -naB -nWc -qou +lsH +pZt +mac wuM -uVU -hhp -kSN -aXy +oLE +lmp +iAt +tQn mhk mSA -uMj +gTj ani bKv jCm @@ -89147,31 +89143,31 @@ ueX hNo wZF wZF -iwo +tuw slY slY -wwc +fAn slY slY -kcM -uRB -fRu -wdG -ruK -fLs -eVo -qet -dmo -kxG +xSY +khw +xsP +oxt +gIr +jJB +sBn +ePr +eCV +bjf wuM -usi -cjw -bFU +mta +xDl +kjb wuM -pVk +dLl twm -pVk -pVk +dLl +dLl mhk jQv mhk @@ -89191,7 +89187,7 @@ beN oRw xle xle -slZ +hzr iIU wAj xle @@ -89351,7 +89347,7 @@ ayK ayK ayK lQU -ruR +mOc lQU ayK lQU @@ -89359,7 +89355,7 @@ lQU lQU ayK lQU -ruR +mOc lQU ayK rDV @@ -89403,22 +89399,22 @@ mEB gDH mFA gKi -nke +lOg ohl slY -mLa -iRd +gTw +nPg gDH slY slY slY -xMt -vDg +xyb +gJb lUT -uBT +lYe mTl kFJ -oMJ +uHE kFJ wuM wuM @@ -89661,23 +89657,23 @@ gEc mFA slY slY -tFe -mSu -vvZ -qJW +oOf +qSF +rFm +fQv wZF wZF -qKh +wDQ slY slY -khK -xum -chv +uiU +bLG +diN xat -vjL -eNE -rOf -qcJ +gSA +nwb +qkC +wvF mhk qTJ lYT @@ -89921,21 +89917,21 @@ slY slY slY slY -dHr +bmO slY slY -cGf +qgX kAn slY -wOK -yhk -yhk -lGM -gBX -tfx -pOc -pOc -pyY +fWj +hgp +hgp +lKf +cCC +aBQ +mFQ +mFQ +xRC nJo avY oHk @@ -89947,7 +89943,7 @@ vMP eRy mhk iSD -ngn +bqA cxz vUS miF @@ -90118,8 +90114,8 @@ uqe uLW blb aKm -fxp -nKe +eXl +jNV guh cBl fJe @@ -90172,26 +90168,26 @@ blb blb blb ueX -wMy +nmV slY aus voz sRg hmb -npf +huh ivm slY -nvU +brO wZF -gUf -viM -eYX -eYX -vpl -vCo -eYs -nQW -vRH +dTj +umL +uJV +uJV +gnO +gqw +gEa +iAL +spA mhk ilo tYL @@ -90429,8 +90425,8 @@ dDB dDB dDB slY -jaW -ezm +aBt +uPf vOm tOw hVk @@ -90438,17 +90434,17 @@ gpP iJq qfV slY -aFp -qzW +apP +jHC slY -ihD -juY -coA -qdH -raK -eYs -jhE -vZf +hjA +mnU +nzO +jln +jAN +gEa +bzW +sKO mhk jQv sNW @@ -90690,8 +90686,8 @@ slY slY eVc hbw -wOZ -hmj +qZX +lWE arL sRg slY @@ -90700,11 +90696,11 @@ slY slY wnd xat -kAr -dIq +fIq +jBJ wnd -bGv -mDx +xjc +aMI xat mhk jQv @@ -90905,7 +90901,7 @@ szg tpW pUM kMe -prd +knw fGf ayK izf @@ -90945,24 +90941,24 @@ sRg cJT eEq sRg -gQG +iGb hbw -aGI -hmQ +nLQ +mpL pGE -eUL -ouk -ouk -ouk -jgA -jyP -wdV -wST -nRF -sZy -qeM -jVS -iUu +uwO +bRA +bRA +bRA +xKn +dmO +pVV +axP +ivC +kgp +ftI +hao +uIG mhk ifl mhk @@ -91204,25 +91200,25 @@ mGY hXf xGf jLb -hgd -mrP +cOa +lPv xrZ sRg -kas -kas -kas -kas -puP -wYX -nXK -qTU -lam -pua -hmR -ybY +tlG +tlG +tlG +tlG +lbe +qCG +pbV +sxQ +day +mxh +vRc +jBN mhk oEn -yiV +tOu mhk mTN wTO @@ -91233,7 +91229,7 @@ oUJ wCR oOC iRE -tHV +mXb kZI oUb yhX @@ -91422,10 +91418,10 @@ gAV qkq wRy urz -vDS -ugt -lVv -nHq +dkD +iEc +uuA +oba exQ fib cca @@ -91465,20 +91461,20 @@ hgn jEQ gRL hcl -kas -xkA -ljK -dUU -jyP -jjV -dAt -fuT -cKl -pmP -rZV -xdl +tlG +pRO +wVr +puk +dmO +kkD +iGW +xhC +ioJ +xIl +xYo +hAO mhk -xVW +uLz pRc mhk wCR @@ -91668,7 +91664,7 @@ dyI dyI ozQ ozQ -xAx +wxJ brA brA dyI @@ -91682,7 +91678,7 @@ ayK swK jTf nCC -rDc +bwW qQi sVu wfn @@ -91721,24 +91717,24 @@ hgZ hgZ kaz eOk -qgK -lvL -xOU -iCN -qKw -kDP -gfp -tIn -gYh -abw -wzB -pyG -coo +mYE +naB +oyv +vZS +rDs +dAZ +eTL +sKj +gXB +rhF +xLw +oim +wie mhk -lnV -wrV +jab +rSM mhk -tTl +ksq wTO qVR scY @@ -91939,7 +91935,7 @@ ayK nXC nmi cED -nQE +mjh rLj gNt iIK @@ -91979,21 +91975,21 @@ qiz fgt pHC qiz -kas -uAN -lHK -kas -dUU -dUU -kas -wUF -fua -bYW -kkx -kas +tlG +rWa +peE +tlG +puk +puk +tlG +tJY +kxu +cjf +mGI +tlG mhk rXw -wrV +rSM mhk wCR wCR @@ -92182,7 +92178,7 @@ cBd cBd dyI ozQ -jvm +vkR brA dyI oer @@ -92196,7 +92192,7 @@ ayK wfn wfn osT -qxF +wnf wap wfn gKL @@ -92240,14 +92236,14 @@ xRV xRV xRV xRV -hvw -ssw -mFH -upo -dth -wIk -wWA -gJH +ccO +mWU +lnL +dOH +rbT +ppP +hSn +hpb mhk mhk jby @@ -92495,20 +92491,20 @@ nxI sxZ qGc pfw -kzM -fTa +dEp +vWy frI -dWa -dWa -qxc -dWa -nDK -wkD +aJD +aJD +wqx +aJD +knR +mDk frI -sqq -kev +dBn +nwf mXZ -mwc +ogq mAR qWG fkS @@ -92756,8 +92752,8 @@ uAo iIv uAo jsG -gVy -pKO +oQP +mIp fHN jpu pWM @@ -93011,9 +93007,9 @@ nTa tlt eIM yjZ -rUX -rUX -bQo +pzk +pzk +eII xSw kfw yeD @@ -93272,7 +93268,7 @@ xZS xZS xRV xRV -lIP +eyx kux wGz yaL @@ -93799,7 +93795,7 @@ cKt jVM hIm azq -wpP +api wMg wKr vtr @@ -94817,7 +94813,7 @@ uVT vET ncL wQB -vUr +ebn jVM rXy bFO @@ -95341,7 +95337,7 @@ ptX hsH srg jVM -kYT +nJK sZo yfC lnN @@ -95594,7 +95590,7 @@ jVM jVM jVM jVM -dxW +qtW jVM xlU jRK @@ -95847,11 +95843,11 @@ kvT wQB cZi jVM -aJI -nrX -ydA +dgt +sTN +nHb jVM -xah +cMH jVM lzB jVM @@ -96104,11 +96100,11 @@ kyO wQB drC jVM -pMC -nxS -alN +dqF +sKh +iFG jVM -xah +cMH jVM uZY jVM @@ -96361,11 +96357,11 @@ ncL wQB ydz jVM -mgd -kuX -uiT -dxW -xah +bgl +sjn +mrY +qtW +cMH jVM joR jVM @@ -97401,8 +97397,8 @@ wVN hQs rdV bPy -nVw -qYr +okL +azx eqI nHI cgs @@ -97658,13 +97654,13 @@ jVM aLB ilx qEO -oPh -qDL +lqK +wxM sGN bzj -vxA -lEs -jUr +qyE +qdL +ptO uMg xBd qXP @@ -97900,7 +97896,7 @@ opn jYY ndJ rJZ -hBJ +egW xRV xRV xRV @@ -98159,8 +98155,8 @@ dCu eXR wQB rHl -gLf -kec +dMC +ucO jVM jTn xXe @@ -98415,7 +98411,7 @@ psc dCu rJZ wQB -tSY +xrt txW nCX jVM @@ -98931,7 +98927,7 @@ rJZ wQB eIO xND -wLv +czh jVM oZy jVM @@ -100750,7 +100746,7 @@ xkV ecC cvV spH -hZA +whg dPp sFs fZZ @@ -101264,7 +101260,7 @@ gyy xkV swW vkh -iax +kPh cSy bpY sMt @@ -102285,7 +102281,7 @@ rZq ycX pBu khY -dpF +lmZ aGq khY khY @@ -102780,7 +102776,7 @@ cCD gcz jyM uoB -cGA +eSA baJ rji vAw @@ -105616,7 +105612,7 @@ sRL bCP dqB pIf -lZP +upF jgF wqj rEa @@ -106128,7 +106124,7 @@ nVa fuD xVV eWP -lNN +vXv lWp xhD heN @@ -107161,7 +107157,7 @@ jvQ eul eeJ egJ -yfF +egA gMq duT gtk @@ -107923,7 +107919,7 @@ rqw sRL sRL sRL -xxG +ceD sRL sRL eeJ @@ -114613,7 +114609,7 @@ xQJ bfE rIo xQJ -ohN +jIn oUC oPM sDj @@ -115386,7 +115382,7 @@ noB xQJ avN oPM -rYt +jLt wBI sEr dQQ @@ -119160,7 +119156,7 @@ dDB dDB dDB dDB -mzv +dRz dDB dDB dDB @@ -121836,7 +121832,7 @@ xok xok xok xok -tXc +dTi tbI xok qNO @@ -122611,7 +122607,7 @@ lkV iJL rci vTv -dpz +juU boY agI kQt @@ -123382,7 +123378,7 @@ nWh xnR aLC wLZ -xwn +eKV cns vwJ kQt @@ -129567,10 +129563,10 @@ uxL lhl jxD ylD -hqH +cWC vzv brz -sJf +egg ylD wyj dYR diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index da57feb2781..4200fe13d15 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -12653,6 +12653,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 }, +/obj/machinery/fishing_portal_generator, /turf/open/floor/iron/dark, /area/station/hallway/secondary/service) "ddg" = ( diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm index ce8f714c0e4..6cbcb15e08e 100644 --- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm +++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm @@ -44654,14 +44654,7 @@ /turf/open/floor/engine, /area/station/engineering/atmos/hfr_room) "mYR" = ( -/obj/structure/table, -/obj/item/paper_bin, -/obj/item/pen{ - pixel_x = -5 - }, -/obj/item/hand_labeler{ - pixel_y = -3 - }, +/obj/machinery/fishing_portal_generator, /turf/open/floor/wood, /area/station/hallway/secondary/service) "mZf" = ( diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index f6792840a51..865e1ea3444 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -24297,15 +24297,13 @@ "iJK" = ( /obj/item/radio/intercom/directional/south, /obj/effect/decal/cleanable/dirt, -/obj/structure/reagent_dispensers/plumbed{ - dir = 8 - }, /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/fishing_portal_generator, /turf/open/floor/iron, /area/station/hallway/secondary/service) "iKj" = ( diff --git a/_maps/map_files/NorthStar/north_star.dmm b/_maps/map_files/NorthStar/north_star.dmm index cafc8754cd8..2fc187c626d 100644 --- a/_maps/map_files/NorthStar/north_star.dmm +++ b/_maps/map_files/NorthStar/north_star.dmm @@ -86467,6 +86467,7 @@ /area/station/security/brig) "wms" = ( /obj/machinery/airalarm/directional/east, +/obj/machinery/fishing_portal_generator, /turf/open/floor/iron, /area/station/hallway/secondary/service) "wmt" = ( diff --git a/_maps/map_files/tramstation/tramstation.dmm b/_maps/map_files/tramstation/tramstation.dmm index 9480252ff13..9c97fd61253 100644 --- a/_maps/map_files/tramstation/tramstation.dmm +++ b/_maps/map_files/tramstation/tramstation.dmm @@ -14032,6 +14032,7 @@ /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 5 }, +/obj/machinery/fishing_portal_generator, /turf/open/floor/iron, /area/station/hallway/secondary/service) "dNB" = ( diff --git a/_maps/map_files/wawastation/wawastation.dmm b/_maps/map_files/wawastation/wawastation.dmm index 8eca8d06b61..c1d1929d4d2 100644 --- a/_maps/map_files/wawastation/wawastation.dmm +++ b/_maps/map_files/wawastation/wawastation.dmm @@ -5209,6 +5209,11 @@ }, /turf/open/floor/iron/white, /area/station/medical/exam_room) +"bQY" = ( +/obj/effect/turf_decal/tile/dark_green/opposingcorners, +/obj/machinery/fishing_portal_generator, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) "bRl" = ( /obj/machinery/suit_storage_unit/captain{ req_access = list("captain") @@ -13201,8 +13206,8 @@ /turf/open/floor/iron, /area/station/engineering/main) "eFP" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer4, -/obj/machinery/portable_atmospherics/canister/air, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/central/lesser) "eGn" = ( @@ -18088,6 +18093,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/engineering/gravity_generator) +"gvs" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/effect/turf_decal/tile/dark_green/opposingcorners, +/obj/structure/cable, +/obj/structure/table, +/obj/item/aquarium_kit, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) "gvw" = ( /turf/closed/wall, /area/station/command/heads_quarters/cmo) @@ -25270,14 +25283,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) -"jac" = ( -/obj/structure/cable, -/obj/effect/spawner/random/trash/garbage{ - spawn_scatter_radius = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/central/lesser) "jaf" = ( /obj/structure/table/wood, /obj/item/flashlight/lamp/green, @@ -25481,12 +25486,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron, /area/station/maintenance/department/cargo) -"jdP" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating, -/area/station/maintenance/central/lesser) "jdW" = ( /obj/effect/turf_decal/tile/neutral/opposingcorners{ dir = 1 @@ -31193,6 +31192,13 @@ /obj/machinery/light/directional/north, /turf/open/floor/circuit, /area/station/engineering/storage/tech) +"kYi" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/central/lesser) "kYk" = ( /obj/machinery/door/poddoor/shutters{ id = "secmechbay"; @@ -37544,6 +37550,12 @@ }, /turf/open/floor/iron/white/smooth_large, /area/station/medical/exam_room) +"nki" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/central/lesser) "nkA" = ( /obj/machinery/atmospherics/pipe/smart/simple/green/visible{ dir = 1 @@ -37637,11 +37649,6 @@ /obj/structure/marker_beacon/purple, /turf/open/space/basic, /area/space/nearstation) -"nmS" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/spawner/random/structure/grille, -/turf/open/floor/plating, -/area/station/maintenance/central/lesser) "nmX" = ( /obj/effect/turf_decal/tile/red/anticorner/contrasted, /obj/structure/disposalpipe/segment, @@ -39249,6 +39256,11 @@ /obj/item/emergency_bed, /turf/open/floor/iron/white, /area/station/maintenance/aft/upper) +"nUL" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer4, +/turf/open/floor/plating, +/area/station/maintenance/central/lesser) "nUS" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ @@ -41010,6 +41022,10 @@ /obj/machinery/meter, /turf/closed/wall/r_wall, /area/station/engineering/supermatter) +"oEo" = ( +/obj/effect/turf_decal/tile/dark_green/opposingcorners, +/turf/closed/wall, +/area/station/hallway/secondary/service) "oEp" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -62533,6 +62549,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"wan" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/spawner/random/trash/garbage{ + spawn_scatter_radius = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/central/lesser) "war" = ( /obj/structure/table/wood, /obj/effect/turf_decal/siding/wood{ @@ -63067,7 +63091,6 @@ /turf/open/floor/plating, /area/station/maintenance/department/engine) "wlf" = ( -/obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, /obj/effect/turf_decal/tile/dark_green/opposingcorners, /turf/open/floor/iron, @@ -91818,7 +91841,7 @@ acc tQF ewJ uFW -jrX +wan acc acc acc @@ -92073,9 +92096,9 @@ mbZ acc acc acc -acc +wMb eFP -jac +jrX kuP kuP kuP @@ -92330,9 +92353,9 @@ jrn acc nZY ihH -acc -acc -jrX +nUL +eFP +lIr lIr lIr lIr @@ -92587,10 +92610,10 @@ qpb acc jOD uFW -nmS uFW -jrX +nki lIr +bQY lHi dyX uWr @@ -92845,9 +92868,9 @@ mCo ewJ uFW jXL -uFW -jdP +kYi lIr +gvs wlf fvd cik @@ -93103,8 +93126,8 @@ acc jrX siG jrX -jrX lIr +oEo otA xlX bcX diff --git a/code/datums/status_effects/neutral.dm b/code/datums/status_effects/neutral.dm index 8aca00b288b..a6607cd7797 100644 --- a/code/datums/status_effects/neutral.dm +++ b/code/datums/status_effects/neutral.dm @@ -637,10 +637,13 @@ . = ..() var/water_adaptation = HAS_TRAIT(owner, TRAIT_WATER_ADAPTATION) var/heal_or_deal = HAS_TRAIT(owner, TRAIT_WATER_HATER) && !water_adaptation ? 1 : -1 + var/healed = 0 if(water_adaptation) //very mild healing for those with the water adaptation trait (fish infusion) - owner.adjustOxyLoss(-1 * seconds_between_ticks, updating_health = FALSE, required_biotype = MOB_ORGANIC) - owner.adjustFireLoss(-0.6 * seconds_between_ticks, updating_health = FALSE, required_bodytype = BODYTYPE_ORGANIC) - owner.adjustToxLoss(-0.6 * seconds_between_ticks, updating_health = FALSE, required_biotype = MOB_ORGANIC) - owner.adjustBruteLoss(-0.6 * seconds_between_ticks, updating_health = FALSE, required_bodytype = BODYTYPE_ORGANIC) + healed += owner.adjustOxyLoss(-1.5 * seconds_between_ticks, updating_health = FALSE, required_biotype = MOB_ORGANIC) + healed += owner.adjustFireLoss(-1 * seconds_between_ticks, updating_health = FALSE, required_bodytype = BODYTYPE_ORGANIC) + healed += owner.adjustToxLoss(-1 * seconds_between_ticks, updating_health = FALSE, required_biotype = MOB_ORGANIC) + healed += owner.adjustBruteLoss(-1 * seconds_between_ticks, updating_health = FALSE, required_bodytype = BODYTYPE_ORGANIC) heal_or_deal *= 1.5 - owner.adjustStaminaLoss(stamina_heal_per_tick * heal_or_deal * seconds_between_ticks) + healed += owner.adjustStaminaLoss(stamina_heal_per_tick * heal_or_deal * seconds_between_ticks, updating_stamina = FALSE) + if(healed) + owner.updatehealth() diff --git a/code/game/machinery/dna_infuser/organ_sets/fish_organs.dm b/code/game/machinery/dna_infuser/organ_sets/fish_organs.dm index e125a611059..0076d015464 100644 --- a/code/game/machinery/dna_infuser/organ_sets/fish_organs.dm +++ b/code/game/machinery/dna_infuser/organ_sets/fish_organs.dm @@ -235,6 +235,7 @@ gills = new() AddElement(/datum/element/noticable_organ, "%PRONOUN_Theyve a set of gills on %PRONOUN_their neck.", BODY_ZONE_PRECISE_MOUTH) AddComponent(/datum/component/bubble_icon_override, "fish", BUBBLE_ICON_PRIORITY_ORGAN) + AddComponent(/datum/component/speechmod, replacements = strings("crustacean_replacement.json", "crustacean")) /obj/item/organ/internal/lungs/fish/Destroy() QDEL_NULL(gills) diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm index 2bed9752f88..caa4b4e740e 100644 --- a/code/game/objects/structures/beds_chairs/chair.dm +++ b/code/game/objects/structures/beds_chairs/chair.dm @@ -17,13 +17,13 @@ var/buildstackamount = 1 var/item_chair = /obj/item/chair // if null it can't be picked up ///How much sitting on this chair influences fishing difficulty - var/fishing_modifier = -3 + var/fishing_modifier = -5 /obj/structure/chair/Initialize(mapload) . = ..() if(prob(0.2)) name = "tactical [name]" - fishing_modifier -= 4 + fishing_modifier -= 8 MakeRotate() if(can_buckle && fishing_modifier) AddComponent(/datum/component/adjust_fishing_difficulty, fishing_modifier) @@ -143,7 +143,7 @@ buildstacktype = /obj/item/stack/sheet/mineral/wood buildstackamount = 3 item_chair = /obj/item/chair/wood - fishing_modifier = -4 + fishing_modifier = -6 /obj/structure/chair/wood/narsie_act() return @@ -161,7 +161,7 @@ max_integrity = 70 buildstackamount = 2 item_chair = null - fishing_modifier = -5 + fishing_modifier = -7 // The mutable appearance used for the overlay over buckled mobs. var/mutable_appearance/armrest @@ -237,13 +237,13 @@ desc = "A luxurious chair, the many purple scales reflect the light in a most pleasing manner." icon_state = "carp_chair" buildstacktype = /obj/item/stack/sheet/animalhide/carp - fishing_modifier = -10 + fishing_modifier = -12 /obj/structure/chair/office anchored = FALSE buildstackamount = 5 item_chair = null - fishing_modifier = -4 + fishing_modifier = -6 icon_state = "officechair_dark" /obj/structure/chair/office/Initialize(mapload) @@ -257,10 +257,7 @@ /obj/structure/chair/office/tactical name = "tactical swivel chair" - -/obj/structure/chair/office/tactical/Initialize(mapload) - . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -10) + fishing_modifier = -10 /obj/structure/chair/office/light icon_state = "officechair_white" @@ -463,7 +460,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/chair/stool/bar, 0) buildstacktype = /obj/item/stack/sheet/bronze buildstackamount = 1 item_chair = null - fishing_modifier = -12 //the pinnacle of Ratvarian technology. + fishing_modifier = -13 //the pinnacle of Ratvarian technology. /// Total rotations made var/turns = 0 @@ -503,7 +500,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/chair/stool/bar, 0) item_chair = null obj_flags = parent_type::obj_flags | NO_DEBRIS_AFTER_DECONSTRUCTION alpha = 0 - fishing_modifier = -20 //it only lives for 25 seconds, so we make them worth it. + fishing_modifier = -21 //it only lives for 25 seconds, so we make them worth it. /obj/structure/chair/mime/wrench_act_secondary(mob/living/user, obj/item/weapon) return NONE @@ -525,7 +522,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/chair/stool/bar, 0) buildstacktype = /obj/item/stack/sheet/plastic buildstackamount = 2 item_chair = /obj/item/chair/plastic - fishing_modifier = -8 + fishing_modifier = -10 /obj/structure/chair/plastic/post_buckle_mob(mob/living/Mob) Mob.pixel_y += 2 diff --git a/code/game/objects/structures/beds_chairs/sofa.dm b/code/game/objects/structures/beds_chairs/sofa.dm index 04bb0b1e25e..caee13863e1 100644 --- a/code/game/objects/structures/beds_chairs/sofa.dm +++ b/code/game/objects/structures/beds_chairs/sofa.dm @@ -19,7 +19,7 @@ path/corner/color_name {\ icon = 'icons/obj/chairs_wide.dmi' buildstackamount = 1 item_chair = null - fishing_modifier = -4 + fishing_modifier = -6 var/mutable_appearance/armrest /obj/structure/chair/sofa/Initialize(mapload) diff --git a/code/modules/clothing/ears/_ears.dm b/code/modules/clothing/ears/_ears.dm index bdc294f5366..7520e6e769b 100644 --- a/code/modules/clothing/ears/_ears.dm +++ b/code/modules/clothing/ears/_ears.dm @@ -26,4 +26,4 @@ . = ..() AddElement(/datum/element/earhealing) AddComponent(/datum/component/wearertargeting/earprotection, list(ITEM_SLOT_EARS)) - AddComponent(/datum/component/adjust_fishing_difficulty, -1) + AddComponent(/datum/component/adjust_fishing_difficulty, -2) diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm index 85c2702194b..a7a61891fcf 100644 --- a/code/modules/clothing/glasses/_glasses.dm +++ b/code/modules/clothing/glasses/_glasses.dm @@ -344,7 +344,6 @@ /obj/item/clothing/glasses/sunglasses/Initialize(mapload) . = ..() add_glasses_slapcraft_component() - AddComponent(/datum/component/adjust_fishing_difficulty, -1) /obj/item/clothing/glasses/sunglasses/proc/add_glasses_slapcraft_component() var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/hudsunsec, /datum/crafting_recipe/hudsunmed, /datum/crafting_recipe/hudsundiag, /datum/crafting_recipe/scienceglasses) @@ -520,10 +519,6 @@ flags_cover = GLASSESCOVERSEYES glass_colour_type = /datum/client_colour/glass_colour/red -/obj/item/clothing/glasses/thermal/Initialize(mapload) - . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -4) - /obj/item/clothing/glasses/thermal/emp_act(severity) . = ..() if(. & EMP_PROTECT_SELF) diff --git a/code/modules/clothing/gloves/botany.dm b/code/modules/clothing/gloves/botany.dm index 144477240b2..ba3d777fb0d 100644 --- a/code/modules/clothing/gloves/botany.dm +++ b/code/modules/clothing/gloves/botany.dm @@ -14,7 +14,7 @@ /obj/item/clothing/gloves/botanic_leather/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -2) + AddComponent(/datum/component/adjust_fishing_difficulty, -4) /datum/armor/gloves_botanic_leather bio = 50 diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm index c3b400d7c59..244cecaa646 100644 --- a/code/modules/clothing/gloves/color.dm +++ b/code/modules/clothing/gloves/color.dm @@ -61,7 +61,7 @@ /obj/item/clothing/gloves/color/fingerless/Initialize(mapload) . = ..() var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/gripperoffbrand) - AddComponent(/datum/component/adjust_fishing_difficulty, -2) + AddComponent(/datum/component/adjust_fishing_difficulty, -4) AddElement( /datum/element/slapcrafting,\ diff --git a/code/modules/clothing/gloves/combat.dm b/code/modules/clothing/gloves/combat.dm index a2574c8d23e..55eeeba723f 100644 --- a/code/modules/clothing/gloves/combat.dm +++ b/code/modules/clothing/gloves/combat.dm @@ -27,7 +27,7 @@ /obj/item/clothing/gloves/combat/wizard/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -3) //something something wizard casting + AddComponent(/datum/component/adjust_fishing_difficulty, -5) //something something wizard casting /obj/item/clothing/gloves/combat/floortile name = "floortile camouflage gloves" @@ -37,4 +37,4 @@ /obj/item/clothing/gloves/combat/floortiletile/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -3) //tacticool + AddComponent(/datum/component/adjust_fishing_difficulty, -5) //tacticool diff --git a/code/modules/clothing/gloves/insulated.dm b/code/modules/clothing/gloves/insulated.dm index d20ae78c6c4..9c451fb8117 100644 --- a/code/modules/clothing/gloves/insulated.dm +++ b/code/modules/clothing/gloves/insulated.dm @@ -121,7 +121,7 @@ /obj/item/clothing/gloves/cut/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -3) + AddComponent(/datum/component/adjust_fishing_difficulty, -5) /obj/item/clothing/gloves/cut/heirloom desc = "The old gloves your great grandfather stole from Engineering, many moons ago. They've seen some tough times recently." @@ -141,4 +141,4 @@ /obj/item/clothing/gloves/chief_engineer/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -4) + AddComponent(/datum/component/adjust_fishing_difficulty, -6) diff --git a/code/modules/clothing/gloves/punch_mitts.dm b/code/modules/clothing/gloves/punch_mitts.dm index 96848731a9c..36d085c289c 100644 --- a/code/modules/clothing/gloves/punch_mitts.dm +++ b/code/modules/clothing/gloves/punch_mitts.dm @@ -11,7 +11,7 @@ /obj/item/clothing/gloves/fingerless/punch_mitts/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -4) + AddComponent(/datum/component/adjust_fishing_difficulty, -6) AddComponent(/datum/component/martial_art_giver, /datum/martial_art/boxing/hunter) /datum/armor/gloves_mitts diff --git a/code/modules/clothing/gloves/special.dm b/code/modules/clothing/gloves/special.dm index 98de3145ddc..88274322e71 100644 --- a/code/modules/clothing/gloves/special.dm +++ b/code/modules/clothing/gloves/special.dm @@ -60,7 +60,7 @@ /obj/item/clothing/gloves/rapid/Initialize(mapload) . = ..() AddComponent(/datum/component/wearertargeting/punchcooldown) - AddComponent(/datum/component/adjust_fishing_difficulty, -7) + AddComponent(/datum/component/adjust_fishing_difficulty, -9) /obj/item/clothing/gloves/radio name = "translation gloves" @@ -78,7 +78,7 @@ /obj/item/clothing/gloves/race/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -7) + AddComponent(/datum/component/adjust_fishing_difficulty, -9) /obj/item/clothing/gloves/captain desc = "Regal blue gloves, with a nice gold trim, a diamond anti-shock coating, and an integrated thermal barrier. Swanky." @@ -98,7 +98,7 @@ /obj/item/clothing/gloves/captain/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -4) + AddComponent(/datum/component/adjust_fishing_difficulty, -6) /datum/armor/captain_gloves bio = 90 @@ -129,7 +129,7 @@ /obj/item/clothing/gloves/latex/nitrile/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -4) + AddComponent(/datum/component/adjust_fishing_difficulty, -6) /obj/item/clothing/gloves/latex/coroner name = "coroner's gloves" @@ -185,7 +185,7 @@ /obj/item/clothing/gloves/fishing/Initialize(mapload) . = ..() AddComponent(/datum/component/profound_fisher, new /obj/item/fishing_rod/mob_fisher/athletic(src)) - AddComponent(/datum/component/adjust_fishing_difficulty, -3) //on top of the extra that you get from the athletics skill. + AddComponent(/datum/component/adjust_fishing_difficulty, -4) //on top of the extra that you get from the athletics skill. /obj/item/clothing/gloves/fishing/equipped(mob/user, slot) . = ..() diff --git a/code/modules/clothing/gloves/tacklers.dm b/code/modules/clothing/gloves/tacklers.dm index d45fa8d0a90..ce3db5ab654 100644 --- a/code/modules/clothing/gloves/tacklers.dm +++ b/code/modules/clothing/gloves/tacklers.dm @@ -23,7 +23,7 @@ /// See: [/datum/component/tackler/var/skill_mod] var/skill_mod = 1 ///How much these gloves affect fishing difficulty - var/fishing_modifier = -5 + var/fishing_modifier = -7 /obj/item/clothing/gloves/tackler/Initialize(mapload) . = ..() @@ -61,7 +61,7 @@ tackle_speed = 2 min_distance = 2 skill_mod = -2 - fishing_modifier = -8 + fishing_modifier = -10 /obj/item/clothing/gloves/tackler/combat name = "gorilla gloves" @@ -113,11 +113,11 @@ base_knockdown = 1.75 SECONDS min_distance = 2 skill_mod = -1 - fishing_modifier = -3 + fishing_modifier = -5 /obj/item/clothing/gloves/tackler/football name = "football gloves" desc = "Gloves for football players! Teaches them how to tackle like a pro." icon_state = "tackle_gloves" inhand_icon_state = null - fishing_modifier = -3 + fishing_modifier = -4 diff --git a/code/modules/clothing/head/collectable.dm b/code/modules/clothing/head/collectable.dm index 9f7d01506f1..2ac7db70225 100644 --- a/code/modules/clothing/head/collectable.dm +++ b/code/modules/clothing/head/collectable.dm @@ -109,7 +109,7 @@ /obj/item/clothing/head/collectable/pirate/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -3) + AddComponent(/datum/component/adjust_fishing_difficulty, -4) /obj/item/clothing/head/collectable/kitty name = "collectable kitty ears" @@ -135,7 +135,7 @@ /obj/item/clothing/head/collectable/wizard/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -1) + AddComponent(/datum/component/adjust_fishing_difficulty, -2) /obj/item/clothing/head/collectable/hardhat name = "collectable hard hat" diff --git a/code/modules/clothing/head/fedora.dm b/code/modules/clothing/head/fedora.dm index 7bf295f7455..0bc555ca6bc 100644 --- a/code/modules/clothing/head/fedora.dm +++ b/code/modules/clothing/head/fedora.dm @@ -38,7 +38,7 @@ /obj/item/clothing/head/fedora/carpskin/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -4) + AddComponent(/datum/component/adjust_fishing_difficulty, -6) /obj/item/clothing/head/fedora/beige/press name = "press fedora" diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index 7b67cda761f..a15a59f05ad 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -626,7 +626,7 @@ /obj/item/clothing/head/utility/surgerycap/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -2) //FISH DOCTOR?! + AddComponent(/datum/component/adjust_fishing_difficulty, -3) //FISH DOCTOR?! /obj/item/clothing/head/utility/surgerycap/attack_self(mob/user) . = ..() @@ -672,7 +672,7 @@ /obj/item/clothing/head/utility/head_mirror/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -2) //FISH DOCTOR?! + AddComponent(/datum/component/adjust_fishing_difficulty, -3) //FISH DOCTOR?! /obj/item/clothing/head/utility/head_mirror/examine(mob/user) . = ..() diff --git a/code/modules/clothing/head/moth.dm b/code/modules/clothing/head/moth.dm index abce11336f2..c9ca9e449f0 100644 --- a/code/modules/clothing/head/moth.dm +++ b/code/modules/clothing/head/moth.dm @@ -15,7 +15,7 @@ /obj/item/clothing/head/mothcap/original/Initialize(mapload) . = ..() AddComponent(/datum/component/scope, range_modifier = 1.2, zoom_method = ZOOM_METHOD_ITEM_ACTION, item_action_type = /datum/action/item_action/hands_free/moth_googles) - AddComponent(/datum/component/adjust_fishing_difficulty, -2) + AddComponent(/datum/component/adjust_fishing_difficulty, -4) /obj/item/clothing/head/mothcap/original/item_action_slot_check(slot, mob/user, datum/action/action) return (slot & ITEM_SLOT_HEAD) diff --git a/code/modules/clothing/head/pirate.dm b/code/modules/clothing/head/pirate.dm index 6d5d0a67f30..ab1aaba8e37 100644 --- a/code/modules/clothing/head/pirate.dm +++ b/code/modules/clothing/head/pirate.dm @@ -7,7 +7,7 @@ /obj/item/clothing/head/costume/pirate/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -3) + AddComponent(/datum/component/adjust_fishing_difficulty, -5) /obj/item/clothing/head/costume/pirate/equipped(mob/user, slot) . = ..() diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm index 62930574031..a25a8eb3ca9 100644 --- a/code/modules/clothing/head/soft_caps.dm +++ b/code/modules/clothing/head/soft_caps.dm @@ -175,7 +175,7 @@ . = ..() AddComponent(/datum/component/speechmod, replacements = strings("crustacean_replacement.json", "crustacean")) //you asked for this. AddElement(/datum/element/skill_reward, /datum/skill/fishing) - AddComponent(/datum/component/adjust_fishing_difficulty, -4) + AddComponent(/datum/component/adjust_fishing_difficulty, -5) #define PROPHAT_MOOD "prophat" diff --git a/code/modules/clothing/masks/animal_masks.dm b/code/modules/clothing/masks/animal_masks.dm index 5a92c8faf07..fd900810e67 100644 --- a/code/modules/clothing/masks/animal_masks.dm +++ b/code/modules/clothing/masks/animal_masks.dm @@ -152,15 +152,15 @@ GLOBAL_LIST_INIT(cursed_animal_masks, list( /obj/item/clothing/mask/animal/frog/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, cursed ? 2 : -2) + AddComponent(/datum/component/adjust_fishing_difficulty, cursed ? 4 : -4) /obj/item/clothing/mask/animal/frog/make_cursed() . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, 2) + AddComponent(/datum/component/adjust_fishing_difficulty, 4) /obj/item/clothing/mask/animal/frog/clear_curse() . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -2) + AddComponent(/datum/component/adjust_fishing_difficulty, -4) /obj/item/clothing/mask/animal/frog/cursed cursed = TRUE @@ -241,15 +241,15 @@ GLOBAL_LIST_INIT(cursed_animal_masks, list( /obj/item/clothing/mask/animal/small/bear/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, cursed ? 2 : -2) + AddComponent(/datum/component/adjust_fishing_difficulty, cursed ? 4 : -4) /obj/item/clothing/mask/animal/small/bear/make_cursed() . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, 2) + AddComponent(/datum/component/adjust_fishing_difficulty, 4) /obj/item/clothing/mask/animal/small/bear/clear_curse() . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -2) + AddComponent(/datum/component/adjust_fishing_difficulty, -4) /obj/item/clothing/mask/animal/small/bear/cursed cursed = TRUE @@ -301,15 +301,15 @@ GLOBAL_LIST_INIT(cursed_animal_masks, list( /obj/item/clothing/mask/animal/small/tribal/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, cursed ? 4 : -4) + AddComponent(/datum/component/adjust_fishing_difficulty, cursed ? 5 : -5) /obj/item/clothing/mask/animal/small/tribal/make_cursed() . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, 4) + AddComponent(/datum/component/adjust_fishing_difficulty, 5) /obj/item/clothing/mask/animal/small/tribal/clear_curse() . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -4) + AddComponent(/datum/component/adjust_fishing_difficulty, -5) /obj/item/clothing/mask/animal/small/tribal/cursed //adminspawn only. cursed = TRUE diff --git a/code/modules/clothing/masks/boxing.dm b/code/modules/clothing/masks/boxing.dm index 46ad60e58de..b28645da3a5 100644 --- a/code/modules/clothing/masks/boxing.dm +++ b/code/modules/clothing/masks/boxing.dm @@ -26,7 +26,7 @@ /obj/item/clothing/mask/floortilebalaclava/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -3) //tacticool + AddComponent(/datum/component/adjust_fishing_difficulty, -5) //tacticool /obj/item/clothing/mask/floortilebalaclava/attack_self(mob/user) adjust_visor(user) diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 2e6ddeb6835..d8ba970c69c 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -447,7 +447,7 @@ GLOBAL_LIST_INIT(clown_mask_options, list( clothing_flags = MASKINTERNALS flags_cover = MASKCOVERSEYES resistance_flags = FLAMMABLE - fishing_modifier = -1 + fishing_modifier = -2 /obj/item/clothing/mask/gas/carp name = "carp mask" @@ -455,7 +455,7 @@ GLOBAL_LIST_INIT(clown_mask_options, list( icon_state = "carp_mask" inhand_icon_state = null flags_cover = MASKCOVERSEYES - fishing_modifier = -3 + fishing_modifier = -4 /obj/item/clothing/mask/gas/tiki_mask name = "tiki mask" @@ -468,7 +468,7 @@ GLOBAL_LIST_INIT(clown_mask_options, list( max_integrity = 100 actions_types = list(/datum/action/item_action/adjust) dog_fashion = null - fishing_modifier = -2 + fishing_modifier = -4 var/list/tikimask_designs = list() /obj/item/clothing/mask/gas/tiki_mask/Initialize(mapload) @@ -510,7 +510,7 @@ GLOBAL_LIST_INIT(clown_mask_options, list( inhand_icon_state = "gas_atmos" resistance_flags = FIRE_PROOF | ACID_PROOF flags_inv = HIDEFACIALHAIR|HIDEFACE|HIDEEYES|HIDEEARS|HIDEHAIR|HIDESNOUT - fishing_modifier = -2 + fishing_modifier = -4 /obj/item/clothing/mask/gas/prop name = "prop gas mask" diff --git a/code/modules/clothing/neck/_neck.dm b/code/modules/clothing/neck/_neck.dm index 7e16bd3bdab..a02c7d1debf 100644 --- a/code/modules/clothing/neck/_neck.dm +++ b/code/modules/clothing/neck/_neck.dm @@ -215,7 +215,7 @@ /obj/item/clothing/neck/stethoscope/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -2) //FISH DOCTOR?! + AddComponent(/datum/component/adjust_fishing_difficulty, -3) //FISH DOCTOR?! /obj/item/clothing/neck/stethoscope/suicide_act(mob/living/carbon/user) user.visible_message(span_suicide("[user] puts \the [src] to [user.p_their()] chest! It looks like [user.p_they()] won't hear much!")) diff --git a/code/modules/clothing/shoes/boots.dm b/code/modules/clothing/shoes/boots.dm index 68a7b1bb0ae..77e7b2ff369 100644 --- a/code/modules/clothing/shoes/boots.dm +++ b/code/modules/clothing/shoes/boots.dm @@ -74,7 +74,7 @@ /obj/item/clothing/shoes/jackboots/floortile/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -3) //tacticool + AddComponent(/datum/component/adjust_fishing_difficulty, -5) //tacticool /obj/item/clothing/shoes/winterboots name = "winter boots" @@ -181,7 +181,7 @@ /obj/item/clothing/shoes/pirate/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -2) + AddComponent(/datum/component/adjust_fishing_difficulty, -4) /obj/item/clothing/shoes/pirate/armored armor_type = /datum/armor/shoes_pirate diff --git a/code/modules/clothing/shoes/costume.dm b/code/modules/clothing/shoes/costume.dm index 3c66c0ac0c6..bbc0778e874 100644 --- a/code/modules/clothing/shoes/costume.dm +++ b/code/modules/clothing/shoes/costume.dm @@ -129,7 +129,7 @@ create_storage(storage_type = /datum/storage/pockets/shoes) LoadComponent(/datum/component/squeak, list('sound/effects/quack.ogg' = 1), 50, falloff_exponent = 20) - AddComponent(/datum/component/adjust_fishing_difficulty, -6) //deploy tactical duckling lure + AddComponent(/datum/component/adjust_fishing_difficulty, -7) //deploy tactical duckling lure /obj/item/clothing/shoes/ducky_shoes/equipped(mob/living/user, slot) . = ..() diff --git a/code/modules/clothing/suits/costume.dm b/code/modules/clothing/suits/costume.dm index 8e32e31acd2..fd361c90c08 100644 --- a/code/modules/clothing/suits/costume.dm +++ b/code/modules/clothing/suits/costume.dm @@ -264,7 +264,7 @@ /obj/item/clothing/suit/hooded/carp_costume/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -2) + AddComponent(/datum/component/adjust_fishing_difficulty, -4) /obj/item/clothing/head/hooded/carp_hood name = "carp hood" @@ -279,7 +279,7 @@ /obj/item/clothing/head/hooded/carp_hood/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -3) + AddComponent(/datum/component/adjust_fishing_difficulty, -5) /obj/item/clothing/head/hooded/carp_hood/equipped(mob/living/carbon/human/user, slot) ..() @@ -403,7 +403,7 @@ /obj/item/clothing/suit/hooded/shark_costume/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -2) + AddComponent(/datum/component/adjust_fishing_difficulty, -4) /obj/item/clothing/head/hooded/shark_hood name = "shark hood" @@ -417,7 +417,7 @@ /obj/item/clothing/head/hooded/shark_hood/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -3) + AddComponent(/datum/component/adjust_fishing_difficulty, -5) /obj/item/clothing/suit/hooded/shork_costume // Oh God Why name = "shork costume" @@ -432,7 +432,7 @@ /obj/item/clothing/suit/hooded/shork_costume/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, 2) + AddComponent(/datum/component/adjust_fishing_difficulty, 4) /obj/item/clothing/head/hooded/shork_hood name = "shork hood" @@ -446,7 +446,7 @@ /obj/item/clothing/head/hooded/shork_hood/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, 3) + AddComponent(/datum/component/adjust_fishing_difficulty, 5) /obj/item/clothing/suit/hooded/bloated_human //OH MY GOD WHAT HAVE YOU DONE!?!?!? name = "bloated human suit" @@ -615,7 +615,7 @@ /obj/item/clothing/suit/costume/hawaiian/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -3) + AddComponent(/datum/component/adjust_fishing_difficulty, -5) /obj/item/clothing/suit/costume/football_armor name = "football protective gear" diff --git a/code/modules/clothing/suits/ethereal.dm b/code/modules/clothing/suits/ethereal.dm index 1c86ca34094..031d5ac4c3c 100644 --- a/code/modules/clothing/suits/ethereal.dm +++ b/code/modules/clothing/suits/ethereal.dm @@ -14,7 +14,7 @@ /obj/item/clothing/suit/hooded/ethereal_raincoat/Initialize(mapload) . = ..() update_icon(UPDATE_OVERLAYS) - AddComponent(/datum/component/adjust_fishing_difficulty, -3) + AddComponent(/datum/component/adjust_fishing_difficulty, -5) /obj/item/clothing/suit/hooded/ethereal_raincoat/worn_overlays(mutable_appearance/standing, isinhands, icon_file) . = ..() @@ -33,7 +33,7 @@ /obj/item/clothing/suit/hooded/ethereal_raincoat/trailwarden/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -5) + AddComponent(/datum/component/adjust_fishing_difficulty, -7) /obj/item/clothing/suit/hooded/ethereal_raincoat/trailwarden/equipped(mob/living/user, slot) . = ..() @@ -56,4 +56,4 @@ /obj/item/clothing/head/hooded/ethereal_rainhood/trailwarden/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -4) + AddComponent(/datum/component/adjust_fishing_difficulty, -6) diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index 50455822963..affe103e307 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -54,7 +54,7 @@ /obj/item/clothing/suit/apron/overalls/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -2) + AddComponent(/datum/component/adjust_fishing_difficulty, -4) //Captain /obj/item/clothing/suit/jacket/capjacket @@ -356,7 +356,7 @@ /obj/item/clothing/suit/apron/surgical/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -2) // FISH DOCTOR?! + AddComponent(/datum/component/adjust_fishing_difficulty, -3) // FISH DOCTOR?! //Curator /obj/item/clothing/suit/jacket/curator diff --git a/code/modules/clothing/suits/labcoat.dm b/code/modules/clothing/suits/labcoat.dm index 5453d048b0e..18a5e60d740 100644 --- a/code/modules/clothing/suits/labcoat.dm +++ b/code/modules/clothing/suits/labcoat.dm @@ -40,7 +40,7 @@ /obj/item/clothing/suit/toggle/labcoat/cmo/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -2) //FISH DOCTOR?! + AddComponent(/datum/component/adjust_fishing_difficulty, -3) //FISH DOCTOR?! /datum/armor/toggle_labcoat bio = 50 @@ -63,7 +63,7 @@ /obj/item/clothing/suit/toggle/labcoat/paramedic/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -2) //FISH DOCTOR?! + AddComponent(/datum/component/adjust_fishing_difficulty, -3) //FISH DOCTOR?! /obj/item/clothing/suit/toggle/labcoat/mad name = "\proper The Mad's labcoat" diff --git a/code/modules/clothing/suits/moth.dm b/code/modules/clothing/suits/moth.dm index 076a0dd0b3c..b9c8ab64fa6 100644 --- a/code/modules/clothing/suits/moth.dm +++ b/code/modules/clothing/suits/moth.dm @@ -16,7 +16,7 @@ /obj/item/clothing/suit/mothcoat/original/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -3) + AddComponent(/datum/component/adjust_fishing_difficulty, -5) create_storage(storage_type = /datum/storage/pockets) /obj/item/clothing/suit/mothcoat/winter diff --git a/code/modules/clothing/suits/wiz_robe.dm b/code/modules/clothing/suits/wiz_robe.dm index 704182f3642..794ebfbff49 100644 --- a/code/modules/clothing/suits/wiz_robe.dm +++ b/code/modules/clothing/suits/wiz_robe.dm @@ -12,7 +12,7 @@ resistance_flags = FIRE_PROOF | ACID_PROOF dog_fashion = /datum/dog_fashion/head/blue_wizard ///How much this hat affects fishing difficulty - var/fishing_modifier = -4 + var/fishing_modifier = -6 /obj/item/clothing/head/wizard/Initialize(mapload) . = ..() @@ -54,7 +54,7 @@ armor_type = /datum/armor/none resistance_flags = FLAMMABLE dog_fashion = /datum/dog_fashion/head/blue_wizard - fishing_modifier = -1 + fishing_modifier = -2 /obj/item/clothing/head/wizard/chanterelle name = "chanterelle hat" @@ -122,7 +122,7 @@ clothing_flags = CASTING_CLOTHES resistance_flags = FIRE_PROOF | ACID_PROOF ///How much this robe affects fishing difficulty - var/fishing_modifier = -6 + var/fishing_modifier = -7 /obj/item/clothing/suit/wizrobe/Initialize(mapload) . = ..() @@ -194,20 +194,20 @@ inhand_icon_state = "wizrobe" armor_type = /datum/armor/none resistance_flags = FLAMMABLE - fishing_modifier = -2 + fishing_modifier = -3 /obj/item/clothing/head/wizard/marisa/fake name = "witch hat" armor_type = /datum/armor/none resistance_flags = FLAMMABLE - fishing_modifier = -1 + fishing_modifier = -2 /obj/item/clothing/head/wizard/tape/fake name = "tape hat" desc = "A hat designed exclusively from duct tape. You can barely see." armor_type = /datum/armor/none resistance_flags = FLAMMABLE - fishing_modifier = -1 + fishing_modifier = -2 /obj/item/clothing/suit/wizrobe/marisa/fake name = "witch robe" @@ -216,14 +216,14 @@ inhand_icon_state = null armor_type = /datum/armor/none resistance_flags = FLAMMABLE - fishing_modifier = -2 + fishing_modifier = -3 /obj/item/clothing/suit/wizrobe/tape/fake name = "tape robe" desc = "An outfit designed exclusively from duct tape. It was hard to put on." armor_type = /datum/armor/none resistance_flags = FLAMMABLE - fishing_modifier = -2 + fishing_modifier = -3 /obj/item/clothing/suit/wizrobe/paper name = "papier-mache robe" // no non-latin characters! @@ -241,7 +241,7 @@ inhand_icon_state = null armor_type = /datum/armor/robe_durathread allowed = /obj/item/clothing/suit/apron::allowed - fishing_modifier = -4 + fishing_modifier = -6 /datum/armor/robe_durathread melee = 15 diff --git a/code/modules/clothing/under/jobs/civilian/curator.dm b/code/modules/clothing/under/jobs/civilian/curator.dm index f08657cee07..44be99b8951 100644 --- a/code/modules/clothing/under/jobs/civilian/curator.dm +++ b/code/modules/clothing/under/jobs/civilian/curator.dm @@ -30,7 +30,7 @@ /obj/item/clothing/under/rank/civilian/curator/treasure_hunter/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -3) + AddComponent(/datum/component/adjust_fishing_difficulty, -5) /obj/item/clothing/under/rank/civilian/curator/nasa name = "\improper NASA jumpsuit" diff --git a/code/modules/clothing/under/jobs/medical.dm b/code/modules/clothing/under/jobs/medical.dm index 2dea3324082..9937e23929a 100644 --- a/code/modules/clothing/under/jobs/medical.dm +++ b/code/modules/clothing/under/jobs/medical.dm @@ -46,7 +46,7 @@ /obj/item/clothing/under/rank/medical/chief_medical_officer/scrubs/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -2) //FISH DOCTOR?! + AddComponent(/datum/component/adjust_fishing_difficulty, -3) //FISH DOCTOR?! /obj/item/clothing/under/rank/medical/chief_medical_officer/turtleneck name = "chief medical officer's turtleneck" @@ -88,7 +88,7 @@ /obj/item/clothing/under/rank/medical/scrubs/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -2) //FISH DOCTOR?! + AddComponent(/datum/component/adjust_fishing_difficulty, -3) //FISH DOCTOR?! /obj/item/clothing/under/rank/medical/scrubs/blue desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in baby blue." diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index 588dd8efc2a..70d2a5eeadb 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -60,7 +60,7 @@ /obj/item/clothing/under/misc/adminsuit/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -15) + AddComponent(/datum/component/adjust_fishing_difficulty, -25) /datum/armor/clothing_under/adminsuit melee = 100 diff --git a/code/modules/clothing/under/suits.dm b/code/modules/clothing/under/suits.dm index 98f41f407ca..07ec1a59c49 100644 --- a/code/modules/clothing/under/suits.dm +++ b/code/modules/clothing/under/suits.dm @@ -119,4 +119,4 @@ /obj/item/clothing/under/suit/carpskin/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -2) + AddComponent(/datum/component/adjust_fishing_difficulty, -4) diff --git a/code/modules/clothing/under/syndicate.dm b/code/modules/clothing/under/syndicate.dm index e4653b1c9bd..ac6af3f2f7f 100644 --- a/code/modules/clothing/under/syndicate.dm +++ b/code/modules/clothing/under/syndicate.dm @@ -36,7 +36,7 @@ /obj/item/clothing/under/syndicate/bloodred/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -2) //extra-tactical + AddComponent(/datum/component/adjust_fishing_difficulty, -4) //extra-tactical /datum/armor/clothing_under/syndicate_bloodred melee = 10 @@ -125,7 +125,7 @@ /obj/item/clothing/under/syndicate/floortilecamo/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -4) //tacticool + AddComponent(/datum/component/adjust_fishing_difficulty, -5) //tacticool /obj/item/clothing/under/syndicate/soviet name = "Ratnik 5 tracksuit" @@ -170,7 +170,7 @@ /obj/item/clothing/under/syndicate/scrubs/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -2) //FISH DOCTOR?! + AddComponent(/datum/component/adjust_fishing_difficulty, -3) //FISH DOCTOR?! /datum/armor/clothing_under/syndicate_scrubs melee = 10 diff --git a/code/modules/experisci/experiment/types/scanning_fish.dm b/code/modules/experisci/experiment/types/scanning_fish.dm index 3ea4f543687..96832cd8672 100644 --- a/code/modules/experisci/experiment/types/scanning_fish.dm +++ b/code/modules/experisci/experiment/types/scanning_fish.dm @@ -13,7 +13,7 @@ GLOBAL_LIST_EMPTY(scanned_fish_by_techweb) allowed_experimentors = list(/obj/item/experi_scanner, /obj/machinery/destructive_scanner, /obj/item/fishing_rod/tech, /obj/item/fish_analyzer) traits = EXPERIMENT_TRAIT_TYPECACHE points_reward = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS ) - required_atoms = list(/obj/item/fish = 4) + required_atoms = list(/obj/item/fish = 3) scan_message = "Scan different species of fish" ///Further experiments added to the techweb when this one is completed. var/list/next_experiments = list(/datum/experiment/scanning/fish/second) @@ -79,26 +79,26 @@ GLOBAL_LIST_EMPTY(scanned_fish_by_techweb) /datum/experiment/scanning/fish/second name = "Fish Scanning Experiment 2" - description = "An experiment requiring more fish species to be scanned to unlock the 'Chasm' setting for the fishing portal." + description = "An experiment requiring more fish species to be scanned to unlock the 'Ocean' setting for the fishing portal." points_reward = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS ) - required_atoms = list(/obj/item/fish = 8) + required_atoms = list(/obj/item/fish = 7) next_experiments = list(/datum/experiment/scanning/fish/third) - fish_source_reward = /datum/fish_source/portal/chasm + fish_source_reward = /datum/fish_source/portal/ocean /datum/experiment/scanning/fish/third name = "Fish Scanning Experiment 3" - description = "An experiment requiring even more fish species to be scanned to unlock the 'Ocean' setting for the fishing portal." + description = "An experiment requiring even more fish species to be scanned to unlock the 'Chasm' setting for the fishing portal." points_reward = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_4_POINTS ) - required_atoms = list(/obj/item/fish = 14) + required_atoms = list(/obj/item/fish = 11) next_experiments = list(/datum/experiment/scanning/fish/fourth, /datum/experiment/scanning/fish/holographic) - fish_source_reward = /datum/fish_source/portal/ocean + fish_source_reward = /datum/fish_source/portal/chasm /datum/experiment/scanning/fish/holographic name = "Holographic Fish Scanning Experiment" description = "This one actually requires holographic fish to unlock the 'Randomizer' setting for the fishing portal." performance_hint = "Load in the 'Beach' template at the Holodeck to fish some holo-fish." points_reward = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS ) - required_atoms = list(/obj/item/fish/holo = 4) + required_atoms = list(/obj/item/fish/holo = 3) scan_message = "Scan different species of holographic fish" next_experiments = null fish_source_reward = /datum/fish_source/portal/random @@ -111,6 +111,6 @@ GLOBAL_LIST_EMPTY(scanned_fish_by_techweb) name = "Fish Scanning Experiment 4" description = "An experiment requiring lotsa fish species to unlock the 'Hyperspace' setting for the fishing portal." points_reward = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_5_POINTS ) - required_atoms = list(/obj/item/fish = 21) + required_atoms = list(/obj/item/fish = 17) next_experiments = null fish_source_reward = /datum/fish_source/portal/hyperspace diff --git a/code/modules/fishing/fish_catalog.dm b/code/modules/fishing/fish_catalog.dm index 4f329861ff9..f95358c8763 100644 --- a/code/modules/fishing/fish_catalog.dm +++ b/code/modules/fishing/fish_catalog.dm @@ -8,7 +8,7 @@ /obj/item/book/manual/fish_catalog/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -4, ITEM_SLOT_HANDS) + AddComponent(/datum/component/adjust_fishing_difficulty, -7, ITEM_SLOT_HANDS) /obj/item/book/manual/fish_catalog/ui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) diff --git a/code/modules/fishing/fishing_equipment.dm b/code/modules/fishing/fishing_equipment.dm index ccad3b47080..cddabd90c06 100644 --- a/code/modules/fishing/fishing_equipment.dm +++ b/code/modules/fishing/fishing_equipment.dm @@ -289,7 +289,7 @@ material_flags = NONE custom_price = PAYCHECK_CREW * 3 ///How much holding this affects fishing difficulty - var/fishing_modifier = -2 + var/fishing_modifier = -4 /obj/item/storage/toolbox/fishing/Initialize(mapload) . = ..() @@ -298,7 +298,7 @@ /obj/item/fishing_rod, )) atom_storage.exception_hold = exception_cache - AddComponent(/datum/component/adjust_fishing_difficulty, -2, ITEM_SLOT_HANDS) + AddComponent(/datum/component/adjust_fishing_difficulty, fishing_modifier, ITEM_SLOT_HANDS) /obj/item/storage/toolbox/fishing/PopulateContents() new /obj/item/bait_can/worm(src) @@ -326,10 +326,10 @@ /obj/item/storage/toolbox/fishing/master name = "super fishing toolbox" - desc = "Contains EVERYTHING (almost) you need for your fishing trip." + desc = "Contains (almost) EVERYTHING you need for your fishing trip." icon_state = "gold" inhand_icon_state = "toolbox_gold" - fishing_modifier = -7 + fishing_modifier = -10 /obj/item/storage/toolbox/fishing/master/PopulateContents() new /obj/item/fishing_rod/telescopic/master(src) @@ -339,7 +339,6 @@ new /obj/item/fish_feed(src) new /obj/item/aquarium_kit(src) new /obj/item/fish_analyzer(src) - new /obj/item/experi_scanner(src) /obj/item/storage/box/fishing_hooks name = "fishing hook set" diff --git a/code/modules/fishing/fishing_minigame.dm b/code/modules/fishing/fishing_minigame.dm index 30ce2b33ad0..646b9816a6e 100644 --- a/code/modules/fishing/fishing_minigame.dm +++ b/code/modules/fishing/fishing_minigame.dm @@ -149,7 +149,9 @@ GLOBAL_LIST_EMPTY(fishing_challenges_by_user) if(rod.hook.fishing_hook_traits & FISHING_HOOK_KILL) special_effects |= FISHING_MINIGAME_RULE_KILL + //Finish the minigame faster at higher skill. The value modifiers for fishing are negative values btw. completion_loss += user.mind?.get_skill_modifier(/datum/skill/fishing, SKILL_VALUE_MODIFIER)/5 + completion_gain -= user.mind?.get_skill_modifier(/datum/skill/fishing, SKILL_VALUE_MODIFIER)/7.5 /datum/fishing_challenge/Destroy(force) GLOB.fishing_challenges_by_user -= user diff --git a/code/modules/movespeed/modifiers/mobs.dm b/code/modules/movespeed/modifiers/mobs.dm index aa6b9ac3a34..55ee105d56c 100644 --- a/code/modules/movespeed/modifiers/mobs.dm +++ b/code/modules/movespeed/modifiers/mobs.dm @@ -176,16 +176,7 @@ /datum/movespeed_modifier/magic_ties multiplicative_slowdown = 0.5 -///movespeed modifier that makes you go faster when wet and lying on the floor once past the fish organ set threshold. -/datum/movespeed_modifier/fish_flopping - blacklisted_movetypes = MOVETYPES_NOT_TOUCHING_GROUND - multiplicative_slowdown = - (CRAWLING_ADD_SLOWDOWN * 0.71) - ///speed bonus given by the fish tail organ when inside water. /datum/movespeed_modifier/fish_on_water blacklisted_movetypes = MOVETYPES_NOT_TOUCHING_GROUND multiplicative_slowdown = - /turf/open/water::slowdown - -///speed malus given by the fish organ set when dry -/datum/movespeed_modifier/fish_waterless - multiplicative_slowdown = 0.36 diff --git a/code/modules/movespeed/modifiers/status_effects.dm b/code/modules/movespeed/modifiers/status_effects.dm index 8f4e59d6555..3b32aea7748 100644 --- a/code/modules/movespeed/modifiers/status_effects.dm +++ b/code/modules/movespeed/modifiers/status_effects.dm @@ -59,3 +59,12 @@ /datum/movespeed_modifier/status_effect/guardian_shield multiplicative_slowdown = 1 + +///movespeed modifier that makes you go faster when wet and lying on the floor once past the fish organ set threshold. +/datum/movespeed_modifier/fish_flopping + blacklisted_movetypes = MOVETYPES_NOT_TOUCHING_GROUND + multiplicative_slowdown = - (CRAWLING_ADD_SLOWDOWN * 0.65) + +///speed malus given by the fish organ set when dry +/datum/movespeed_modifier/fish_waterless + multiplicative_slowdown = 0.36 diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 9f05026ba76..0c04f7af836 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -301,6 +301,8 @@ exposed_mob.incapacitate(1) // startles the felinid, canceling any do_after exposed_mob.add_mood_event("watersprayed", /datum/mood_event/watersprayed) + if((methods & INGEST) && HAS_TRAIT(exposed_mob, TRAIT_WATER_ADAPTATION) && reac_volume >= 4) + exposed_mob.adjust_wet_stacks(0.15 * reac_volume) #undef WATER_TO_WET_STACKS_FACTOR_TOUCH #undef WATER_TO_WET_STACKS_FACTOR_VAPOR @@ -316,9 +318,9 @@ affected_mob.adjust_drunk_effect(drunkness_restored * REM * seconds_per_tick) // and even sobers you up slowly!! if(water_adaptation) var/need_mob_update = FALSE - need_mob_update = affected_mob.adjustToxLoss(-0.2 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype) - need_mob_update += affected_mob.adjustFireLoss(-0.2 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype) - need_mob_update += affected_mob.adjustBruteLoss(-0.2 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype) + need_mob_update = affected_mob.adjustToxLoss(-0.25 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype) + need_mob_update += affected_mob.adjustFireLoss(-0.25 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype) + need_mob_update += affected_mob.adjustBruteLoss(-0.25 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype) return need_mob_update ? UPDATE_MOB_HEALTH : . // For weird backwards situations where water manages to get added to trays nutrients, as opposed to being snowflaked away like usual. diff --git a/code/modules/research/designs/autolathe/service_designs.dm b/code/modules/research/designs/autolathe/service_designs.dm index 94772421b69..29523bf5820 100644 --- a/code/modules/research/designs/autolathe/service_designs.dm +++ b/code/modules/research/designs/autolathe/service_designs.dm @@ -537,7 +537,7 @@ RND_CATEGORY_INITIAL, RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_SERVICE, ) - departmental_flags = DEPARTMENT_BITFLAG_SERVICE + departmental_flags = DEPARTMENT_BITFLAG_SERVICE | DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_SCIENCE /datum/design/fish_case name = "Stasis Fish Case" @@ -549,7 +549,7 @@ RND_CATEGORY_INITIAL, RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SERVICE, ) - departmental_flags = DEPARTMENT_BITFLAG_SERVICE + departmental_flags = DEPARTMENT_BITFLAG_SERVICE | DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_SCIENCE /datum/design/ticket_machine name = "Ticket Machine Frame" From 17737cbb3fd0846701a7bde91f1f33274d414b01 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Thu, 17 Oct 2024 00:46:18 +0000 Subject: [PATCH 084/103] Automatic changelog for PR #87201 [ci skip] --- html/changelogs/AutoChangeLog-pr-87201.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87201.yml diff --git a/html/changelogs/AutoChangeLog-pr-87201.yml b/html/changelogs/AutoChangeLog-pr-87201.yml new file mode 100644 index 00000000000..03a14d7407a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87201.yml @@ -0,0 +1,10 @@ +author: "Ghommie" +delete-after: True +changes: + - map: "Added a premapped fishing portal generator to every map." + - balance: "Lowered the requirements for fish scanning experiment. Swapped the rewards of the second and third experiments." + - balance: "Buffed fishing difficulty modifiers for several items and chairs." + - balance: "Fishing skill now affects completion speed of the minigame more actively." + - balance: "Mild fish infusion tweaks. Crawling is a smidge slower, but healing from showers and drank water is a bit better." + - qol: "Fishing rods and fish cases can now be printed by cargo and science lathes." + - rscadd: "Gills now give the fish puns speech modifier." \ No newline at end of file From 6ac4fbec2c6dfc88f94292685c1ccc7364e49142 Mon Sep 17 00:00:00 2001 From: jimmyl <70376633+mc-oofert@users.noreply.github.com> Date: Thu, 17 Oct 2024 05:12:53 +0200 Subject: [PATCH 085/103] moves the movement subsystem off background (#87247) ## About The Pull Request movement subsystem now has the SS_BACKGROUND flag removed excuse me if this isnt any correct like i know daedalus did this for some reason at best ## Why It's Good For The Game (stuff controlled by) movement ss is not actually THAT costly (compared to Throwing) ![2024-10-15 22_07_17-Boss' Fat Camp 82](https://github.com/user-attachments/assets/0b0ffe3f-5703-4e32-87a7-4d84cc0979f3) (when i nuked metastation on local) and i think being able to move when you slip on oil or whatever eg jetpacks during lotsa lag is pretty important this does not actually make it immune to lag it just seems to mitigate the issue by a slight margin ## Changelog :cl: code: Movement Subsystem no longer is a background subsystem. This means that you should no longer get stuck after slipping on oil during instances of high usage. /:cl: --- code/controllers/subsystem/movement/movement.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/controllers/subsystem/movement/movement.dm b/code/controllers/subsystem/movement/movement.dm index d6043d596bb..2b0463db790 100644 --- a/code/controllers/subsystem/movement/movement.dm +++ b/code/controllers/subsystem/movement/movement.dm @@ -1,6 +1,6 @@ SUBSYSTEM_DEF(movement) name = "Movement Loops" - flags = SS_NO_INIT|SS_BACKGROUND|SS_TICKER + flags = SS_NO_INIT|SS_TICKER wait = 1 //Fire each tick /* A breif aside about the bucketing system here From 23bc9de8e0f8089bb8762414f453f61b39ccb8c3 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Thu, 17 Oct 2024 03:13:16 +0000 Subject: [PATCH 086/103] Automatic changelog for PR #87247 [ci skip] --- html/changelogs/AutoChangeLog-pr-87247.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87247.yml diff --git a/html/changelogs/AutoChangeLog-pr-87247.yml b/html/changelogs/AutoChangeLog-pr-87247.yml new file mode 100644 index 00000000000..48873ff33dc --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87247.yml @@ -0,0 +1,4 @@ +author: "mc-oofert" +delete-after: True +changes: + - code_imp: "Movement Subsystem no longer is a background subsystem. This means that you should no longer get stuck after slipping on oil during instances of high usage." \ No newline at end of file From 25c0bdc3eb63cfa01a0a8ecbfaad10ab22291d03 Mon Sep 17 00:00:00 2001 From: san7890 Date: Thu, 17 Oct 2024 02:22:36 -0600 Subject: [PATCH 087/103] Adds Better Bombanana Logging (#87249) ## About The Pull Request Fixes #87214 Better bombanana logging that should account for all the edgecases mentioned in the above issue report, giving more awareness on why a bombanana peel spawned, as well as renaming the bombanana syndicate minibomb to actually have the name "bomb". Just does a lot of retinkering and cleaning up to ensure all the args are appropriate and that everything should be fed into the logging procs appropriately. Big ol' verbose message in case something wonks out though, but it should be pretty evident in the logs now. ## Why It's Good For The Game Better logging for admins. ## Changelog :cl: admin: Logging of Bombanana Peel explosions should be far better now. /:cl: --- .../antagonists/clown_ops/clown_weapons.dm | 30 +++++++++++++++++-- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/code/modules/antagonists/clown_ops/clown_weapons.dm b/code/modules/antagonists/clown_ops/clown_weapons.dm index bd2dfd4b0da..c801d3ce6f6 100644 --- a/code/modules/antagonists/clown_ops/clown_weapons.dm +++ b/code/modules/antagonists/clown_ops/clown_weapons.dm @@ -205,20 +205,44 @@ tastes = list("explosives" = 10) food_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 1) +/obj/item/food/grown/banana/bombanana/Initialize(mapload) + . = ..() + RegisterSignal(src, COMSIG_FOOD_CONSUMED, PROC_REF(on_consumed)) + +/// Log whenever someone eats this with an explicit message since it willspawn a live bomb. +/obj/item/food/grown/banana/bombanana/proc/on_consumed(datum/source, mob/living/eater, mob/feeder) + SIGNAL_HANDLER + var/list/concatable = list("[key_name_and_tag(eater)] has eaten a bombanana!") + if(feeder != eater) + concatable += "This person was fed this by [key_name_and_tag(feeder)]." + + concatable += "As a result of this, a bombanana peel will be spawned at [AREACOORD(src)]." + + var/final_string = jointext(concatable, " ") + log_bomber(details = final_string) // sorta wacks out the traditional "log_bomber" format but it gets the point across better + return NONE + /obj/item/grown/bananapeel/bombanana - desc = "A peel from a banana. Why is it beeping?" + desc = parent_type::desc + " Why is it beeping?" seed = /obj/item/seeds/banana/bombanana - var/det_time = 50 + /// How long we have until we explode. + var/det_time = 5 SECONDS + /// Ref to the bomb we spawn when we explode. var/obj/item/grenade/syndieminibomb/bomb /obj/item/grown/bananapeel/bombanana/Initialize(mapload) . = ..() AddComponent(/datum/component/slippery, det_time) bomb = new /obj/item/grenade/syndieminibomb(src) + bomb.name = "bombanana peel" bomb.det_time = det_time + + var/potential_user = null if(iscarbon(loc)) to_chat(loc, span_danger("[src] begins to beep.")) - bomb.arm_grenade(loc, null, FALSE) + potential_user = loc // just for fingerprint diagnosis in explosion logging, the on_consumed proc will have provided the necessary context already + + bomb.arm_grenade(potential_user, msg = FALSE) /obj/item/grown/bananapeel/bombanana/Destroy() . = ..() From e5c498cb0f4f67c1607e3a1d168fbd538ea7673d Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Thu, 17 Oct 2024 08:22:57 +0000 Subject: [PATCH 088/103] Automatic changelog for PR #87249 [ci skip] --- html/changelogs/AutoChangeLog-pr-87249.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87249.yml diff --git a/html/changelogs/AutoChangeLog-pr-87249.yml b/html/changelogs/AutoChangeLog-pr-87249.yml new file mode 100644 index 00000000000..799b711b9a2 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87249.yml @@ -0,0 +1,4 @@ +author: "san7890" +delete-after: True +changes: + - admin: "Logging of Bombanana Peel explosions should be far better now." \ No newline at end of file From 7f4c5099b0d1578c6ec7186e28b77a118761d9db Mon Sep 17 00:00:00 2001 From: SmArtKar <44720187+SmArtKar@users.noreply.github.com> Date: Thu, 17 Oct 2024 10:23:27 +0200 Subject: [PATCH 089/103] Fixes our last playsound(list()) (#87251) ## About The Pull Request This doesn't work anymore. Thanks to dangerkitten on bitbus for making me write a regex to find this one. (said regex being ``playsound\([^,]+, list\(``) ## Changelog :cl: fix: Hotswapping tanks in pumps and scrubbers now properly plays both sounds instead of runtiming /:cl: --- .../atmospherics/machinery/portable/portable_atmospherics.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm b/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm index cb1a23f82f1..8284b212efc 100644 --- a/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm +++ b/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm @@ -230,7 +230,8 @@ UnregisterSignal(holding, COMSIG_QDELETING) holding = new_tank RegisterSignal(holding, COMSIG_QDELETING, PROC_REF(unregister_holding)) - playsound(src, list(insert_sound,remove_sound), sound_vol) + playsound(src, insert_sound, sound_vol) + playsound(src, remove_sound, sound_vol) else if(holding)//we remove a tank investigate_log("had its internal [holding] removed by [key_name(user)].", INVESTIGATE_ATMOS) to_chat(user, span_notice("You remove [holding] from [src].")) From 37b2914f7a703554f776323a62f8130cafa3cc84 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Thu, 17 Oct 2024 08:23:53 +0000 Subject: [PATCH 090/103] Automatic changelog for PR #87251 [ci skip] --- html/changelogs/AutoChangeLog-pr-87251.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87251.yml diff --git a/html/changelogs/AutoChangeLog-pr-87251.yml b/html/changelogs/AutoChangeLog-pr-87251.yml new file mode 100644 index 00000000000..9e17d2c2330 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87251.yml @@ -0,0 +1,4 @@ +author: "SmArtKar" +delete-after: True +changes: + - bugfix: "Hotswapping tanks in pumps and scrubbers now properly plays both sounds instead of runtiming" \ No newline at end of file From fc988d6261a929a2cc4e8803af3a3aea948fa83a Mon Sep 17 00:00:00 2001 From: jimmyl <70376633+mc-oofert@users.noreply.github.com> Date: Thu, 17 Oct 2024 10:32:54 +0200 Subject: [PATCH 091/103] a few very minor manulathe changes + rotating fix (#87244) ## About The Pull Request made manufacturing machines i/o overlays (the blue and orange lights and such) rotate with the machine CTRL SHIFT LMB makes the manulathe dump all mats manulathes no longer may receive ore: this was not intentional, processing ore is stuff the smelter does manulathes now use a matter bin instead of a servo (because it makes sense because it holds mats): this affects its material capacity being: bin tier * 50 sheets ## Why It's Good For The Game bug bad oversight bad and you also no longer need to decon the lathe to dump mats ## Changelog :cl: fix: input output overlays for manufacturing machines actually update properly when rotated qol: you may dump materials of a manulathe via CTRL SHIFT LMB balance: manulathes may not receive ore (not intentional) balance: manulathes now use a matter bin in their construction, which now affects their material holding capacity: 50 sheets per tier /:cl: --- .../machines/machine_circuitboards.dm | 2 +- code/modules/manufactorio/_manufacturing.dm | 6 ++++- code/modules/manufactorio/machines/crusher.dm | 2 +- code/modules/manufactorio/machines/lathe.dm | 23 ++++++++++++++++--- 4 files changed, 27 insertions(+), 6 deletions(-) diff --git a/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm index 1cc0510393f..c86b86c1b5d 100644 --- a/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm @@ -1759,7 +1759,7 @@ build_path = /obj/machinery/power/manufacturing/lathe req_components = list( /obj/item/stack/sheet/iron = 5, - /datum/stock_part/servo = 1, + /datum/stock_part/matter_bin = 1, ) /obj/item/circuitboard/machine/manucrusher diff --git a/code/modules/manufactorio/_manufacturing.dm b/code/modules/manufactorio/_manufacturing.dm index db177ac5ae4..5c44d1e8615 100644 --- a/code/modules/manufactorio/_manufacturing.dm +++ b/code/modules/manufactorio/_manufacturing.dm @@ -28,7 +28,7 @@ . = ..() if(may_be_moved) . += "It receives power via cable, but certain buildings do not need power." - . += length(contents - circuit) ? "It contains:" : "Its empty." + . += length(contents - circuit) ? "It contains:" : "It contains no items." for(var/atom/movable/thing as anything in contents - circuit) var/text = thing.name var/obj/item/stack/possible_stack = thing @@ -62,6 +62,10 @@ return ITEM_INTERACT_SUCCESS return ITEM_INTERACT_BLOCKING +/obj/machinery/power/manufacturing/setDir(newdir) + . = ..() + update_appearance(UPDATE_OVERLAYS) + /obj/machinery/power/manufacturing/crowbar_act(mob/living/user, obj/item/tool) . = ITEM_INTERACT_BLOCKING if(default_deconstruction_crowbar(tool)) diff --git a/code/modules/manufactorio/machines/crusher.dm b/code/modules/manufactorio/machines/crusher.dm index 272cfeee02e..b8cb50bb0bb 100644 --- a/code/modules/manufactorio/machines/crusher.dm +++ b/code/modules/manufactorio/machines/crusher.dm @@ -39,7 +39,7 @@ if(gone == withholding) withholding = null -/obj/machinery/power/manufacturing/crusher/process(seconds_per_tick) //noot functional +/obj/machinery/power/manufacturing/crusher/process(seconds_per_tick) if(!isnull(withholding) && !send_resource(withholding, dir)) return for(var/material in held_mats) diff --git a/code/modules/manufactorio/machines/lathe.dm b/code/modules/manufactorio/machines/lathe.dm index 2669e851b93..431d7af1c11 100644 --- a/code/modules/manufactorio/machines/lathe.dm +++ b/code/modules/manufactorio/machines/lathe.dm @@ -19,18 +19,35 @@ var/atom/movable/withheld /obj/machinery/power/manufacturing/lathe/Initialize(mapload) - . = ..() print_sound = new(src, FALSE) materials = AddComponent( \ /datum/component/material_container, \ SSmaterials.materials_by_category[MAT_CATEGORY_ITEM_MATERIAL], \ - SHEET_MATERIAL_AMOUNT * MAX_STACK_SIZE * 2, \ + 0, \ MATCONTAINER_EXAMINE|MATCONTAINER_NO_INSERT, \ ) + register_context() + . = ..() if(!GLOB.autounlock_techwebs[/datum/techweb/autounlocking/autolathe]) GLOB.autounlock_techwebs[/datum/techweb/autounlocking/autolathe] = new /datum/techweb/autounlocking/autolathe stored_research = GLOB.autounlock_techwebs[/datum/techweb/autounlocking/autolathe] +/obj/machinery/power/manufacturing/lathe/add_context(atom/source, list/context, obj/item/held_item, mob/user) + . = NONE + if(isnull(held_item)) + context[SCREENTIP_CONTEXT_CTRL_SHIFT_LMB] = "Dump all contained materials" + return CONTEXTUAL_SCREENTIP_SET + +/obj/machinery/power/manufacturing/lathe/click_ctrl_shift(mob/living/user) + balloon_alert_to_viewers("materials dumped") + materials.retrieve_all() + +/obj/machinery/power/manufacturing/lathe/RefreshParts() + . = ..() + var/datum/stock_part/matter_bin/bin = locate() in component_parts + materials.max_amount = bin.tier * (SHEET_MATERIAL_AMOUNT * MAX_STACK_SIZE) + + /obj/machinery/power/manufacturing/lathe/examine(mob/user) . = ..() var/datum/design/design @@ -63,7 +80,7 @@ return ..() /obj/machinery/power/manufacturing/lathe/receive_resource(atom/movable/receiving, atom/from, receive_dir) - if(!isstack(receiving) || receiving.resistance_flags & INDESTRUCTIBLE || receive_dir != REVERSE_DIR(dir)) + if(!isstack(receiving) || istype(receiving, /obj/item/stack/ore) || receiving.resistance_flags & INDESTRUCTIBLE || receive_dir != REVERSE_DIR(dir)) return MANUFACTURING_FAIL materials.insert_item(receiving) return MANUFACTURING_SUCCESS From f639f377ae185074c3dfaf337c082a86fbda7b62 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Thu, 17 Oct 2024 08:33:30 +0000 Subject: [PATCH 092/103] Automatic changelog for PR #87244 [ci skip] --- html/changelogs/AutoChangeLog-pr-87244.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87244.yml diff --git a/html/changelogs/AutoChangeLog-pr-87244.yml b/html/changelogs/AutoChangeLog-pr-87244.yml new file mode 100644 index 00000000000..48ae3f6f59b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87244.yml @@ -0,0 +1,7 @@ +author: "mc-oofert" +delete-after: True +changes: + - bugfix: "input output overlays for manufacturing machines actually update properly when rotated" + - qol: "you may dump materials of a manulathe via CTRL SHIFT LMB" + - balance: "manulathes may not receive ore (not intentional)" + - balance: "manulathes now use a matter bin in their construction, which now affects their material holding capacity: 50 sheets per tier" \ No newline at end of file From 67a6effdb7d8b0c6852e40b3d9e386877039c720 Mon Sep 17 00:00:00 2001 From: Hatterhat <31829017+Hatterhat@users.noreply.github.com> Date: Thu, 17 Oct 2024 04:12:43 -0500 Subject: [PATCH 093/103] fixes portable SMESes disappearing when opening their panel (#87250) ## About The Pull Request replaces the _o in the p_smes_o icon state with a -o so the icon actually shows up instead of turning invisible. no GBP because it's my bad. i thought i caught that ## Why It's Good For The Game SMES turning invisible when unscrewed probably not great for usability ## Changelog :cl: fix: Portable SMESes should no longer turn invisible when unscrewed. /:cl: --------- Co-authored-by: Hatterhat --- icons/obj/machines/engine/other.dmi | Bin 25316 -> 25288 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/machines/engine/other.dmi b/icons/obj/machines/engine/other.dmi index 7fb5ac6e7656d59b2449d030355f377bfaa6ddd7..15390eb537c83a3a602a5ba9c5aaeefc6616e7a0 100644 GIT binary patch literal 25288 zcmb@ubzGEhxA1!pLw89?3kV1jf`Zf_Af<$KgCHS|(g-t@gbFAih@_-+gEWYMAl+Re z-OVsF?>+vWXP>=4XYc)kJGx)wxgX(*EsUnd3tfJ{|IQ5ygtt>C{5 zLVWOlWQJ<_z!wNVT|*B=o0rxvp1XNGcXa^(pOhb?O)eqAw0Mh*Y0I~aI4UkwXM%Fn zbZu13AyjTam}PI>Lti9$@pN{_(qQH_E4j_WT=u=Eg|1%{mc~Q=uPg}IryS$m*p5&5Jk#z4D+;Cg)RL-0(zEVUb#tq+6=I*wiO#;wCpr*Nv6Hgkpb_gb&m4 zUu@p-R$g71^|}hJ#~nSF1}-vP-VSE{dbZG)s_|CPi#J2F-EUrdTR5aPWj(a0{n7X6T}}<; z=#8fjjIAajuhH9Nv1Ka-178bjI^sYbxvW*q7u#3Q)$PT-?|tc8cfkYz?0~A`16`k# z?Nt9)w5v@R*qiM4xbp3ug{Dlm9=v}IH737NWN#l`L+ezA@FQR2nbsP;d6Ls%#bGG) z0IpWB%D{K3T*w}#D=|9V-A6XO`Q*k|MRi(Y!sQo4MlYZm2o$RP)6dznI}K6|Qt4+~ z2@~^a0rR5B$A6>-&U|ec->wACJrIs@mX3TIw z#L=N4!2mRrNdn(Y1s5_E!oO^?-E(4qvU7w2>nV*t%uO9TTyVbdXZzE?dTkw5%&v2#pGPFzJ!ep5Y})(Z?CjgK1-Qk><&i?`t?}ZD7sHD@#l3_a2;w&Fo6IV(3^p8@zDq z;``PFftjl?VJ~BEhUV`&*3Ijz!VVZ2px}Nv?*?Hm>dZsd4#{&fInGjk!whKs!2L*f z@8ster+>h@X1K0Rb{+wMX1Ae5jlaY|l5L`vsRN`3dd$mEJL*N#Fb9a1--kL@W0_W;r|qFcbtmH{A%dmS^c9Vb z%#S__P_cdIc;5x+?O;^w7uZUDP${3nI7GUfkZ~PLz^#a6YK&1QeRg3(aMQLapzezTR{M=h`NOzQ;TEDs^8iGD^Fh-2FcEWj}Vpm-jf@V=rW zKX~yTB2O4ea6=ZKp(p3phi?S-wxnA3AxhI(f5_a4z!UDq$vCtc%526DeiXDhN1@eY z(xqVdM&idW221wCOOH7hHOF?u@fpc#a_&KJ1!~2EuG;3Y`?pu^kAKSTu$9(+5eeRL zee0Gs>r;m6V<$m8eE6_}sq6LSbxR5@c4KR-k={_4Jq6+*4HkW2;HiJA+lJUadxo1( z;t+Ws1RwXjX*o>TgL1I0L}BTQ9-t3b$cpyBNuY+7;iqv99u z=eDGS>n?|+&q67w83mdc?meNQXmXb)EQgXJh?hA4qPUP7C{R(eNy2A#YWx@pIYMKT zM*24K*s)#-0m0hK?WX`&D5cdS27rhobdnlhPM(mXrej}>a6$p?uK{VrnmT5+xMXci zI#YH7H13uwJVf@7DfG{9b0lU}C{=S3t@=(M`No-o>ml+;x|Nq>&Id4`n|A@VnQR6o zVo4nTpQiEQPU1cIC3;BP%^4$%XT<|*+UuQkhB5+hnH?Y9s7XQNVVH7K1;)n41qei5 zLtcW0d7*n zL6qi!@-`lLTxBS0oGu_MbSeeqT>H}kb{O$#TBT?y>0Q%PBo96*BD8};8o0rAiG5Th zr45=f*(&l^4qQ+D5yMB%TpILH7baZ|X*|otD%rghfHV-#DW%zyCu?Pk^*Sxe30m@S}kzNDJBw6#Zl!*8s6(1R|?a5eE(AoXCx;P4vG$a&nCGH&^97L2` zcNMULy5_<0DCnM;*y2(++xTsP?WD?ziVitKfC6?UoEC6uWHhKVJ~BEQnwxu5Pe>&x z1%kVK(os*qiEC55*l0iWC1cB|`IYaWP1u6x_GCFnv1{FfI7<2LCv)wo^_1XFb~PU{D*qX0I%WtHoicrW2UiNN(FC&&NgtM)vQk zFD^nu!Y?!j=wVEWUj_Gy4`9vTyoI2av~Dt^o^sw>a*IOnC$zE0tA+O~?`_1^w7AA7 zL2BUbS@(%<#?O-hztUt(Ud@9GfBOCP(_Nvpo}QvWkLpeT;f)IfOob88^0}~st1G=u z5-3!P3s2#7&=ouF6uBlZR~DPpQ@Mi;(rcPu=^0d|vNbfv}fZyNp};d$bqB+t5{ zf9&APc=N~ZO8?u$)W1~0wJPOm)jE5Qy|&e43uoUv!Ru^Nt(0k3{XM12 zW}|o+IrgfTt6$VJMC5M24PM+FD-?mFU-b>dGfR39s;jF%5aQ3+<#3egBwh`DuQ&^# zmjCcMLnmViAJ#O_maz-L_rI=K#}oNzi%?P68ljy{K+xYg1|8{GJ0@7>?L2HInis- zZbTr^j8BowN^KNcX8@j3G;<_V=es!d-NEZ?#w~#XD!rAjE)FxGcEVp3nid`k5#rBe z`JXR^e<$AWAySNd#aP7`#ZPn~&F|lKS}R`efXTSoX5Yld%S+7joFvBB{sh2lhIti9 zd_U-G@-IKD93Tzw>wR_;5iW|)OBp?aRpj12G6rFw_v3An%ZA~XA`nc)09HHS-tXxf zV?jP-r)vjCCK^UVTqBrV_G9sdWR8Q=5n_a|Lq3f<=UXF`LPwBM+2TWfa4^7-1SjKN z-$rVOW^m({w~XaC1S`q3{&Jrl$SN=LV|WL7JzPkwv2*@ID3EGAa)0UAD&&5+NQr8^ z?@5O7H1qvokImchl5hPGhyy;_por0LQEI<% zKUn(1+fQ_J?C~CCc~-spi*L+&6vEUpVU}AF9u!*BoOk>gD_+0Gf6IJd8;c&qZD}}= zbGs-tO@u*-GVhx83+zM3M4QsBT7;|Gwn2V~%#1N9;ho;=dxw-QEX;s^-riTE6A$S{Bf@9J!NS0^XcXrdhmd2uk(FkXi^%tI%5i zHM@KV_2I7vUS{2XbEV@;p!*}gl+5r;=ND3?k5H7Q*e_l=oOla=@oY_%uO?~6B@PpK z;KzTRlX+#ebZ)??lKCL&2@-m^AjC0aaWKuo9U}l}q|2IltxST`zTbloKNwt>mMf;s zJVe>E%k(LHDj>V*Mi4Td${oBhhuzZU>@9<@cnGawmi5;WU)ClRpf3 z97c2X)(@^0{EeQY3q%6NbdZE{b8?>JORqlrkn<=}>38UXn^sze&@s^W%k-{V(Cg%7 zbr7r-AJ4>g|4UO5m2wIJ&bb7H)s_yl6nr$)Zd70uXI$p|GJ?eY%lRO$JtwMnZ zBvZ)YjHMUfUJb}11@s@`3`WxM#3m$!L7?~y^DkXJBOW}8(b5b9f?F7BS`SxyLj((@ z?f+6a!$<&V3s}D5P2?DKQf>A5_1IX6Q95Te5Pg*H7`U*W=C_oBL-p%HkekT%>({T# zcJVVOr0n)$DCI{zV)P^huj5v3_uOfF)wS-jSx$KKeO-_<2=E{@R7I*0i@lEwpBDxZ zYyCTrA0&LAXE>&<6?ja@QQih-lf~xvAX#z!!ENLaP=`iB_3f1lHwx znB9%s(Ogd5X5n;O{DUf3Qz|21;O+?jL6TbufZNMg@9-`)iFo7AB9@&PSE%q? zeYhF_48`p~MVdtakzfx|Go}2>$^&xe;yR1-OA)pETWwMws>f6M`uYW%Z#q`Hi$ZzYY2;OcSJDBU z*HH02ii>Caa)k6y$}}Dtq8Vs>Do>7x(F6ooK@HFx=qsi?bbYL~LjkOSw5>9@L*YLk zrADaxUM&bbo2_k>2$pmsb)KzwJV~oANT5^aO2T<((8&)TX$MaB#O!E2+V;kGR?CzR z5znQl?{6p7aAs0bSwt6h^H&hsuRGZvRAlh6%}^bAZw%pZ}-Yz9cT zmqmeR|K-J9uNt^jD;STQ;74TyNs6?zv=IZ3=x$fIsYYD;FHd@O0b#pU$I1zF&yx%_ z9z1}26n~iK!Vz`@rEG=lqIZJ(e?JwEaREGLC#FbtuY%}p5<0AWBUC}Xj_4jrk2N;x zKh@;@CwsX5U;wAMs7UeNtsiXSj4}AssjKQX-AXpP)30~fF#lvQ9^izP-f!hjqp1wz z^@1N7ar5%>wg!DZRe z9mhY!-XJ_PWi)r@a0d$@Of@Y{M71c8e9UwHD(`AAN+-DYx3Z#p&D%))zgf=CJC^AM zVZh-}(2CQK9W{Yyi7E5}$=|m)Lu`R(-sVij5RgcF@=c?=)h5x?|7`F=C0Rs{ZMCFkr;7gJjSUI-nV>ttR?gvttvi z%#@*4D6j&_LB-V&FsOzGdB`Cz{kguqufaM*l^N4|A@)d3`7>bUX}#dcjd5&X0u_TM z^3;w(m@r!>|6AJ(#q-aVsGabtK2A?byhsXWm)e<48*FB5MUHh>|BqAtzbgKJF&EW# zbCS_&7q!6&uBdQF{14q&$Z~>H6H(s-9Nsrshx*LPZoIUj0M%r<`g+blq)fy(rloh4 z*k9pA!(47i=^Sc^D-(2M!KS>*i9n2SF<85BwQ`T$0%M;4E)%`S#X+G1yOT8ec2Mu# zdApm0p)28~m5nPlj#vJn^nWH`(_9{auC|sIVpV-}t%EgQz!+ETYdVcTiE zia^9cA=)W$X+7o ztS64H?VwOrA4M6DZkr*B>a2ULs46DxHC1YH5LpmSe|77B{cMY7fT z!pLVE(|6J>6$?;d^8@LatF_p!a`R?aW(3l0A#G77{9xA`o0|&J1s1Oojk6IG%|Uf5 z8o!cG<-hGAFRZAbp30~7$DQTtWWyd|-zi0y``H+*-7A% z%GR3Q&16~_E;;X(Bn`^6f+1(je>gsY5ft}+@e6El0b@)?MuyxrRqQ!?@=iK>RgD{% zWwx+>faY7WIpkcHFzHkb+0n!e+z(+}{QWa7N%$$wJXnU?o@+3uoDC(SaXb92DndBO zw!q~Cy!}Cy_eX-#`<6QdTkfjp;>$*broz3vYFwtk3NhPKTC*H{n}`o^Ad>){z|Fb4 z;&Jy=t?@ydEPsS_-oE3h#Ht;n;^x(NE4{;ZbCG#|Bgg~{g+Z{hWvY6^5@T+5`*pPRN&IU~}+gjJbm zh-HjF%=)fMG(E@0|9AjrOzjP&<9pUjhsdbhT!b30waNol5EtL$r-qTxzt&yrN#OsnCNDfpqNtA~Dvt_%95g;Lv0}1tN!Ona zqX1MiHI>0ZexY#6Pvd@P*40h&sNb!rsfh|w=3jqiYkPfs?Zi)S;o7GE5U`#Ze&cY!raGNV9Nd@HUVd(_ z5}kBBBrh|wt*qodr*eMTjy@oN^S4#{7_w;?E3ZV&mO4cE3bdzjshhd zD-024y)SvntBuUDT3>i=+{F9D4n+Z9r#R)~0}%1?v>qNF8BI+rz~Imj1dtdR3i1MC z+yumKy=BUSJ0`oYbY_C3v9G95#SdlBjCnHZ9Wf%VYKvR-XEkdgipt9249D43CS?LY zBL=OtPdgkO96Ul|_4kQt*TDV88d^H+6*oRvKG!>yyzKqPN1)s?s`>LK6AKHA#K_dj zqm6AM;-Eo|pgnJ2-{z`#+H(5Yp`jpA7M8k&j<$4Ra&em;T3rJJ=>CAqNBme&Qp-Pi z(vKJ7^}~O>p)U-M7B-o-zv^>bwwHrAOHB+t}I&}Q@E~4|!ENa|@91MB> zdrfDc9D{zw@$||jHm7et-^Wxse})3uIywR1p6fg|K72hft9V8PpyY77L!Jn$wD9Am zefU7_u{ExK+?R4+RPZX)@ZlsxYw~9`j@!Vy$wPaqljnqf=-ejty3_E90 zkcGF5qBy7bw6(Pt!6@>cTwWWltW4n2uyb!}tsMzg^&_Gz>Y0_&yO!k%+mFl|yfU-0 zpyCU!D$mU&0yAr~=_5i%pXICgo05k^A0-MVTrB?px6SpKSd3LOr2G2kFcjNPS3=#L zf;yYH zu5BB}3E$^74&3-k(K9eJGn4hlKrnpXZb)g9e%$C%Qa9?&n}E;voN*R4smR%6nZZ3$ z!ri0;v!INs@{_yxTxbqNHc{DHo{AvS>(;+1j8y-;u-_?U|q2%S_ zE1vzNE;4JN^PczRVTE7018Cr~Uuq8kDk>|>1CU-*-iL>Wv5AS{DC8MZ=`BMWyNUoO z2aaW98a@?2Y>{n-#*f+9+Sxdf`^{?$*SDI!R>=G1aTuHHmhFM)f@pYCj1NOi^v^Q2_tEVsDOmuzkg>G7n6Pc ziaw~VsksNf?AZROSbo|t=MoOyZ4;e6fgXF;fR;4bIp)>B zH0AXk(=&MJp=@7mF?m5O!@8lt2EKok-X(U9dyDCLi~ij0+qaveqob43eAu2F2=i$% zewD+}EoML49RtrJh#FOzq#i^(>${e^e54w8^XD#S{%YYyqqY?|tDJfSn~SFb6@=pGEC545%hp@wQ*Esi%| z;x$i|=6z-R>Cgh~bq+ohEBW#K8W^0LqoRlb^awfNOMIAMU=9JUPstX}e6Y_SFuZXJ6cdY`!z-PaaFaX+oWjEizbIiR9$< z@;JfAipw$ZH&rkfe*_tUj4aT-K1S1YX$k?>XKID!eY@V3TVwE`1d=wZF>Ggx=k63P z^*`}|W$#cwC35fA$JRzW6rpo_os>Tv-HlcA`LvjKueKD|jhufS<;fXTJru&b1(p$w z8oY{&#Cd(9q`Ck*=NbIg1)aIN_k3ESkBxYUfS0!=7ESOD0MaMTIEDgO?o5C(xwj;E z-9n-85&)30u-766W*qno+y)k@oU)knBkQ`;WKy7YB76%h^vTa_6`eY^HHe&3mHhZb z8k&MLX1UxEsl+%Kkt4?j+Q-%1TI#VFhz%Yd@SDauyHXBDqXTG738@2ee@%_b17tc&VHyH)ih3n^BFz*l65AuBu zi~zYMCgbQZ7r*yfcWC# zf@6&1l`^3uuzz(lKyb~c=#++cq=bxDkoZ*@Kj1{~b_KNuhCJkJ4Q%pVm~V zikJcKg}0+AeU1esSt3BkZ~+|2$Q53NDl(md&x*zesc{YOYLDCW0fyf)ee52fE10-5{g{}_98x#1{+e1n*^Wl|NQk! ztmymJNz{Nri7AoX9McGiJa(|V%up__Xe?WTS2|C0bU5)@pASB_w->%bgZH>U*4ob; z9UO#hdg3!Q9BRR(3xL=BT+u_svMb;nl$j&VK0ygcwPIpo5f6ApMRmqGA1T5(hO$48 zk;oAev9A7@3PA}Nf&0QX1S~VyP^i@vCDHW^+!#VufTM{$C614k$O88YwnaVgtiBpg z=TwgFh|`pf1QYJLJwfwELsIE>=LmTgcqRDxB1`P-l(y!wpir=B^xu{$C;@rs#1@&4 zWU$yd;R3~~v}_?NwBzrL5!{bH0{a9vmZT+%=MCAjn@T_y6ELf%1%$zvS@&-_afVhc zfjvcH{?=_bj_aAp2|fy%-5O`w3zWAa(hTL{A_sZr)XZ~C&rO0Ei#`B0B@t@5s`%;$ zKa5L{Xj=o(hX8m5hK_=`q2f~-D?IR!3?GAr=L*Jg;A*3N>3g_!=Uc|fMqkmtHt2~p zLC|vW?>SG0Duk0~f&_wqUE{;$02gnF2iEcFv`tO73-j}V#XWZjrN0>#L_kBt0hWD? zGp6F(i8k9;WX@(oz>%T*XPt-=F}tTvIe=ERmM4@|mw}=BNY&#du#1SU;y;0#)#ejI zTKWH#O0M~&!O^}(*M}Wis5$mS{pkHUY!7g!t04C8xCf#WYt8btHWb+$h-CCL`GeQqUo)ZrX{F~c6a-%&U8Gfg?Pa=8@pDtZJ>n_W5pymAw+;p>)dhM?0H?xNT1+{8Zm0g%_~E;pYQuxN82sJ?80yOt|%ah+!M*k1xlI zN@&-2YD?+TNgm{X`^LC{L7ze7NEI0w836>(LU)Jekp>PRo$N?*HBo~uI19ae8w`dA zE3(WONJ(%~aNDekkcN+hMtbXN;iI6l+U42J$vpNP>p*?H7DaW4Qm~>qMoT9{V)kMp zae%<^gm;k1HRmiPd}U5EH0 za}GDatWAZ#)n3H+@Y%t)JNtyPkbkMx-NO21i$+{IpcQE%MceDNndG((tVbR z`e@hbEnY#=OSj~C4%X>$-W$aSDXTypmG=x7WsJ8Ufi5KpO!uLHevx6O|BZS#$1j$G z5AWIjVsO{z%+LtxPrge6?Ej9_?5xJrZlJihOA;hU`%T1yT>!HEs-K@q&)8ik7m^tqSJW9WMEfvSj zi-c9^1?*~HfmyRHoYHF%(w|-0hkj4@0h>Mj_sOP-bP$>Yqiu=syTUgJnw;1US z4-AwoC@7F`77f{F;aDd`TP7N9iYrL`XR{%_6u?_`hx5^esP~f7yFJ7437Vrl!y@ zY7Ln?^m(jL7XCDsA4F_Fi9xJNvm!4^NP>p7x2~>TJ4K^*n$d{rne;Jq6tN>JENpxa zE_U@e$m>qv8ve1rt=ZseI4PTe>_o3#S3=8|_7*C`odHjy6(NCRA%!1)TUYp8O$(bl z6lGq>%4wmiQ~ir#7dQ(H%8u9>$-O*%+yo_gw1)#Q^9HD235a{+ym-kIF#y5DwAhR& zmH#^aRQW8OB*uMJeDd6>9F5o|=d}$?1)M%FEU2}#kx$YELY*p6j^~Vkl+k%$&UQG# zZ)HYp{ifqD0$q)pIrQ!e!34_-u7l91dYBvq*CrZJ&Jejkk@*24M)20=9anD{B^w5# z?~IWQ#FqmW)VE$I&=9lFo-6u>QjsdHE*REO*9w{Ce}=|ioaf?)#)o^s0Zn$AL^RcuAst`Cy_8hgpqkS=z-cV2c~d_n4= zKFn`pQ{i+XZNYAO0GN!NSa}d*9a3(Kx_;2a+Jz703}Q2De55zO`l4;e3v5HoEGbZ} z)F{4e9Bg(7%ETlhA=_9>jGJ62b^cKFs-;F%u5=$|e3E*&JuV!hZQ1ku`USI9;H4L^aHRyVs<~IVsqiM3HN@mKCnyY~i`h}fq2DSLGwG|3 zbjI?IMe%MuT_5#G!SLcWp+$(-U}|lHUpJChFIO**`UMjool4GL{&fe)cT!=y1WJoh z0XjpdR>ET@@1A(rZw)d4>JncX?Xf zl(%*EEVV;#Eqpn5SI2GaB6I&)s@Up8f#!xCMOoah{=$fcKlO_qO3{<=@h|1g(}zo4xwvL~adi7-#pc zvmc}9#Zv(Fd1mCVtQ&=Ya+_9dlEmZ49G*ntYL~~8r zSE0qDpmK0$;*h_02=va8D|_O*v>Ib?TM?%m67NrK?0SY7Yb*+zbtKUN&U+j}{x{vk zu6_CnU6g_2@P!C|2bb{_se^Cxb#umhQ3imGA4{cbn2w3j8st)ZH*gML{3#h3{Wfs&TB%u94>lJ@#qZzg6-$Lr{VsyL4-WPix?P+*4%fqg3W^wDy{bkB;&@whG#eFYLs1RFaOSG26tKVtO z1)K3Jl|N|&C7%$e1xaQkDi+96ZfhB$4WiVe$z_jkdZ4>XFd)V!# zqgBpH&^D}h?%Wv!e@~_-W<2SXpa3i{Kr@1UkD@x#NFiGarwyFqO45n>_2aAZp8~ose`7ht_ZQc$ zA(U6lPrVMH$1_u|C#QDRY#9sv=yv&xs!_?7{!^h`xh^og1P&C5(yB1tc~y39DrCT) zRW`V9eHk}v@#JY8sp?+s&c#LH4IQ~K?lPoY~Hn$4YrV8+p=->Cb+6iniM@D z7Z7M70o*c<@0QEC?Bf3Zqd}QYa(Mgmy(pX9ffR0}sgG`EIZ$)JpN^5!ju!9uu^%iHd>fqcGkCh`n6T?>$6#-H8!7RQDL(_Oz5cal2U5Yn{EE zIrqdVbH0+qAZiY_-nLD4{*}kVZcEG9R%y_tny~TV-D;Pjubu>^gfU&5Xg>PgcQ*Wx z)nCkH>zY<@#Do3pGZPdNi*a|rW>fJ)KWT^^B}C4}rQ|$M(UcIn9-{+)&WCcG=$TiO zO6NllrT<2=V=zEQbF=voDin43!?Ce}@ zdjSfpedVNJo?^W;U#lr$>QtQ>m9F%xCLj)NkAzruk^3XLpP6|qGtv7k9!*2fJHuGJ z>({dvlmdga_HwQ}gL_GjK)V21Ro3BIyI-In3@}vf;*lDk1z&x>cCCO#YbAWm-TAWR z%fa^}j@wmq5ESAUY_VO7`TUsD&toeRn$FseAW_(esjL-951euDi-RBL&6B{$J; zP*2m}*Y{(4s`9Qsd-;C&n^cq)@$sOiubWIQ9XM0n{!yN={TxaCh^pq;rFh-*rnPQ! zsGNpI^tm*Mb}1Tp=XPQ;_h>PBp6K2Exq!WoP4~81zMgB|!Au4U_Eq#@9z%d%{Y}cJ z#v5!i1KdYjWAr5$yNffEO(EaKrR+ogTG-{z&cuwxsJRaT;FjGb`!5`cm`7_4l$ydX zp-7tvoH;BJT$$RHpgws{fr&9S8%7Rlc_F=&mZ zD0Dw+(s_20mALClS%DerG~oQhwhQ*uwlu#piNfHT0{e?hljww$1_zknV7 zdUUVmaog#U>&izsGVOdG`{5-mEn0d9#6Pjq!}6v9Ruk1E^uV})rTo0NWkn``%oGt7xD@$2l*VjwFWtF*Z(SrP% z3x9E`s24Dt!KZcB>ryEwmfp2J>tD9&Y8Fyf`Esw#|0F$Q|6oL7>cHRtm9?WR{Csxo z3;e7h-OAo?qI3b4Ls2g!I8x*aN+%y_Q)`q3_f)--+s6oC0O#E@kO(Feu0*-W<3@pCvF@JS$359rtl+qo!fqaYZID{f5R@&aP zBFp|#8>h_aQ`#58l6g=yQ^CYKOrc~!ljcYPh2+coq^K?W5jO4?AE|6GG`#Yi5*7Kg ztzOq?aI3#MrK?M3zHNhMqabRgWR_EkYG~zv9aVTx@FD=e3XI`imNZ}hH87(x-Cy(k z&0(!VAqMxQo6)ZM1meob5vwx(=*MD z5c8&iubas5HR#oHj&CyB)o#`5Ps^W7Wn1EYKdJpw<*{7U0y2@$D&X_{%xj@!2T#<3 zyLk*FtiNlusbOXI6UpRN*R7F2n*gP)bQQF#jpqp$dP-Ll9*kV;<3C*e{o8V8>D~ID z?bnae9(6NGk|>Lw@x8H%Ju@CV%`?z2vIq!h+C|5pCy_r`EptbRV!A@+Ibrf(4Jvu$ zGss;Td!Cz+Klk48&O6RN8T0?kW+PiTBxnkyK*ZZ!M*CfQ#+C|M8MvSA&E!UNvEzJ& z=?gLN7kRRNZapmBraj)g(CbFC7R!pUtZR)WrhWQ~evyZ{n)2Gd+*ZiWdDt&hya&Eg zfX7X|sjc0P%C|7Gs5qa|S*`rJuIU7~T{FYo^^yVX)|$H)zIW>+oY;FaDB#4w$f>~?iyS_Sq5J%RXpPBc4)f8<*mP!P`9leWg9@BJdm}U zIA{C(!cG&FS#-7i6^5nXfo@DX?9*+2>{sWWQav`*ao1CR40`{&OUOU(mNt74lZ_wgKtT_y3R#krkY^aD8ZumZ&9Vk zj-llx6ioLO;vW%EV|Cd^GPQs+b0!&HP~f`tY2sk8hpiC*LAuGg@&XtcI@2ZVZJp7) ztKpL$D{ebsFwfyydJBc`N(-($Tek0Q?TnPVCZ+mQpab1%&(R%Aaf_$tiSWgS-r!S; zT?RbB?Y^tdSZ(v^wO6GBDN^y3i}SLm%h&0v3o+_@p6bpZT|Y^C zjJVLVtcE?Nb9a}Zf@TW?l+uL7Ve5Cpv+&zi7odPy9Pc$>uYu1OHRzorG@T283X))v zzoHToP*>wUVL03@I-}dvs&xvRA$Qds6F=Xsu8)&@d$qKUS*O^hkRb7x2~xMh^JYOZ zl$wd)JC4UoX>0pkNJ<(%Bgr)7Yr2&Ggy%5sYDqVKKUQ9Lx*NZVFZL*Ru z?Vkxw!%I%MPkE+sZhOwKFK(q=8&2WqIyUF=G{RT_4%@J@`jNrTx;{blKVIxl3^*JhKNUESLVy0%ez zhYS15bmOv4aa-LIL-fkPXdXY?c=x}10Z2oaDRO18354twb|}yR3)t9JwGb-ipWx}p zj-uF5ohLtWGWNNbzKys0{RfeAyxk~2^HDjgtz$6Q~0%)++%7df5q?PM$@d7L(b#9($;^v#bOb{CseDFJ*RG|;Y{C&q z=TPRLAvUm2){cOI29990A4Z0;l$l{mj;?V1OXx9BeE7crzBmE1PD>|D?$;GqnPbW* z4utcgB&FnLidx13S)5itAy-b9(jbbD3rldbxGi+HI+KmPTf_E!q?glQEX{+3KCS*= zL+oEskeg2x=Uh)Nv7mo?V$y^e+3&^4aQS`WgVVnVLCnsY9%x3^QQ{AR?;nq_*@1~z z!omzP`#iB51n+&dHxw)0F0IOyE@Gx~+&zWeqvPXNsLPZ5;^Hv@Y*o{z(R>W~SBdKb zpI({E>--^V^!MONzN0zF<_rV2Cplzg(#P=AzlR5;Z-)#leZMHG2|e+K{x`+FWBP2G zrz^({2>Q8-2_QBuj#GA^FBQle;X^a3Yl4Zn z7Rut?WxF;ete+)D5A9-*{wCETc=1vCpRx|jz#BFwaM`CB2U0%U;g!`Vn6=aEOnAo^ zeo_>pwdk|Jrpxvd_}&52?Gsp?RbV?7-ERvCDGa@ILP+CmfGL8 z_HjhoW|NPd?O6mqo`7es$)+p>GP*S7Y#o}rIxoDf;`ktc6Xh!8JE4ss`B6wSFN7~w z+7*ID)V|BRW(miW;ZM5T)=%E(k!-*Cw&>LW_SI;49((pB41>UG{q1-JGnOy(Y_;Y3 z37(RbAr^o4Kh?BUV?<0D2H!61T)aD<5BopGoo7^&O`FFT5(McW9i)aLEf7NJr0zt0-raZ4+1-!(B`3)} znKPMOGxvXf*MBA~9V;7G2G`+u)&4G`D7THX>EK{)fxZjFVcvT~*>VSTd??Wd>??6Y zfybLJpGBY1H^ds~pv2@VlN}Qq9hF2fZUo99lhM z#PAUrSZ0C)!EoOOL%CDLfrSr5W5Vm;O0b;?|uVn9bICH~)E6p&kcrj2h*H zhRs%qG*D%F^g+Av=Q~+G_L_J|iV~8wsHXaQFY@a2aV4^{2SI+2RfDmZnRpizB~74? zan=I1>x?7#F};uC(b;R$AW$_6S?TlHSPVwor*e4%1%DBNutdMY zO)Ecj(Tmc5nyHxd@q2p4q~{g9CLA!kg(F_grJ;Tl_qjFkzP9J2bM^r zSwX3<+|tFvWIvONv7CY;K`G@Y;bsALscV+=*^IpFh~`$_SerWCJPmbh46FJSX(F~$ z)Z^RqS1_KGhKSA<%dxbmy90y62pGo?0^YN9b*xas2}BI~6)Yf0+e{-Mss0TjPeT%k z-MLe`N}J72Ty^QsoP4Q$w4I z+@cF?v7xRq?Bge@FRxTv>)e?X*I%_W=&v8&o*_aj20`_hM=OTA5?DEY8h3(3;8mG_FW^bgwr~PG|{@pILZaq4ryu}4HZopmP_XD6)cMmz=tJyyv zQK;{?6xtLUD(cqE=IvIyTk&VcXNEifsIz7v}FW9;ZYD-rh4` z#4RY^UGz=&w66;Tdj2kHl^XSy>Cr}wg^aBX3k~>$;Z$z7#4p)*+#^a`8vge}m=6thr~NW|^ZO zPG;f2ZB>k4x3%XT2t9R1dNqrZpTVor(Sf*9-u@zU^ecvr#Gk8@$TlJ0)}DN3j55NA zZN~AAVD7xLL-fUKA#lWXJ+#F8wj1%045iR;v=8qPa>x{wZjL*ReWW#r92-3kmZFxw z=8~#FS;Kf)xy8X;s0HKcjQiALeOeA#tfzXR+E-Tt)po+rQd%*dnXz>nsx&TxSg{); za%O<&NTR#&=slPI2tT!z448a0eVc?^>kGxCoVS(kB}c=|3HjP2E@KJW0Qok{o*4Zb z1(6MlgcTM|N5{)uq8Zl%GU9({x#JmW+2RMEf*prW9R-1`XlT)=P$Xm z-s|2d;SG6nR_DjTgeQLpe0_rnbN}qceQ|EV;b0@q(H5>h8@m5(@8DS3xXkIiYqq9Z z|9>k0k$+YI|0Luu!)OKs=$RSvh%ZP98)9AewF7)V1$4hDZ}*Q!I-5Dq{;qh*L;8H& z@A$ug`>}FlRT0dd0C+w#%ldyS{vHZj%=#j9+tYSno0pf?cCBPw1zJM2kIlN5wi7HmsJw$%S$(L_H>fO6OD$O2~)V<2K8yB)X^!BL6=b`55S4LrK?jLUBlk zq06I~hZ%1CqY8nkVnO$)-V9oS9a7BoBV9bYjDWDp6%M+$L9t#K+-8{D?$R^FydQ{^ zFIx`cog_W_2Aip?0SSThl*G(m2_WPRGTRl_7nL~tMzl6K-vX~U-gCpAU^QetJ}%V& z3;s{BFOeO{%+)LW&ec0iGPC$#pnh8g!ra`-pGh|~lDr%=cR^A*?=n?82EO@qZe`Nn zOcav-pM-yQ3wQ#!qX+Z+n4jf+;s|6TkkLE*Ji+3X`NW*}XO? z>rMFfPffAI>OpY+zR4S{4KasocF|tUa8)X3Ea)ZtE42@{MKV+SSoJ@8UI>WpKHG;A zb)D!sUDCsq?3jvXo<~c$QgRa4BjUK)rk2<0KB1gEiV|s`hC{+b66lgsD!MQg&tH<&K4Ir51JN>%leB zYB+Q{i4Z<{t$n=aug7wDJRTh90?)uzHYrJ*xc!=7w5y>^>~lR?8(&&$=x~E-EI{HKvFy^ zY^E0VMh}<-Y;eX_d|O=z2>#sIymMlMnd>GkFzm*Rs?`^~?Vb5OzKG-UMqV_Uc-4F* zm*I`SUl%k^Ur0<`QIMaEgjK)z^ohxU>qma-8Wo+N_uSDOLaD7BS-XN9S|p+7T3S<# zl%vS+RZIgG5-pQX!?9&_pf+AWUDg(fB(?^_O`dBm-n> z2@5cr7303;Ky4Z1mx=7!4{)#?831+zKVqm)%MHix;h`&}_nnY!$^0%teq74RQu{hQ zKgP&F?1JYT$AI7)LF-N9(Db-c_8z&myE~yDpnV7UV*au&vLD3FJkUMPp#vhVsS#wm zpY#fUh8>f>=2WBwz)c7`)xECBn6_{sdXTs1tpxs|3Ygm2&zy;z@6Uqem|!SNi|k{3u-(|$Aqw⁡fexO1Icr9{p}39P4f*CLa4NTo46 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≦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 diff --git a/modular_nova/modules/implants/code/augments_head.dm b/modular_nova/modules/implants/code/augments_head.dm index c516035c0a1..42038a9911b 100644 --- a/modular_nova/modules/implants/code/augments_head.dm +++ b/modular_nova/modules/implants/code/augments_head.dm @@ -12,7 +12,7 @@ systems that heavily influence the user's nervous system, like the central nervous system rebooter." icon = 'modular_nova/modules/implants/icons/implants.dmi' icon_state = "sandy" - slot = ORGAN_SLOT_BRAIN_ANTISTUN + slot = ORGAN_SLOT_BRAIN_CNS zone = BODY_ZONE_HEAD implant_overlay = null implant_color = null @@ -130,7 +130,7 @@ hacking for you. Due to their complexity, the system does not appear to work on cyborgs." icon = 'modular_nova/modules/implants/icons/implants.dmi' icon_state = "hackerman" - slot = ORGAN_SLOT_BRAIN_ANTISTUN + slot = ORGAN_SLOT_BRAIN_CNS zone = BODY_ZONE_HEAD implant_overlay = null implant_color = null diff --git a/modular_nova/modules/implants/code/augments_internal.dm b/modular_nova/modules/implants/code/augments_internal.dm index ea4158bfc23..1d52cedeacf 100644 --- a/modular_nova/modules/implants/code/augments_internal.dm +++ b/modular_nova/modules/implants/code/augments_internal.dm @@ -3,7 +3,7 @@ desc = "This implant will automatically attempt to jolt you awake when it detects you have fallen unconscious outside of REM sleeping cycles. Has a short cooldown. Conflicts with the CNS Rebooter, making them incompatible with eachother." icon_state = "brain_implant_rebooter" implant_color = "#0356fc" - slot = ORGAN_SLOT_BRAIN_ANTISTUN //One or the other, not both. + slot = ORGAN_SLOT_BRAIN_CNS //One or the other, not both. var/cooldown /obj/item/organ/internal/cyberimp/brain/anti_sleep/on_life(seconds_per_tick, times_fired) diff --git a/tgstation.dme b/tgstation.dme index cd657c52be6..b4ad9466f7c 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1908,6 +1908,8 @@ #include "code\datums\quirks\positive_quirks\alcohol_tolerance.dm" #include "code\datums\quirks\positive_quirks\apathetic.dm" #include "code\datums\quirks\positive_quirks\bilingual.dm" +#include "code\datums\quirks\positive_quirks\chip_connector.dm" +#include "code\datums\quirks\positive_quirks\chipped.dm" #include "code\datums\quirks\positive_quirks\clown_enjoyer.dm" #include "code\datums\quirks\positive_quirks\drunk_healing.dm" #include "code\datums\quirks\positive_quirks\empath.dm" @@ -2020,6 +2022,7 @@ #include "code\datums\status_effects\debuffs\stamcrit.dm" #include "code\datums\status_effects\debuffs\static_vision.dm" #include "code\datums\status_effects\debuffs\strandling.dm" +#include "code\datums\status_effects\debuffs\temperature_over_time.dm" #include "code\datums\status_effects\debuffs\terrified.dm" #include "code\datums\status_effects\debuffs\tower_of_babel.dm" #include "code\datums\status_effects\debuffs\tox_vomit.dm" @@ -3889,6 +3892,7 @@ #include "code\modules\client\preferences\blindfold_color.dm" #include "code\modules\client\preferences\body_type.dm" #include "code\modules\client\preferences\broadcast_login_logout.dm" +#include "code\modules\client\preferences\chipped.dm" #include "code\modules\client\preferences\clothing.dm" #include "code\modules\client\preferences\darkened_flash.dm" #include "code\modules\client\preferences\food_allergy.dm" @@ -4624,6 +4628,7 @@ #include "code\modules\library\random_books.dm" #include "code\modules\library\skill_learning\skill_station.dm" #include "code\modules\library\skill_learning\skillchip.dm" +#include "code\modules\library\skill_learning\generic_skillchips\acrobatics.dm" #include "code\modules\library\skill_learning\generic_skillchips\matrix_taunt.dm" #include "code\modules\library\skill_learning\generic_skillchips\misc.dm" #include "code\modules\library\skill_learning\generic_skillchips\musical.dm" diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/character_preferences/chipped.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/character_preferences/chipped.tsx new file mode 100644 index 00000000000..ed61233251c --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/character_preferences/chipped.tsx @@ -0,0 +1,6 @@ +import { FeatureIconnedDropdownInput, FeatureWithIcons } from '../dropdowns'; + +export const chipped: FeatureWithIcons = { + name: 'Chipped', + component: FeatureIconnedDropdownInput, +}; From e2fdc229a52351dd1294134a2bf47011d6ac1178 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 08:48:07 +0000 Subject: [PATCH 033/103] Automatic changelog for PR #87082 [ci skip] --- html/changelogs/AutoChangeLog-pr-87082.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87082.yml diff --git a/html/changelogs/AutoChangeLog-pr-87082.yml b/html/changelogs/AutoChangeLog-pr-87082.yml new file mode 100644 index 00000000000..355d06d0880 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87082.yml @@ -0,0 +1,7 @@ +author: "carlarctg" +delete-after: True +changes: + - rscadd: "Added the FOSBURY skillchip, found in hacked toy vendors. This skillchip allows you to bypass the emote cooldown when flipping or spinning. However, if used too often, it will lower the chip's integrity and cause malfunctions." + - rscadd: "Added the Chipped quirk. It allows you to spawn with one base skillchip. (not the one above)" + - rscadd: "Added the Chip Connector quirk. It contains a new implant, the chip connector, which allows you to install and take out skillchips at any time." + - code_imp: "Renamed the organ slots for brain implants and made the connector implant take the CNS slot." \ No newline at end of file From d6987dc1848198667ee0ec96b14fdae1e5367a3f Mon Sep 17 00:00:00 2001 From: Kyle Spier-Swenson Date: Mon, 14 Oct 2024 01:50:56 -0700 Subject: [PATCH 034/103] Webhook: Prevent connection errors to game servers from blocking discord announces (#87179) Just a guess, but i think basil being down is why this isn't working. --- .../github_webhook_processor.php | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/tools/WebhookProcessor/github_webhook_processor.php b/tools/WebhookProcessor/github_webhook_processor.php index 716000a6cca..b2a530066ed 100644 --- a/tools/WebhookProcessor/github_webhook_processor.php +++ b/tools/WebhookProcessor/github_webhook_processor.php @@ -396,13 +396,13 @@ function handle_pr($payload) { $repo_name = $payload['repository']['name']; - if (in_array($repo_name, $game_announce_whitelist)) { - game_announce($action, $payload, $pr_flags); - } - if (!is_blacklisted($discord_announce_blacklist, $repo_name)) { discord_announce($action, $payload, $pr_flags); } + + if (in_array($repo_name, $game_announce_whitelist)) { + game_announce($action, $payload, $pr_flags); + } } function filter_announce_targets($targets, $owner, $repo, $action, $pr_flags) { @@ -491,10 +491,15 @@ function game_announce($action, $payload, $pr_flags) { $msg = '?announce='.urlencode($msg).'&payload='.urlencode(json_encode($game_payload)); foreach ($game_servers as $serverid => $server) { - $server_message = $msg; - if (isset($server['comskey'])) - $server_message .= '&key='.urlencode($server['comskey']); - game_server_send($server['address'], $server['port'], $server_message); + try { + $server_message = $msg; + if (isset($server['comskey'])) + $server_message .= '&key='.urlencode($server['comskey']); + game_server_send($server['address'], $server['port'], $server_message); + } catch (exception $e) { + log_error('Error on line ' . $e->getLine() . ': ' . $e->getMessage()); + continue; + } } } From cf76e5ff9576ca043071ab63023271fd6259982a Mon Sep 17 00:00:00 2001 From: grungussuss <96586172+Sadboysuss@users.noreply.github.com> Date: Mon, 14 Oct 2024 13:12:44 +0300 Subject: [PATCH 035/103] Id card handling sounds (#87193) --- code/game/objects/items/cards_ids.dm | 5 +++++ sound/items/handling/id_card/attribution.txt | 2 ++ sound/items/handling/id_card/id_card_drop1.ogg | Bin 0 -> 7125 bytes sound/items/handling/id_card/id_card_pickup1.ogg | Bin 0 -> 8078 bytes 4 files changed, 7 insertions(+) create mode 100644 sound/items/handling/id_card/attribution.txt create mode 100644 sound/items/handling/id_card/id_card_drop1.ogg create mode 100644 sound/items/handling/id_card/id_card_pickup1.ogg diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm index b8153179f02..73ce50bc668 100644 --- a/code/game/objects/items/cards_ids.dm +++ b/code/game/objects/items/cards_ids.dm @@ -26,6 +26,9 @@ lefthand_file = 'icons/mob/inhands/equipment/idcards_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/idcards_righthand.dmi' w_class = WEIGHT_CLASS_TINY + pickup_sound = 'sound/items/handling/id_card/id_card_pickup1.ogg' + drop_sound = 'sound/items/handling/id_card/id_card_drop1.ogg' + sound_vary = TRUE /// Cached icon that has been built for this card. Intended to be displayed in chat. Cardboards IDs and actual IDs use it. var/icon/cached_flat_icon @@ -1852,6 +1855,8 @@ var/scribbled_trim ///The colors for each of the above variables, for when overlays are updated. var/details_colors = list(COLOR_BLACK, COLOR_BLACK, COLOR_BLACK) + pickup_sound = 'sound/items/handling/materials/cardboard_pick_up.ogg' + drop_sound = 'sound/items/handling/materials/cardboard_drop.ogg' /obj/item/card/cardboard/equipped(mob/user, slot, initial = FALSE) . = ..() diff --git a/sound/items/handling/id_card/attribution.txt b/sound/items/handling/id_card/attribution.txt new file mode 100644 index 00000000000..1bb71cf8f7e --- /dev/null +++ b/sound/items/handling/id_card/attribution.txt @@ -0,0 +1,2 @@ +id_card handling sounds made by sadboysuss +license: CC-BY-SA \ No newline at end of file diff --git a/sound/items/handling/id_card/id_card_drop1.ogg b/sound/items/handling/id_card/id_card_drop1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..81cfbb50e435c15dd2cc425785a527aa0ab39f78 GIT binary patch literal 7125 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 Z!|4Lex{HBVy~;ZIp+5Jk0{##8{Xd+9P=){i literal 0 HcmV?d00001 diff --git a/sound/items/handling/id_card/id_card_pickup1.ogg b/sound/items/handling/id_card/id_card_pickup1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..cbd01a1189f5a8618786ec3d1ab39d2ac0297b8d GIT binary patch literal 8078 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 Cdhz)H literal 0 HcmV?d00001 From d9110e01a3770d623f4373a25edf54d7406389c2 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 10:14:38 +0000 Subject: [PATCH 036/103] Automatic changelog for PR #87193 [ci skip] --- html/changelogs/AutoChangeLog-pr-87193.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87193.yml diff --git a/html/changelogs/AutoChangeLog-pr-87193.yml b/html/changelogs/AutoChangeLog-pr-87193.yml new file mode 100644 index 00000000000..36688beb146 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87193.yml @@ -0,0 +1,4 @@ +author: "grungussuss" +delete-after: True +changes: + - sound: "cards have new handling sounds" \ No newline at end of file From a3abeb96d8e682edf4073f0756615244ddb5753f Mon Sep 17 00:00:00 2001 From: grungussuss <96586172+Sadboysuss@users.noreply.github.com> Date: Mon, 14 Oct 2024 14:49:38 +0300 Subject: [PATCH 037/103] medical, jani, soulstone, grenade belt handling sounds the same as tool belt (#87208) ## About The Pull Request same sounds as the toolbelt ## Why It's Good For The Game I think it fits ## Changelog :cl: grungussuss sound: medical, jani, soulstone, grenade belts got sounds /:cl: --- code/game/objects/items/storage/belt.dm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index d73c490ca4b..586e1461527 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -230,6 +230,8 @@ icon_state = "medical" inhand_icon_state = "medical" worn_icon_state = "medical" + drop_sound = 'sound/items/handling/toolbelt_drop.ogg' + pickup_sound = 'sound/items/handling/toolbelt_pickup.ogg' /obj/item/storage/belt/medical/Initialize(mapload) . = ..() @@ -497,6 +499,8 @@ icon_state = "soulstonebelt" inhand_icon_state = "soulstonebelt" worn_icon_state = "soulstonebelt" + drop_sound = 'sound/items/handling/toolbelt_drop.ogg' + pickup_sound = 'sound/items/handling/toolbelt_pickup.ogg' /obj/item/storage/belt/soulstone/Initialize(mapload) . = ..() @@ -632,6 +636,8 @@ icon_state = "grenadebeltnew" inhand_icon_state = "security" worn_icon_state = "grenadebeltnew" + drop_sound = 'sound/items/handling/toolbelt_drop.ogg' + pickup_sound = 'sound/items/handling/toolbelt_pickup.ogg' /obj/item/storage/belt/grenade/Initialize(mapload) . = ..() @@ -695,6 +701,8 @@ icon_state = "janibelt" inhand_icon_state = "janibelt" worn_icon_state = "janibelt" + drop_sound = 'sound/items/handling/toolbelt_drop.ogg' + pickup_sound = 'sound/items/handling/toolbelt_pickup.ogg' /obj/item/storage/belt/janitor/Initialize(mapload) . = ..() From fca98732ba0b73a16514c4f4ebfada5423045f0a Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 11:50:01 +0000 Subject: [PATCH 038/103] Automatic changelog for PR #87208 [ci skip] --- html/changelogs/AutoChangeLog-pr-87208.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87208.yml diff --git a/html/changelogs/AutoChangeLog-pr-87208.yml b/html/changelogs/AutoChangeLog-pr-87208.yml new file mode 100644 index 00000000000..3224087239d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87208.yml @@ -0,0 +1,4 @@ +author: "grungussuss" +delete-after: True +changes: + - sound: "medical, jani, soulstone, grenade belts got sounds" \ No newline at end of file From 3114149f8042eaa6d27cfbbbc125e21b347fc37c Mon Sep 17 00:00:00 2001 From: Zephyr <12817816+ZephyrTFA@users.noreply.github.com> Date: Mon, 14 Oct 2024 14:34:50 -0700 Subject: [PATCH 039/103] map votes are now simple, and tell you what the effective tallies were (#87218) :cl: qol: map votes are now winner take all instead of weighted. /:cl: --- code/controllers/subsystem/map_vote.dm | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/code/controllers/subsystem/map_vote.dm b/code/controllers/subsystem/map_vote.dm index 881652b472d..d5708cd9d08 100644 --- a/code/controllers/subsystem/map_vote.dm +++ b/code/controllers/subsystem/map_vote.dm @@ -79,15 +79,33 @@ SUBSYSTEM_DEF(map_vote) send_map_vote_notice("No valid maps.") return - var/winner = pick_weight(filter_cache_to_valid_maps()) + var/winner + var/winner_amount = 0 + for(var/map in valid_maps) + if(!winner_amount) + winner = map + winner_amount = map_vote_cache[map] + continue + if(map_vote_cache[map] <= winner_amount) + continue + winner = map + winner_amount = map_vote_cache[map] + + ASSERT(winner, "No winner found in map vote.") set_next_map(config.maplist[winner]) - send_map_vote_notice("Map Selected - [span_bold(next_map_config.map_name)]") + var/list/messages = list("Map Selected - [span_bold(next_map_config.map_name)]") + messages += "Tallies at the time of selection:" + messages += tally_printout // do not reset tallies if only one map is even possible if(length(valid_maps) > 1) map_vote_cache[winner] = CONFIG_GET(number/map_vote_minimum_tallies) write_cache() update_tally_printout() + else + messages += "Only one map was possible, tallies were not reset." + + send_map_vote_notice(arglist(messages)) /// Returns a list of all map options that are invalid for the current population. /datum/controller/subsystem/map_vote/proc/get_valid_map_vote_choices() From 9ebfb23b86e27357c2bb46f62cbee8df2905c3ff Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 21:35:14 +0000 Subject: [PATCH 040/103] Automatic changelog for PR #87218 [ci skip] --- html/changelogs/AutoChangeLog-pr-87218.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87218.yml diff --git a/html/changelogs/AutoChangeLog-pr-87218.yml b/html/changelogs/AutoChangeLog-pr-87218.yml new file mode 100644 index 00000000000..d6b17a11a45 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87218.yml @@ -0,0 +1,4 @@ +author: "ZephyrTFA" +delete-after: True +changes: + - qol: "map votes are now winner take all instead of weighted." \ No newline at end of file From e7169aa4edd3a9737708e4c8a209139927bb3e32 Mon Sep 17 00:00:00 2001 From: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com> Date: Tue, 15 Oct 2024 03:18:37 +0300 Subject: [PATCH 041/103] slightly redoes how animals hunt for food (#87166) ## About The Pull Request before, if u wanted to make ur animal hunt for food, u had to give them the find food subtree, the attacking subtree, and had to edit their targeting stratedgy to include items. this makes it so u only have to give them just 1 subtree which will handle everything it needs to. also makes it alot more customizable, u can now set a hunger cooldown for ur animals, and cute emotes for them to play after eating food ## Why It's Good For The Game makes it more convenient for future devs to include food hunting behaviors to their animals, while also making it more customizable ## Changelog :cl: code: animals' food hunting behavior has been refactored, please report any bugs /:cl: --- code/__DEFINES/ai/ai_blackboard.dm | 15 ++++++++-- code/__DEFINES/basic_mobs.dm | 3 ++ .../ai/basic_mobs/base_basic_controller.dm | 6 ++++ .../interact_with_target.dm | 27 +++++++++++++++++ .../ai/basic_mobs/basic_subtrees/find_food.dm | 30 ++++++++++++++++--- .../living/basic/farm_animals/cow/cow_ai.dm | 4 +-- .../basic/farm_animals/gorilla/gorilla_ai.dm | 4 +-- .../basic/lavaland/goliath/goliath_ai.dm | 2 +- .../lavaland/lobstrosity/lobstrosity_ai.dm | 4 +-- .../lavaland/raptor/raptor_ai_controller.dm | 13 +------- .../lavaland/raptor/raptor_ai_subtrees.dm | 2 +- .../mob/living/basic/pets/orbie/orbie_ai.dm | 3 +- .../living/basic/ruin_defender/skeleton.dm | 2 +- .../space_fauna/carp/carp_controllers.dm | 10 +++---- .../living/basic/space_fauna/snake/snake.dm | 4 +-- .../modules/mob/living/basic/vermin/lizard.dm | 3 +- .../basic/vermin/mothroach/mothroach_ai.dm | 23 ++------------ tgstation.dme | 1 + 18 files changed, 96 insertions(+), 60 deletions(-) create mode 100644 code/datums/ai/basic_mobs/basic_ai_behaviors/interact_with_target.dm diff --git a/code/__DEFINES/ai/ai_blackboard.dm b/code/__DEFINES/ai/ai_blackboard.dm index 0c682f7d411..2b25d0cfb31 100644 --- a/code/__DEFINES/ai/ai_blackboard.dm +++ b/code/__DEFINES/ai/ai_blackboard.dm @@ -123,6 +123,18 @@ ///list of foods this mob likes #define BB_BASIC_FOODS "BB_basic_foods" +///key holding any food we've found +#define BB_TARGET_FOOD "BB_TARGET_FOOD" + +///key holding emotes we play after eating +#define BB_EAT_EMOTES "BB_eat_emotes" + +///key holding the next time we eat +#define BB_NEXT_FOOD_EAT "BB_next_food_eat" + +///key holding our eating cooldown +#define BB_EAT_FOOD_COOLDOWN "BB_eat_food_cooldown" + /// Blackboard key for a held item #define BB_SIMPLE_CARRY_ITEM "BB_SIMPLE_CARRY_ITEM" @@ -168,5 +180,4 @@ /// For /datum/ai_behavior/find_potential_targets, what if any field are we using currently #define BB_FIND_TARGETS_FIELD(type) "bb_find_targets_field_[type]" -///mothroach next meal key! -#define BB_MOTHROACH_NEXT_EAT "mothroach_next_eat" + diff --git a/code/__DEFINES/basic_mobs.dm b/code/__DEFINES/basic_mobs.dm index 6696da857c8..12ddaa3a68a 100644 --- a/code/__DEFINES/basic_mobs.dm +++ b/code/__DEFINES/basic_mobs.dm @@ -24,6 +24,9 @@ /// Above this speed we stop gliding because it looks silly #define END_GLIDE_SPEED 10 +///hunger cooldown for basic mobs +#define EAT_FOOD_COOLDOWN 45 SECONDS + ///mook attack status flags #define MOOK_ATTACK_NEUTRAL 0 #define MOOK_ATTACK_WARMUP 1 diff --git a/code/datums/ai/basic_mobs/base_basic_controller.dm b/code/datums/ai/basic_mobs/base_basic_controller.dm index f21d31b0500..7ab15437f7d 100644 --- a/code/datums/ai/basic_mobs/base_basic_controller.dm +++ b/code/datums/ai/basic_mobs/base_basic_controller.dm @@ -9,6 +9,7 @@ update_speed(basic_mob) RegisterSignals(basic_mob, list(POST_BASIC_MOB_UPDATE_VARSPEED, COMSIG_MOB_MOVESPEED_UPDATED), PROC_REF(update_speed)) + RegisterSignal(basic_mob, COMSIG_MOB_ATE, PROC_REF(on_mob_eat)) return ..() //Run parent at end @@ -44,3 +45,8 @@ /datum/ai_controller/basic_controller/proc/update_speed(mob/living/basic/basic_mob) SIGNAL_HANDLER movement_delay = basic_mob.cached_multiplicative_slowdown + +/datum/ai_controller/basic_controller/proc/on_mob_eat() + SIGNAL_HANDLER + var/food_cooldown = blackboard[BB_EAT_FOOD_COOLDOWN] || EAT_FOOD_COOLDOWN + set_blackboard_key(BB_NEXT_FOOD_EAT, world.time + food_cooldown) diff --git a/code/datums/ai/basic_mobs/basic_ai_behaviors/interact_with_target.dm b/code/datums/ai/basic_mobs/basic_ai_behaviors/interact_with_target.dm new file mode 100644 index 00000000000..3b0c4245656 --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_ai_behaviors/interact_with_target.dm @@ -0,0 +1,27 @@ +///behavior for general interactions with any targets +/datum/ai_behavior/interact_with_target + behavior_flags = AI_BEHAVIOR_REQUIRE_MOVEMENT | AI_BEHAVIOR_REQUIRE_REACH + ///should we be clearing the target after the fact? + var/clear_target = TRUE + +/datum/ai_behavior/interact_with_target/setup(datum/ai_controller/controller, target_key) + . = ..() + var/atom/target = controller.blackboard[target_key] + if(QDELETED(target)) + return FALSE + set_movement_target(controller, target) + +/datum/ai_behavior/interact_with_target/perform(seconds_per_tick, datum/ai_controller/controller, target_key) + var/atom/target = controller.blackboard[target_key] + if(QDELETED(target) || !pre_interact(controller, target)) + return AI_BEHAVIOR_DELAY | AI_BEHAVIOR_FAILED + controller.ai_interact(target) + return AI_BEHAVIOR_SUCCEEDED | AI_BEHAVIOR_DELAY + +/datum/ai_behavior/interact_with_target/finish_action(datum/ai_controller/controller, succeeded, target_key) + . = ..() + if(clear_target || !succeeded) + controller.clear_blackboard_key(target_key) + +/datum/ai_behavior/interact_with_target/proc/pre_interact(datum/ai_controller/controller, target) + return TRUE diff --git a/code/datums/ai/basic_mobs/basic_subtrees/find_food.dm b/code/datums/ai/basic_mobs/basic_subtrees/find_food.dm index 9e3cd557b64..f05c357b1a8 100644 --- a/code/datums/ai/basic_mobs/basic_subtrees/find_food.dm +++ b/code/datums/ai/basic_mobs/basic_subtrees/find_food.dm @@ -4,11 +4,33 @@ var/datum/ai_behavior/finding_behavior = /datum/ai_behavior/find_and_set/in_list ///key of foods list var/food_list_key = BB_BASIC_FOODS + ///key where we store our food + var/found_food_key = BB_TARGET_FOOD + ///key holding any emotes we play after eating food + var/emotes_blackboard_list = BB_EAT_EMOTES /datum/ai_planning_subtree/find_food/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick) - . = ..() - if(controller.blackboard_key_exists(BB_BASIC_MOB_CURRENT_TARGET)) - // Busy with something + if(controller.blackboard[BB_NEXT_FOOD_EAT] > world.time) + return + if(!controller.blackboard_key_exists(found_food_key)) + controller.queue_behavior(finding_behavior, found_food_key, controller.blackboard[food_list_key]) return + controller.queue_behavior(/datum/ai_behavior/interact_with_target/eat_food, found_food_key, emotes_blackboard_list) + return SUBTREE_RETURN_FINISH_PLANNING + +/datum/ai_behavior/interact_with_target/eat_food + ///default list of actions we take after eating + var/list/food_actions = list( + "eats up happily!", + "chomps with glee!", + ) - controller.queue_behavior(finding_behavior, BB_BASIC_MOB_CURRENT_TARGET, controller.blackboard[food_list_key]) +/datum/ai_behavior/interact_with_target/eat_food/perform(seconds_per_tick, datum/ai_controller/controller, target_key, emotes_blackboard_list) + . = ..() + if(. & AI_BEHAVIOR_FAILED) + return + var/list/emotes_to_pick = controller.blackboard[emotes_blackboard_list] || food_actions + if(!length(emotes_to_pick)) + return + var/mob/living/living_pawn = controller.pawn + living_pawn.manual_emote(pick(emotes_to_pick)) diff --git a/code/modules/mob/living/basic/farm_animals/cow/cow_ai.dm b/code/modules/mob/living/basic/farm_animals/cow/cow_ai.dm index e1e611a28c2..cedc39f64f3 100644 --- a/code/modules/mob/living/basic/farm_animals/cow/cow_ai.dm +++ b/code/modules/mob/living/basic/farm_animals/cow/cow_ai.dm @@ -1,6 +1,6 @@ /datum/ai_controller/basic_controller/cow blackboard = list( - BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/allow_items, + BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic, BB_BASIC_MOB_TIP_REACTING = FALSE, BB_BASIC_MOB_TIPPER = null, ) @@ -11,7 +11,5 @@ planning_subtrees = list( /datum/ai_planning_subtree/tip_reaction, /datum/ai_planning_subtree/find_food, - //attacking the food will eat it - /datum/ai_planning_subtree/basic_melee_attack_subtree, /datum/ai_planning_subtree/random_speech/cow, ) diff --git a/code/modules/mob/living/basic/farm_animals/gorilla/gorilla_ai.dm b/code/modules/mob/living/basic/farm_animals/gorilla/gorilla_ai.dm index 28a727fdb1b..de55865b5fa 100644 --- a/code/modules/mob/living/basic/farm_animals/gorilla/gorilla_ai.dm +++ b/code/modules/mob/living/basic/farm_animals/gorilla/gorilla_ai.dm @@ -1,7 +1,7 @@ /// Pretty basic, just click people to death. Also hunt and eat bananas. /datum/ai_controller/basic_controller/gorilla blackboard = list( - BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/allow_items, + BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic, BB_TARGET_MINIMUM_STAT = UNCONSCIOUS, BB_EMOTE_KEY = "ooga", BB_EMOTE_CHANCE = 40, @@ -13,10 +13,10 @@ planning_subtrees = list( /datum/ai_planning_subtree/run_emote, - /datum/ai_planning_subtree/find_food, /datum/ai_planning_subtree/simple_find_target, /datum/ai_planning_subtree/attack_obstacle_in_path/gorilla, /datum/ai_planning_subtree/basic_melee_attack_subtree, + /datum/ai_planning_subtree/find_food, ) /datum/ai_planning_subtree/attack_obstacle_in_path/gorilla diff --git a/code/modules/mob/living/basic/lavaland/goliath/goliath_ai.dm b/code/modules/mob/living/basic/lavaland/goliath/goliath_ai.dm index 86ba1e00320..3bf9d1d8f33 100644 --- a/code/modules/mob/living/basic/lavaland/goliath/goliath_ai.dm +++ b/code/modules/mob/living/basic/lavaland/goliath/goliath_ai.dm @@ -3,7 +3,7 @@ /datum/ai_controller/basic_controller/goliath blackboard = list( - BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/allow_items, + BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic, BB_TARGET_MINIMUM_STAT = HARD_CRIT, ) diff --git a/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity_ai.dm b/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity_ai.dm index de62b43e4a0..de6ca4a0cc1 100644 --- a/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity_ai.dm +++ b/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity_ai.dm @@ -7,7 +7,7 @@ /datum/ai_controller/basic_controller/lobstrosity blackboard = list( - BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/allow_items, + BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic, BB_PET_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends, BB_TARGET_MINIMUM_STAT = HARD_CRIT, BB_LOBSTROSITY_EXPLOIT_TRAITS = list(TRAIT_INCAPACITATED, TRAIT_FLOORED, TRAIT_IMMOBILIZED, TRAIT_KNOCKEDOUT), @@ -45,7 +45,7 @@ ///Ensure that juveline lobstrosities witll charge at things they can reach. /datum/ai_controller/basic_controller/lobstrosity/juvenile blackboard = list( - BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/allow_items, + BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic, BB_PET_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends, BB_TARGET_MINIMUM_STAT = SOFT_CRIT, BB_LOBSTROSITY_EXPLOIT_TRAITS = list(TRAIT_INCAPACITATED, TRAIT_FLOORED, TRAIT_IMMOBILIZED, TRAIT_KNOCKEDOUT), diff --git a/code/modules/mob/living/basic/lavaland/raptor/raptor_ai_controller.dm b/code/modules/mob/living/basic/lavaland/raptor/raptor_ai_controller.dm index 8178df7b78c..d9bada12ee8 100644 --- a/code/modules/mob/living/basic/lavaland/raptor/raptor_ai_controller.dm +++ b/code/modules/mob/living/basic/lavaland/raptor/raptor_ai_controller.dm @@ -1,5 +1,3 @@ -#define NEXT_EAT_COOLDOWN 45 SECONDS - /datum/ai_controller/basic_controller/raptor blackboard = list( BB_INTERACTIONS_WITH_OWNER = list( @@ -34,16 +32,9 @@ /datum/ai_planning_subtree/find_and_hunt_target/play_with_owner/raptor, ) -/datum/ai_controller/basic_controller/raptor/TryPossessPawn(atom/new_pawn) +/datum/ai_controller/basic_controller/raptor/on_mob_eat() . = ..() - if(. & AI_CONTROLLER_INCOMPATIBLE) - return - RegisterSignal(new_pawn, COMSIG_MOB_ATE, PROC_REF(post_eat)) - -/datum/ai_controller/basic_controller/raptor/proc/post_eat() - SIGNAL_HANDLER clear_blackboard_key(BB_RAPTOR_TROUGH_TARGET) - set_blackboard_key(BB_RAPTOR_EAT_COOLDOWN, world.time + NEXT_EAT_COOLDOWN) /datum/ai_controller/basic_controller/baby_raptor blackboard = list( @@ -62,5 +53,3 @@ /datum/ai_planning_subtree/express_happiness, /datum/ai_planning_subtree/look_for_adult, ) - -#undef NEXT_EAT_COOLDOWN diff --git a/code/modules/mob/living/basic/lavaland/raptor/raptor_ai_subtrees.dm b/code/modules/mob/living/basic/lavaland/raptor/raptor_ai_subtrees.dm index a8d91963ebf..2b88cc3282b 100644 --- a/code/modules/mob/living/basic/lavaland/raptor/raptor_ai_subtrees.dm +++ b/code/modules/mob/living/basic/lavaland/raptor/raptor_ai_subtrees.dm @@ -56,7 +56,7 @@ hunt_range = 9 /datum/ai_planning_subtree/find_and_hunt_target/raptor_trough/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick) - if(world.time < controller.blackboard[BB_RAPTOR_EAT_COOLDOWN]) + if(world.time < controller.blackboard[BB_NEXT_FOOD_EAT]) return return ..() diff --git a/code/modules/mob/living/basic/pets/orbie/orbie_ai.dm b/code/modules/mob/living/basic/pets/orbie/orbie_ai.dm index 1452dd18dee..a978b750d50 100644 --- a/code/modules/mob/living/basic/pets/orbie/orbie_ai.dm +++ b/code/modules/mob/living/basic/pets/orbie/orbie_ai.dm @@ -3,7 +3,7 @@ /datum/ai_controller/basic_controller/orbie blackboard = list( - BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/allow_items, + BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic, BB_PET_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends, BB_TRICK_NAME = "Trick", ) @@ -13,7 +13,6 @@ planning_subtrees = list( /datum/ai_planning_subtree/find_food, /datum/ai_planning_subtree/find_playmates, - /datum/ai_planning_subtree/basic_melee_attack_subtree, /datum/ai_planning_subtree/relay_pda_message, /datum/ai_planning_subtree/pet_planning, ) diff --git a/code/modules/mob/living/basic/ruin_defender/skeleton.dm b/code/modules/mob/living/basic/ruin_defender/skeleton.dm index e6754a80a22..5eb8fda1523 100644 --- a/code/modules/mob/living/basic/ruin_defender/skeleton.dm +++ b/code/modules/mob/living/basic/ruin_defender/skeleton.dm @@ -162,7 +162,7 @@ /// Skeletons mostly just beat people to death, but they'll also find and drink milk. /datum/ai_controller/basic_controller/skeleton blackboard = list( - BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/allow_items, + BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic, BB_TARGET_MINIMUM_STAT = HARD_CRIT, BB_EMOTE_KEY = "rattles", BB_EMOTE_CHANCE = 20, diff --git a/code/modules/mob/living/basic/space_fauna/carp/carp_controllers.dm b/code/modules/mob/living/basic/space_fauna/carp/carp_controllers.dm index ae011f5b14a..93ede010eb6 100644 --- a/code/modules/mob/living/basic/space_fauna/carp/carp_controllers.dm +++ b/code/modules/mob/living/basic/space_fauna/carp/carp_controllers.dm @@ -10,7 +10,7 @@ /datum/ai_controller/basic_controller/carp blackboard = list( BB_BASIC_MOB_STOP_FLEEING = TRUE, - BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/allow_items, + BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic, BB_PET_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends, BB_TARGET_PRIORITY_TRAIT = TRAIT_SCARY_FISHERMAN, BB_CARPS_FEAR_FISHERMAN = TRUE, @@ -24,11 +24,11 @@ /datum/ai_planning_subtree/find_target_prioritize_traits, /datum/ai_planning_subtree/make_carp_rift/panic_teleport, /datum/ai_planning_subtree/flee_target/from_fisherman, - /datum/ai_planning_subtree/find_food, /datum/ai_planning_subtree/attack_obstacle_in_path/carp, /datum/ai_planning_subtree/shortcut_to_target_through_carp_rift, /datum/ai_planning_subtree/make_carp_rift/aggressive_teleport, /datum/ai_planning_subtree/basic_melee_attack_subtree/no_fisherman, + /datum/ai_planning_subtree/find_food, /datum/ai_planning_subtree/carp_migration, ) @@ -36,7 +36,7 @@ /datum/ai_controller/basic_controller/carp/mega blackboard = list( BB_BASIC_MOB_STOP_FLEEING = TRUE, - BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/allow_items, + BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic, BB_PET_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends, BB_TARGET_PRIORITY_TRAIT = TRAIT_SCARY_FISHERMAN, BB_CARPS_FEAR_FISHERMAN = FALSE, @@ -46,12 +46,12 @@ /datum/ai_planning_subtree/simple_find_nearest_target_to_flee, /datum/ai_planning_subtree/make_carp_rift/panic_teleport, /datum/ai_planning_subtree/flee_target, - /datum/ai_planning_subtree/find_food, /datum/ai_planning_subtree/find_target_prioritize_traits, /datum/ai_planning_subtree/attack_obstacle_in_path/carp, /datum/ai_planning_subtree/shortcut_to_target_through_carp_rift, /datum/ai_planning_subtree/make_carp_rift/aggressive_teleport, /datum/ai_planning_subtree/basic_melee_attack_subtree, + /datum/ai_planning_subtree/find_food, /datum/ai_planning_subtree/carp_migration, ) /** @@ -90,13 +90,13 @@ /datum/ai_planning_subtree/find_target_prioritize_traits, /datum/ai_planning_subtree/make_carp_rift/panic_teleport, /datum/ai_planning_subtree/flee_target/from_fisherman, - /datum/ai_planning_subtree/find_food, /datum/ai_planning_subtree/find_nearest_magicarp_spell_target, /datum/ai_planning_subtree/targeted_mob_ability/magicarp, /datum/ai_planning_subtree/attack_obstacle_in_path/carp, /datum/ai_planning_subtree/shortcut_to_target_through_carp_rift, /datum/ai_planning_subtree/make_carp_rift/aggressive_teleport, /datum/ai_planning_subtree/basic_melee_attack_subtree/magicarp, + /datum/ai_planning_subtree/find_food, /datum/ai_planning_subtree/carp_migration, ) diff --git a/code/modules/mob/living/basic/space_fauna/snake/snake.dm b/code/modules/mob/living/basic/space_fauna/snake/snake.dm index 78f7d86e0db..3125ae9d323 100644 --- a/code/modules/mob/living/basic/space_fauna/snake/snake.dm +++ b/code/modules/mob/living/basic/space_fauna/snake/snake.dm @@ -73,7 +73,7 @@ /// Snakes are primarily concerned with getting those tasty, tasty mice, but aren't afraid to strike back at those who attack them /datum/ai_controller/basic_controller/snake blackboard = list( - BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends/allow_items, + BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends, ) ai_traits = STOP_MOVING_WHEN_PULLED @@ -82,7 +82,7 @@ planning_subtrees = list( /datum/ai_planning_subtree/target_retaliate, - /datum/ai_planning_subtree/find_food, /datum/ai_planning_subtree/basic_melee_attack_subtree, + /datum/ai_planning_subtree/find_food, /datum/ai_planning_subtree/random_speech/snake, ) diff --git a/code/modules/mob/living/basic/vermin/lizard.dm b/code/modules/mob/living/basic/vermin/lizard.dm index c1c21850ee6..5e3a07094a9 100644 --- a/code/modules/mob/living/basic/vermin/lizard.dm +++ b/code/modules/mob/living/basic/vermin/lizard.dm @@ -64,7 +64,7 @@ /datum/ai_controller/basic_controller/lizard blackboard = list( - BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/allow_items, + BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic, ) ai_traits = STOP_MOVING_WHEN_PULLED @@ -72,7 +72,6 @@ idle_behavior = /datum/idle_behavior/idle_random_walk planning_subtrees = list( /datum/ai_planning_subtree/find_food, - /datum/ai_planning_subtree/basic_melee_attack_subtree, /datum/ai_planning_subtree/random_speech/lizard, ) diff --git a/code/modules/mob/living/basic/vermin/mothroach/mothroach_ai.dm b/code/modules/mob/living/basic/vermin/mothroach/mothroach_ai.dm index bed72a98239..c9e8558ec5c 100644 --- a/code/modules/mob/living/basic/vermin/mothroach/mothroach_ai.dm +++ b/code/modules/mob/living/basic/vermin/mothroach/mothroach_ai.dm @@ -1,10 +1,9 @@ -#define MOTHROACH_EAT_TIMER 1 MINUTES - /datum/ai_controller/basic_controller/mothroach blackboard = list( BB_FLEE_TARGETING_STRATEGY = /datum/targeting_strategy/basic, BB_PET_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends, - BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/allow_items, + BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic, + BB_EAT_FOOD_COOLDOWN = 1 MINUTES, ) ai_traits = STOP_MOVING_WHEN_PULLED @@ -15,28 +14,12 @@ /datum/ai_planning_subtree/find_food/mothroach, /datum/ai_planning_subtree/target_retaliate/to_flee, /datum/ai_planning_subtree/flee_target/from_flee_key, - /datum/ai_planning_subtree/basic_melee_attack_subtree, /datum/ai_planning_subtree/random_speech/mothroach, ) -/datum/ai_controller/basic_controller/mothroach/TryPossessPawn(atom/new_pawn) - . = ..() - if(. & AI_CONTROLLER_INCOMPATIBLE) - return - RegisterSignal(new_pawn, COMSIG_MOB_ATE, PROC_REF(on_eaten)) - -/datum/ai_controller/basic_controller/mothroach/proc/on_eaten(datum/source) - SIGNAL_HANDLER - set_blackboard_key(BB_MOTHROACH_NEXT_EAT, world.time + MOTHROACH_EAT_TIMER) - /datum/ai_planning_subtree/find_food/mothroach finding_behavior = /datum/ai_behavior/find_and_set/in_list/mothroach_food -/datum/ai_planning_subtree/find_food/mothroach/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick) - if(world.time < controller.blackboard[BB_MOTHROACH_NEXT_EAT]) - return - return ..() - /datum/ai_behavior/find_and_set/in_list/mothroach_food /datum/ai_behavior/find_and_set/in_list/mothroach_food/search_tactic(datum/ai_controller/controller, locate_paths, search_range) @@ -45,5 +28,3 @@ found -= living_pawn.loc if(length(found)) return pick(found) - -#undef MOTHROACH_EAT_TIMER diff --git a/tgstation.dme b/tgstation.dme index b4ad9466f7c..08de7a3243e 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1009,6 +1009,7 @@ #include "code\datums\ai\basic_mobs\basic_ai_behaviors\climb_tree.dm" #include "code\datums\ai\basic_mobs\basic_ai_behaviors\emote_with_target.dm" #include "code\datums\ai\basic_mobs\basic_ai_behaviors\find_parent.dm" +#include "code\datums\ai\basic_mobs\basic_ai_behaviors\interact_with_target.dm" #include "code\datums\ai\basic_mobs\basic_ai_behaviors\nearest_targeting.dm" #include "code\datums\ai\basic_mobs\basic_ai_behaviors\pick_up_item.dm" #include "code\datums\ai\basic_mobs\basic_ai_behaviors\pull_target.dm" From b96861898c98dfe9db6d82c008307af914bf2b5d Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 00:33:06 +0000 Subject: [PATCH 042/103] Automatic changelog for PR #87166 [ci skip] --- html/changelogs/AutoChangeLog-pr-87166.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87166.yml diff --git a/html/changelogs/AutoChangeLog-pr-87166.yml b/html/changelogs/AutoChangeLog-pr-87166.yml new file mode 100644 index 00000000000..e3faa3745a5 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87166.yml @@ -0,0 +1,4 @@ +author: "Ben10Omintrix" +delete-after: True +changes: + - code_imp: "animals' food hunting behavior has been refactored, please report any bugs" \ No newline at end of file From d87612a1698c5b8d308b34643defc21ea804e84f Mon Sep 17 00:00:00 2001 From: Bloop <13398309+vinylspiders@users.noreply.github.com> Date: Tue, 15 Oct 2024 00:36:41 -0400 Subject: [PATCH 043/103] Fixes improper static list declarations + adds grep for it (#87207) ## About The Pull Request I randomly came across a `var/list/static` in the code, which does not actually do what was intended, and thought it was silly. A ctrl+f revealed that this was a fairly common mistake, so I went and fixed all the instances of it I could find. ~~Including one in lighting code, which it looked like they were trying to create a global list to cache generated lighting sheet values for speed, but it was just a normal list that got created each time pointlessly. Now those values are actually being cached (using a global var, because a `static` list was not the right thing to use there in the first place).~~ Nevermind, it seems that this was in fact being cached even if it shouldn't have been, because byond. Just rearranged it there seeing as it works either way. ## Why It's Good For The Game Code that does what it's supposed to ## Changelog :cl: fix: fixes a bunch of improper static list declarations /:cl: # Conflicts: # code/game/objects/items/kirby_plants/kirbyplants.dm --- code/datums/components/riding/riding.dm | 2 +- code/datums/mutations/speech.dm | 2 +- .../objects/items/kirby_plants/kirbyplants.dm | 19 +++++++++---------- code/game/objects/structures/traps.dm | 4 ++-- code/modules/lighting/lighting_source.dm | 8 +++++--- code/modules/mapping/ruins.dm | 2 +- .../boulder_processing/boulder_types.dm | 4 ++-- .../projectiles/projectile/bullets/special.dm | 2 +- .../spells/spell_types/conjure/simian.dm | 2 +- .../code/game/objects/items/kirby_plants.dm | 3 +++ .../ruins/spaceruin_code/hilbertshotel.dm | 2 +- .../ashwalkers/code/items/ash_seedmesh.dm | 2 +- tgstation.dme | 1 + tools/ci/check_grep.sh | 7 +++++++ 14 files changed, 36 insertions(+), 24 deletions(-) create mode 100644 modular_nova/master_files/code/game/objects/items/kirby_plants.dm diff --git a/code/datums/components/riding/riding.dm b/code/datums/components/riding/riding.dm index cfdaf605878..e34e763ae83 100644 --- a/code/datums/components/riding/riding.dm +++ b/code/datums/components/riding/riding.dm @@ -195,7 +195,7 @@ if(diroffsets.len == 3) buckled_mob.layer = diroffsets[3] break dir_loop - var/list/static/default_vehicle_pixel_offsets = list(TEXT_NORTH = list(0, 0), TEXT_SOUTH = list(0, 0), TEXT_EAST = list(0, 0), TEXT_WEST = list(0, 0)) + var/static/list/default_vehicle_pixel_offsets = list(TEXT_NORTH = list(0, 0), TEXT_SOUTH = list(0, 0), TEXT_EAST = list(0, 0), TEXT_WEST = list(0, 0)) var/px = default_vehicle_pixel_offsets[AM_dir] var/py = default_vehicle_pixel_offsets[AM_dir] if(directional_vehicle_offsets[AM_dir]) diff --git a/code/datums/mutations/speech.dm b/code/datums/mutations/speech.dm index b9367cfdcdc..f487ac56c13 100644 --- a/code/datums/mutations/speech.dm +++ b/code/datums/mutations/speech.dm @@ -79,7 +79,7 @@ // Used to replace the original later var/og_word = editing_word // Iterating through each replaceable-string in the .json - var/list/static/super_wacky_words = strings("heckacious.json", "heckacious") + var/static/list/super_wacky_words = strings("heckacious.json", "heckacious") // If the word doesn't get replaced we might do something with it later var/word_edited diff --git a/code/game/objects/items/kirby_plants/kirbyplants.dm b/code/game/objects/items/kirby_plants/kirbyplants.dm index d493dafece3..bad39eb8b64 100644 --- a/code/game/objects/items/kirby_plants/kirbyplants.dm +++ b/code/game/objects/items/kirby_plants/kirbyplants.dm @@ -19,9 +19,7 @@ var/dead = FALSE ///If it's a special named plant, set this to true to prevent dead-name overriding. var/custom_plant_name = FALSE - var/list/static/random_plant_states - /// Maximum icon state number - KEEP THIS UP TO DATE - var/random_state_cap = 43 // NOVA EDIT ADDITION + var/static/list/random_plant_states /obj/item/kirbyplants/Initialize(mapload) . = ..() @@ -67,22 +65,24 @@ /// Cycle basic plant visuals /obj/item/kirbyplants/proc/change_visual() - if(!random_plant_states) - generate_states() + if(isnull(random_plant_states)) + random_plant_states = generate_states() var/current = random_plant_states.Find(icon_state) var/next = WRAP(current+1,1,length(random_plant_states)) icon_state = random_plant_states[next] /obj/item/kirbyplants/proc/generate_states() - random_plant_states = list() + var/list/plant_states = list() for(var/i in 1 to random_state_cap) //NOVA EDIT CHANGE - ORIGINAL: for(var/i in 1 to 24) var/number if(i < 10) number = "0[i]" else number = "[i]" - random_plant_states += "plant-[number]" - random_plant_states += list("applebush", "monkeyplant") //NOVA EDIT CHANGE - ORIGINAL:random_plant_states += "applebush" + plant_states += "plant-[number]" + plant_states += list("applebush", "monkeyplant") //NOVA EDIT CHANGE - ORIGINAL: plant_states += "applebush" + + return plant_states /obj/item/kirbyplants/random icon = 'icons/obj/fluff/flora/_flora.dmi' @@ -90,8 +90,7 @@ /obj/item/kirbyplants/random/Initialize(mapload) . = ..() - //icon = 'icons/obj/flora/plants.dmi' // ORIGINAL - icon = 'modular_nova/modules/aesthetics/plants/plants.dmi' //NOVA EDIT CHANGE + icon = 'modular_nova/modules/aesthetics/plants/plants.dmi' //NOVA EDIT CHANGE - ORIGINAL: icon = 'icons/obj/flora/plants.dmi' randomize_base_icon_state() //Handles randomizing the icon during initialize() diff --git a/code/game/objects/structures/traps.dm b/code/game/objects/structures/traps.dm index a30a59e45a2..11f4817b94c 100644 --- a/code/game/objects/structures/traps.dm +++ b/code/game/objects/structures/traps.dm @@ -12,7 +12,7 @@ var/charges = INFINITY var/antimagic_flags = MAGIC_RESISTANCE - var/list/static/ignore_typecache + var/static/list/ignore_typecache var/list/mob/immune_minds = list() var/sparks = TRUE @@ -30,7 +30,7 @@ ) AddElement(/datum/element/connect_loc, loc_connections) - if(!ignore_typecache) + if(isnull(ignore_typecache)) ignore_typecache = typecacheof(list( /obj/effect, /mob/dead, diff --git a/code/modules/lighting/lighting_source.dm b/code/modules/lighting/lighting_source.dm index 30c239160e5..304b358cf88 100644 --- a/code/modules/lighting/lighting_source.dm +++ b/code/modules/lighting/lighting_source.dm @@ -1,3 +1,6 @@ +/// Cached global list of generated lighting sheets. See: datum/light_source/proc/get_sheet() +GLOBAL_LIST_EMPTY(lighting_sheets) + // This is where the fun begins. // These are the main datums that emit light. @@ -222,16 +225,15 @@ /// If the requested sheet is multiz, this will be 3 lists deep, first handling z level then x and y /// otherwise it's just two, x then y /datum/light_source/proc/get_sheet(multiz = FALSE) - var/list/static/key_to_sheet = list() var/range = max(1, light_range); var/key = "[range]-[visual_offset]-[offset_x]-[offset_y]-[light_dir]-[light_angle]-[light_height]-[multiz]" - var/list/hand_back = key_to_sheet[key] + var/list/hand_back = GLOB.lighting_sheets[key] if(!hand_back) if(multiz) hand_back = generate_sheet_multiz(range, visual_offset, offset_x, offset_y, light_dir, light_angle, light_height) else hand_back = generate_sheet(range, visual_offset, offset_x, offset_y, light_dir, light_angle, light_height) - key_to_sheet[key] = hand_back + GLOB.lighting_sheets[key] = hand_back return hand_back /// Returns a list of lists that encodes the light falloff of our source diff --git a/code/modules/mapping/ruins.dm b/code/modules/mapping/ruins.dm index 4987016c5a0..d6ac3ac4f94 100644 --- a/code/modules/mapping/ruins.dm +++ b/code/modules/mapping/ruins.dm @@ -31,7 +31,7 @@ testing("Ruin \"[name]\" placed at ([central_turf.x], [central_turf.y], [central_turf.z])") if(clear_below) - var/list/static/clear_below_typecache = typecacheof(list( + var/static/list/clear_below_typecache = typecacheof(list( /obj/structure/spawner, /mob/living/simple_animal, /obj/structure/flora diff --git a/code/modules/mining/boulder_processing/boulder_types.dm b/code/modules/mining/boulder_processing/boulder_types.dm index 366c5b21c42..6d0d58a1be2 100644 --- a/code/modules/mining/boulder_processing/boulder_types.dm +++ b/code/modules/mining/boulder_processing/boulder_types.dm @@ -38,7 +38,7 @@ . = ..() /// Static list of all minerals to populate gulag boulders with. - var/list/static/gulag_minerals = list( + var/static/list/gulag_minerals = list( /datum/material/diamond = 1, /datum/material/gold = 8, /datum/material/iron = 95, @@ -59,7 +59,7 @@ . = ..() /// Static list of all minerals to populate gulag boulders with, but with bluespace added where safe. - var/list/static/expanded_gulag_minerals = list( + var/static/list/expanded_gulag_minerals = list( /datum/material/bluespace = 1, /datum/material/diamond = 1, /datum/material/gold = 8, diff --git a/code/modules/projectiles/projectile/bullets/special.dm b/code/modules/projectiles/projectile/bullets/special.dm index 2af0fe7b9cb..34f6c1e0718 100644 --- a/code/modules/projectiles/projectile/bullets/special.dm +++ b/code/modules/projectiles/projectile/bullets/special.dm @@ -196,7 +196,7 @@ if(possible_victims.len) return pick(possible_victims) - var/list/static/prioritized_targets = list(/obj/structure/reagent_dispensers, /obj/item/grenade, /obj/structure/window) + var/static/list/prioritized_targets = list(/obj/structure/reagent_dispensers, /obj/item/grenade, /obj/structure/window) for(var/iter_type in prioritized_targets) for(var/already_coined_tries in 1 to 3) var/atom/iter_type_check = locate(iter_type) in valid_targets diff --git a/code/modules/spells/spell_types/conjure/simian.dm b/code/modules/spells/spell_types/conjure/simian.dm index b64a34f847e..1f1074cb981 100644 --- a/code/modules/spells/spell_types/conjure/simian.dm +++ b/code/modules/spells/spell_types/conjure/simian.dm @@ -98,7 +98,7 @@ weapon.attack_self(summoned_monkey) // Fashionable ape wear, organised by tier - var/list/static/monky_hats = list( + var/static/list/monky_hats = list( null, // nothin here /obj/item/clothing/head/costume/garland, /obj/item/clothing/head/helmet/durathread, diff --git a/modular_nova/master_files/code/game/objects/items/kirby_plants.dm b/modular_nova/master_files/code/game/objects/items/kirby_plants.dm new file mode 100644 index 00000000000..06aa42a08f5 --- /dev/null +++ b/modular_nova/master_files/code/game/objects/items/kirby_plants.dm @@ -0,0 +1,3 @@ +/obj/item/kirbyplants + /// Maximum icon state number - KEEP THIS UP TO DATE + var/random_state_cap = 43 // NOVA EDIT ADDITION diff --git a/modular_nova/master_files/code/modules/mapfluff/ruins/spaceruin_code/hilbertshotel.dm b/modular_nova/master_files/code/modules/mapfluff/ruins/spaceruin_code/hilbertshotel.dm index ee6676d0103..675db4c055a 100644 --- a/modular_nova/master_files/code/modules/mapfluff/ruins/spaceruin_code/hilbertshotel.dm +++ b/modular_nova/master_files/code/modules/mapfluff/ruins/spaceruin_code/hilbertshotel.dm @@ -1,6 +1,6 @@ // GHOST HOTEL UPDATE /obj/item/hilbertshotel - var/list/static/hotel_maps = list("Generic", "Apartment", "Beach Condo") + var/static/list/hotel_maps = list("Generic", "Apartment", "Beach Condo") //standard - hilbert's hotel room //apartment - see /datum/map_template/ghost_cafe_rooms var/datum/map_template/ghost_cafe_rooms/apartment/ghost_cafe_rooms_apartment diff --git a/modular_nova/modules/ashwalkers/code/items/ash_seedmesh.dm b/modular_nova/modules/ashwalkers/code/items/ash_seedmesh.dm index 0c3b264f10f..1d34fbe9613 100644 --- a/modular_nova/modules/ashwalkers/code/items/ash_seedmesh.dm +++ b/modular_nova/modules/ashwalkers/code/items/ash_seedmesh.dm @@ -3,7 +3,7 @@ desc = "A little mesh that, when paired with sand, has the possibility of filtering out large seeds." icon = 'modular_nova/modules/ashwalkers/icons/misc_tools.dmi' icon_state = "mesh" - var/list/static/seeds_blacklist = list( + var/static/list/seeds_blacklist = list( /obj/item/seeds/lavaland, /obj/item/seeds/gatfruit, /obj/item/seeds/seedling/evil, diff --git a/tgstation.dme b/tgstation.dme index 08de7a3243e..bf7268c086c 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -6653,6 +6653,7 @@ #include "modular_nova\master_files\code\game\objects\items\emags.dm" #include "modular_nova\master_files\code\game\objects\items\hhmirror.dm" #include "modular_nova\master_files\code\game\objects\items\holy_weapons.dm" +#include "modular_nova\master_files\code\game\objects\items\kirby_plants.dm" #include "modular_nova\master_files\code\game\objects\items\oxygen_candle.dm" #include "modular_nova\master_files\code\game\objects\items\RCD.dm" #include "modular_nova\master_files\code\game\objects\items\religion.dm" diff --git a/tools/ci/check_grep.sh b/tools/ci/check_grep.sh index 8a2b715502f..05718cfccd8 100644 --- a/tools/ci/check_grep.sh +++ b/tools/ci/check_grep.sh @@ -140,6 +140,13 @@ if $grep '^/[\w/]\S+\(.*(var/|, ?var/.*).*\)' $code_files; then st=1 fi; +part "improperly pathed static lists" +if $grep -i 'var/list/static/.*' $code_files; then + echo + echo -e "${RED}ERROR: Found incorrect static list definition 'var/list/static/', it should be 'var/static/list/' instead.${NC}" + st=1 +fi; + part "can_perform_action argument check" if $grep 'can_perform_action\(\s*\)' $code_files; then echo From 54919de5cf60aaf8e81902af926d472af618859e Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 04:37:01 +0000 Subject: [PATCH 044/103] Automatic changelog for PR #87207 [ci skip] --- html/changelogs/AutoChangeLog-pr-87207.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87207.yml diff --git a/html/changelogs/AutoChangeLog-pr-87207.yml b/html/changelogs/AutoChangeLog-pr-87207.yml new file mode 100644 index 00000000000..4ee7a40193d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87207.yml @@ -0,0 +1,4 @@ +author: "vinylspiders" +delete-after: True +changes: + - bugfix: "fixes a bunch of improper static list declarations" \ No newline at end of file From e98bca0bdde3febe4c6b46a8e9381b2441a76651 Mon Sep 17 00:00:00 2001 From: mamiipolat <119690368+mamiipolat@users.noreply.github.com> Date: Tue, 15 Oct 2024 18:24:54 +0300 Subject: [PATCH 045/103] Felinid mood fix (#87230) ![resim](https://github.com/user-attachments/assets/35ce028c-0ed0-4ea2-89f3-77acc15693ac) ## About The Pull Request Showering will add negative mood effect to felinids ## Why It's Good For The Game there was a status effect that drops stamina for felinids on shower but at the same time it boosts mood i decided to make it better :cl: Mamaii add: shower will give felinids negative mood effect fix: fixed shower hater status effect alert not showing /:cl: --- code/datums/mood_events/needs_events.dm | 5 +++++ code/datums/status_effects/neutral.dm | 2 +- code/game/objects/structures/shower.dm | 5 ++++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/code/datums/mood_events/needs_events.dm b/code/datums/mood_events/needs_events.dm index dd5441476dc..93a8f186da6 100644 --- a/code/datums/mood_events/needs_events.dm +++ b/code/datums/mood_events/needs_events.dm @@ -76,6 +76,11 @@ mood_change = 4 timeout = 5 MINUTES +/datum/mood_event/shower_hater + description = "I hate being wet!" + mood_change = -2 + timeout = 3 MINUTES + /datum/mood_event/fresh_laundry description = "There's nothing like the feeling of a freshly laundered jumpsuit." mood_change = 2 diff --git a/code/datums/status_effects/neutral.dm b/code/datums/status_effects/neutral.dm index 8737cacede3..8aca00b288b 100644 --- a/code/datums/status_effects/neutral.dm +++ b/code/datums/status_effects/neutral.dm @@ -618,7 +618,7 @@ /atom/movable/screen/alert/status_effect/shower_regen/hater name = "Washing" desc = "Waaater... Fuck this WATER!!" - icon_state = "shower_regen_hater" + icon_state = "shower_regen_catgirl" /datum/status_effect/shower_regen id = "shower_regen" diff --git a/code/game/objects/structures/shower.dm b/code/game/objects/structures/shower.dm index 34344415464..718f610957b 100644 --- a/code/game/objects/structures/shower.dm +++ b/code/game/objects/structures/shower.dm @@ -266,8 +266,11 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/shower, (-16)) return var/mob/living/living_target = target check_heat(living_target) - living_target.add_mood_event("shower", /datum/mood_event/nice_shower) living_target.apply_status_effect(/datum/status_effect/shower_regen) + if(!HAS_TRAIT(target, TRAIT_WATER_HATER) || HAS_TRAIT(target, TRAIT_WATER_ADAPTATION)) + living_target.add_mood_event("shower", /datum/mood_event/nice_shower) + else + living_target.add_mood_event("shower", /datum/mood_event/shower_hater) /** * Toggle whether shower is actually on and outputting water. From 85fd0c2b6399a5a0e261a91b70a04a93fc95c320 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 15:29:05 +0000 Subject: [PATCH 046/103] Automatic changelog for PR #87230 [ci skip] --- html/changelogs/AutoChangeLog-pr-87230.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87230.yml diff --git a/html/changelogs/AutoChangeLog-pr-87230.yml b/html/changelogs/AutoChangeLog-pr-87230.yml new file mode 100644 index 00000000000..1feb2c158ed --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87230.yml @@ -0,0 +1,5 @@ +author: "Mamaii" +delete-after: True +changes: + - rscadd: "shower will give felinids negative mood effect" + - bugfix: "fixed shower hater status effect alert not showing" \ No newline at end of file From f77d3e0cd0eab714f50b21c3f52a31de4f971848 Mon Sep 17 00:00:00 2001 From: SmArtKar <44720187+SmArtKar@users.noreply.github.com> Date: Tue, 15 Oct 2024 18:03:03 +0200 Subject: [PATCH 047/103] Changes variable_color on limbs to use a priority system (#87216) Its now a priority -> color assoc list with a pair of helper procs to wrap lazylist stuff. New priorities should go to ``code/__DEFINES/bodyparts.dm`` as defines as to be seen and not overridden. Wasn't a problem until carps came along as before only hulks used this thing, now we've got clashing. :cl: fix: Losing hulk after becoming a carp no longer turns you black /:cl: --------- Co-Authored-By: Ghom <42542238+Ghommie@users.noreply.github.com> --- code/__DEFINES/bodyparts.dm | 5 +++ code/datums/elements/organ_set_bonus.dm | 6 ++- code/datums/mutations/hulk.dm | 4 +- .../dna_infuser/organ_sets/carp_organs.dm | 1 + code/modules/surgery/bodyparts/_bodyparts.dm | 38 ++++++++++++------- .../modules/synths/code/species/synthetic.dm | 4 +- 6 files changed, 38 insertions(+), 20 deletions(-) diff --git a/code/__DEFINES/bodyparts.dm b/code/__DEFINES/bodyparts.dm index 4d957373a55..34a26376e2f 100644 --- a/code/__DEFINES/bodyparts.dm +++ b/code/__DEFINES/bodyparts.dm @@ -43,3 +43,8 @@ #define AUGGED_CHEST_EMP_SHAKE_TIME 5 SECONDS /// When hit by an EMP, the time an augged head will make vision fucky for. #define AUGGED_HEAD_EMP_GLITCH_DURATION 6 SECONDS + +// Color priorities for bodyparts +#define LIMB_COLOR_HULK 10 +#define LIMB_COLOR_CARP_INFUSION 20 +#define LIMB_COLOR_SYNTH 100 // NOVA EDIT ADDITION - High priority diff --git a/code/datums/elements/organ_set_bonus.dm b/code/datums/elements/organ_set_bonus.dm index 1c75bf7de14..082933e409e 100644 --- a/code/datums/elements/organ_set_bonus.dm +++ b/code/datums/elements/organ_set_bonus.dm @@ -59,6 +59,8 @@ var/list/bonus_traits = list() /// Limb overlay to apply upon activation var/limb_overlay + /// Color priority for limb overlay + var/color_overlay_priority /datum/status_effect/organ_set_bonus/proc/set_organs(new_value) organs = new_value @@ -87,7 +89,7 @@ var/mob/living/carbon/carbon_owner = owner for(var/obj/item/bodypart/limb in carbon_owner.bodyparts) limb.add_bodypart_overlay(new limb_overlay()) - limb.variable_color = COLOR_WHITE + limb.add_color_override(COLOR_WHITE, color_overlay_priority) carbon_owner.update_body() return TRUE @@ -105,5 +107,5 @@ var/overlay = locate(limb_overlay) in limb.bodypart_overlays if(overlay) limb.remove_bodypart_overlay(overlay) - limb.variable_color = null + limb.remove_color_override(color_overlay_priority) carbon_owner.update_body() diff --git a/code/datums/mutations/hulk.dm b/code/datums/mutations/hulk.dm index 17575d6994a..50d14db29dd 100644 --- a/code/datums/mutations/hulk.dm +++ b/code/datums/mutations/hulk.dm @@ -32,7 +32,7 @@ if(..()) return for(var/obj/item/bodypart/part as anything in owner.bodyparts) - part.variable_color = bodypart_color + part.add_color_override(bodypart_color, LIMB_COLOR_HULK) owner.update_body_parts() owner.add_mood_event("hulk", /datum/mood_event/hulk) RegisterSignal(owner, COMSIG_LIVING_EARLY_UNARMED_ATTACK, PROC_REF(on_attack_hand)) @@ -94,7 +94,7 @@ if(..()) return for(var/obj/item/bodypart/part as anything in owner.bodyparts) - part.variable_color = null + part.remove_color_override(LIMB_COLOR_HULK) owner.update_body_parts() owner.clear_mood_event("hulk") UnregisterSignal(owner, COMSIG_LIVING_EARLY_UNARMED_ATTACK) diff --git a/code/game/machinery/dna_infuser/organ_sets/carp_organs.dm b/code/game/machinery/dna_infuser/organ_sets/carp_organs.dm index c551ce0c4e9..622cafaa7bf 100644 --- a/code/game/machinery/dna_infuser/organ_sets/carp_organs.dm +++ b/code/game/machinery/dna_infuser/organ_sets/carp_organs.dm @@ -11,6 +11,7 @@ bonus_deactivate_text = span_notice("Your DNA is once again mostly yours, and so fades your ability to space-swim...") bonus_traits = list(TRAIT_SPACEWALK) limb_overlay = /datum/bodypart_overlay/texture/carpskin + color_overlay_priority = LIMB_COLOR_CARP_INFUSION ///Carp lungs! You can breathe in space! Oh... you can't breathe on the station, you need low oxygen environments. /// Inverts behavior of lungs. Bypasses suffocation due to space / lack of gas, but also allows Oxygen to suffocate. diff --git a/code/modules/surgery/bodyparts/_bodyparts.dm b/code/modules/surgery/bodyparts/_bodyparts.dm index eddcc45e653..7c03311eff8 100644 --- a/code/modules/surgery/bodyparts/_bodyparts.dm +++ b/code/modules/surgery/bodyparts/_bodyparts.dm @@ -107,8 +107,8 @@ var/species_color = "" ///Limbs need this information as a back-up incase they are generated outside of a carbon (limbgrower) var/should_draw_greyscale = TRUE - ///An "override" color that can be applied to ANY limb, greyscale or not. - var/variable_color = "" + /// An assoc list of priority (as a string because byond) -> color, used to override draw_color. + var/list/color_overrides var/px_x = 0 var/px_y = 0 @@ -950,12 +950,7 @@ is_husked = FALSE is_invisible = FALSE - if(variable_color) - draw_color = variable_color - else if(should_draw_greyscale) - draw_color = species_color || (skin_tone ? skintone2hex(skin_tone) : null) - else - draw_color = null + update_draw_color() if(!is_creating || !owner) return @@ -978,9 +973,7 @@ skin_tone = "" species_color = "" - draw_color = variable_color - if(should_draw_greyscale) //Should the limb be colored? - draw_color ||= species_color || (skin_tone ? skintone2hex(skin_tone) : null) + update_draw_color() // NOVA EDIT ADDITION var/datum/species/owner_species = human_owner.dna.species @@ -997,6 +990,24 @@ recolor_external_organs() return TRUE +/obj/item/bodypart/proc/update_draw_color() + draw_color = null + if(LAZYLEN(color_overrides)) + var/priority + for (var/override_priority in color_overrides) + if (text2num(override_priority) > priority) + priority = text2num(override_priority) + draw_color = color_overrides[override_priority] + return + if(should_draw_greyscale) + draw_color = species_color || (skin_tone ? skintone2hex(skin_tone) : null) + +/obj/item/bodypart/proc/add_color_override(new_color, color_priority) + LAZYSET(color_overrides, "[color_priority]", new_color) + +/obj/item/bodypart/proc/remove_color_override(color_priority) + LAZYREMOVE(color_overrides, "[color_priority]") + //to update the bodypart's icon when not attached to a mob /obj/item/bodypart/proc/update_icon_dropped() SHOULD_CALL_PARENT(TRUE) @@ -1057,9 +1068,8 @@ if(aux_zone) //Hand shit aux = image(limb.icon, "[limb_id]_[aux_zone]", -aux_layer, image_dir) . += aux - draw_color = variable_color - if(should_draw_greyscale) //Should the limb be colored outside of a forced color? - draw_color ||= (species_color) || (skin_tone && skintone2hex(skin_tone)) + + update_draw_color() if(is_husked) huskify_image(thing_to_husk = limb) diff --git a/modular_nova/modules/synths/code/species/synthetic.dm b/modular_nova/modules/synths/code/species/synthetic.dm index 063e59d2932..0c989ccf6ef 100644 --- a/modular_nova/modules/synths/code/species/synthetic.dm +++ b/modular_nova/modules/synths/code/species/synthetic.dm @@ -128,12 +128,12 @@ if(limb.body_zone == BODY_ZONE_HEAD) if(head_of_choice.color_src && head[MUTANT_INDEX_COLOR_LIST] && length(head[MUTANT_INDEX_COLOR_LIST])) - limb.variable_color = head[MUTANT_INDEX_COLOR_LIST][1] + limb.add_color_override(head[MUTANT_INDEX_COLOR_LIST][1], LIMB_COLOR_SYNTH) limb.change_appearance(head_of_choice.icon, head_of_choice.icon_state, !!head_of_choice.color_src, head_of_choice.dimorphic) continue if(chassis_of_choice.color_src && chassis[MUTANT_INDEX_COLOR_LIST] && length(chassis[MUTANT_INDEX_COLOR_LIST])) - limb.variable_color = chassis[MUTANT_INDEX_COLOR_LIST][1] + limb.add_color_override(chassis[MUTANT_INDEX_COLOR_LIST][1], LIMB_COLOR_SYNTH) limb.change_appearance(chassis_of_choice.icon, chassis_of_choice.icon_state, !!chassis_of_choice.color_src, limb.body_part == CHEST && chassis_of_choice.dimorphic) limb.name = "\improper[chassis_of_choice.name] [parse_zone(limb.body_zone)]" From fdec4b8a0f0c13594bfe36570d59c3301e48c11b Mon Sep 17 00:00:00 2001 From: kittysmooch <105110468+kittysmooch@users.noreply.github.com> Date: Tue, 15 Oct 2024 09:10:18 -0700 Subject: [PATCH 048/103] removes precisely one pixel from female heads (#87219) ## About The Pull Request while working on cosmetic stuff for a downstream i noticed that the neck of female bodied human sprites was asymmetrical from the east and west facing icons ![image](https://github.com/user-attachments/assets/ae914ea5-b138-4404-b7df-5e4fcd59d0e0) ![image](https://github.com/user-attachments/assets/9dca384c-4e3e-44cd-b4c9-0f6feff55231) i checked the icon files and, sure enough, the east facing head has an extra pixel on the neck, so i removed it and updated the relevant dmi. ![image](https://github.com/user-attachments/assets/b9a008d2-1acd-436a-bb69-591909d60ef9) ![image](https://github.com/user-attachments/assets/7afc14a4-1834-440d-b37e-ad45d0372820) i also did a cursory glance at all the other body sprites to ensure that they were symmetrical. i didnt look that close admittedly but i didnt spot any other discrepancies. and that's all! this is probably the ittiest bittiest pr ever ## Why It's Good For The Game i think this one is pretty self explanatory lol ## Changelog :cl: fix: fixed east facing female human heads having an extra neck pixel :cl: --- icons/mob/human/bodyparts_greyscale.dmi | Bin 40162 -> 34918 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/human/bodyparts_greyscale.dmi b/icons/mob/human/bodyparts_greyscale.dmi index b87182b258b443a96ff59ce961c4d8fc46ae2dd5..1fa4f751b3b0ffff40ae166fc6d87e34ce8a5ab8 100644 GIT binary patch literal 34918 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�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 Date: Tue, 15 Oct 2024 16:28:50 +0000 Subject: [PATCH 049/103] Automatic changelog for PR #87216 [ci skip] --- html/changelogs/AutoChangeLog-pr-87216.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87216.yml diff --git a/html/changelogs/AutoChangeLog-pr-87216.yml b/html/changelogs/AutoChangeLog-pr-87216.yml new file mode 100644 index 00000000000..063a3271056 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87216.yml @@ -0,0 +1,4 @@ +author: "SmArtKar" +delete-after: True +changes: + - bugfix: "Losing hulk after becoming a carp no longer turns you black" \ No newline at end of file From 2d87599743c5dc265fe5e094e49b2f013da0f71d Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 16:29:10 +0000 Subject: [PATCH 050/103] Automatic changelog for PR #87219 [ci skip] --- html/changelogs/AutoChangeLog-pr-87219.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87219.yml diff --git a/html/changelogs/AutoChangeLog-pr-87219.yml b/html/changelogs/AutoChangeLog-pr-87219.yml new file mode 100644 index 00000000000..5ed4f2e947c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87219.yml @@ -0,0 +1,4 @@ +author: "kittysmooch" +delete-after: True +changes: + - bugfix: "fixed east facing female human heads having an extra neck pixel\n:cl:" \ No newline at end of file From ab5d1f02896f4b0ebfa6ad764c35582a502c31b4 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Tue, 15 Oct 2024 19:33:25 +0200 Subject: [PATCH 051/103] Fixing several fish-related issues. (#87199) --- code/__DEFINES/traits/sources.dm | 2 - code/__HELPERS/pronouns.dm | 3 +- code/datums/components/fish_growth.dm | 4 +- code/datums/components/rename.dm | 2 + code/datums/elements/tool_renaming.dm | 3 -- .../dna_infuser/organ_sets/fish_organs.dm | 5 +- code/modules/fishing/admin.dm | 11 ++-- code/modules/fishing/aquarium/aquarium.dm | 8 +-- .../modules/fishing/aquarium/fish_analyzer.dm | 6 +-- code/modules/fishing/fish/types/station.dm | 38 ++++++++++++-- code/modules/fishing/fish_movement.dm | 26 +++++++++- code/modules/fishing/sources/_fish_source.dm | 52 +++++++++++++------ .../reagent_containers/cups/drinkingglass.dm | 5 +- code/modules/unit_tests/fish_unit_tests.dm | 2 +- 14 files changed, 122 insertions(+), 45 deletions(-) diff --git a/code/__DEFINES/traits/sources.dm b/code/__DEFINES/traits/sources.dm index beb2b98944b..8b3ac10f950 100644 --- a/code/__DEFINES/traits/sources.dm +++ b/code/__DEFINES/traits/sources.dm @@ -293,8 +293,6 @@ /// Trait from an organ being inside a bodypart #define ORGAN_INSIDE_BODY_TRAIT "organ_inside_body" -/// Trait when something was labelled by the /datum/element/tool_renaming element. -#define RENAMING_TOOL_LABEL_TRAIT "renaming_tool_label" /// Trait when a drink was renamed by a shaker #define SHAKER_LABEL_TRAIT "shaker_trait" diff --git a/code/__HELPERS/pronouns.dm b/code/__HELPERS/pronouns.dm index fe2357d6ce4..28bb4c11662 100644 --- a/code/__HELPERS/pronouns.dm +++ b/code/__HELPERS/pronouns.dm @@ -86,7 +86,8 @@ gender = targeted_gender else gender = targeted_atom.gender - var/regex/pronoun_regex = regex("%PRONOUN(_(they|They|their|Their|theirs|Theirs|them|Them|have|are|were|do|theyve|Theyve|theyre|Theyre|s|es))") + ///The pronouns are ordered by their length to avoid %PRONOUN_Theyve being translated to "Heve" instead of "He's", for example + var/regex/pronoun_regex = regex("%PRONOUN(_(theirs|Theirs|theyve|Theyve|theyre|Theyre|their|Their|they|They|them|Them|have|were|are|do|es|s))") while(pronoun_regex.Find(target_string)) target_string = pronoun_regex.Replace(target_string, GET_TARGET_PRONOUN(targeted_atom, pronoun_regex.match, gender)) return target_string diff --git a/code/datums/components/fish_growth.dm b/code/datums/components/fish_growth.dm index 7c9aed1048c..7f1e411ed3a 100644 --- a/code/datums/components/fish_growth.dm +++ b/code/datums/components/fish_growth.dm @@ -90,12 +90,12 @@ var/message_verb = del_on_grow ? "grows into" : "generates" location.visible_message(span_notice("[source] [message_verb] \a [result]."), vision_distance = 3) - if(inherit_name && source.name != initial(source.name)) + if(inherit_name && HAS_TRAIT(source, TRAIT_WAS_RENAMED)) if(ismob(result)) var/mob/mob = result mob.fully_replace_character_name(mob.name, source.name) else - result.name = source.name + result.AddComponent(/datum/component/rename, source.name, result.desc) SEND_SIGNAL(source, COMSIG_FISH_FINISH_GROWING, result) diff --git a/code/datums/components/rename.dm b/code/datums/components/rename.dm index ad98c861dde..31e1629f314 100644 --- a/code/datums/components/rename.dm +++ b/code/datums/components/rename.dm @@ -26,6 +26,7 @@ src.custom_name = custom_name src.custom_desc = custom_desc apply_rename() + ADD_TRAIT(parent, TRAIT_WAS_RENAMED, type) /** This proc will fire after the parent's name or desc is changed with a pen, which is trying to apply another rename component. @@ -62,4 +63,5 @@ /datum/component/rename/Destroy() revert_rename() + REMOVE_TRAIT(parent, TRAIT_WAS_RENAMED, type) return ..() diff --git a/code/datums/elements/tool_renaming.dm b/code/datums/elements/tool_renaming.dm index bd87f1d171c..729c5fd6a21 100644 --- a/code/datums/elements/tool_renaming.dm +++ b/code/datums/elements/tool_renaming.dm @@ -51,7 +51,6 @@ return renamed_obj.AddComponent(/datum/component/rename, input, renamed_obj.desc) to_chat(user, span_notice("You have successfully renamed \the [old_name] to [renamed_obj].")) - ADD_TRAIT(renamed_obj, TRAIT_WAS_RENAMED, RENAMING_TOOL_LABEL_TRAIT) renamed_obj.update_appearance(UPDATE_NAME) if(OPTION_DESCRIPTION) @@ -64,13 +63,11 @@ return renamed_obj.AddComponent(/datum/component/rename, renamed_obj.name, input) to_chat(user, span_notice("You have successfully changed [renamed_obj]'s description.")) - ADD_TRAIT(renamed_obj, TRAIT_WAS_RENAMED, RENAMING_TOOL_LABEL_TRAIT) renamed_obj.update_appearance(UPDATE_DESC) if(OPTION_RESET) qdel(renamed_obj.GetComponent(/datum/component/rename)) to_chat(user, span_notice("You have successfully reset [renamed_obj]'s name and description.")) - REMOVE_TRAIT(renamed_obj, TRAIT_WAS_RENAMED, RENAMING_TOOL_LABEL_TRAIT) renamed_obj.update_appearance(UPDATE_NAME | UPDATE_DESC) #undef OPTION_RENAME diff --git a/code/game/machinery/dna_infuser/organ_sets/fish_organs.dm b/code/game/machinery/dna_infuser/organ_sets/fish_organs.dm index 1dc16492fbc..e125a611059 100644 --- a/code/game/machinery/dna_infuser/organ_sets/fish_organs.dm +++ b/code/game/machinery/dna_infuser/organ_sets/fish_organs.dm @@ -218,8 +218,8 @@ icon_state = "gills" safe_oxygen_min = 0 //We don't breathe this - ///The required partial pressure of water_vapor for not drowing - var/safe_water_level = 29 + ///The required partial pressure of water_vapor for not suffocating. + var/safe_water_level = parent_type::safe_oxygen_min /// Bodypart overlay applied to the chest where the lungs are in var/datum/bodypart_overlay/simple/gills/gills @@ -296,7 +296,6 @@ name = "mutated semi-aquatic lungs" desc = "DNA from an amphibious or semi-aquatic creature infused on a pair lungs. Enjoy breathing underwater without drowning outside water." safe_oxygen_min = /obj/item/organ/internal/lungs::safe_oxygen_min - safe_water_level = 19 has_gills = FALSE /** * If false, we don't breathe air since we've got water instead. diff --git a/code/modules/fishing/admin.dm b/code/modules/fishing/admin.dm index 46212f42128..53aefaf3338 100644 --- a/code/modules/fishing/admin.dm +++ b/code/modules/fishing/admin.dm @@ -33,8 +33,14 @@ ADMIN_VERB(fishing_calculator, R_DEBUG, "Fishing Calculator", "A calculator... f switch(action) if("recalc") var/rod_type = text2path(params["rod"]) - var/bait_type = text2path(params["bait"]) + if(!rod_type) + to_chat(user, span_warning("A fishing rod is needed in order to fish.")) + return var/hook_type = text2path(params["hook"]) + if(!hook_type) + to_chat(user, span_warning("A fishing hook is needed in order to fish.")) + return + var/bait_type = text2path(params["bait"]) var/line_type = text2path(params["line"]) var/datum/fish_source/spot = GLOB.preset_fish_sources[text2path(params["spot"])] @@ -45,8 +51,7 @@ ADMIN_VERB(fishing_calculator, R_DEBUG, "Fishing Calculator", "A calculator... f if(bait_type) temporary_rod.set_slot(new bait_type(temporary_rod), ROD_SLOT_BAIT) - if(hook_type) - temporary_rod.set_slot(new hook_type(temporary_rod), ROD_SLOT_HOOK) + temporary_rod.set_slot(new hook_type(temporary_rod), ROD_SLOT_HOOK) if(line_type) temporary_rod.set_slot(new line_type(temporary_rod), ROD_SLOT_LINE) diff --git a/code/modules/fishing/aquarium/aquarium.dm b/code/modules/fishing/aquarium/aquarium.dm index 56de1a9b10f..ea37c9dc759 100644 --- a/code/modules/fishing/aquarium/aquarium.dm +++ b/code/modules/fishing/aquarium/aquarium.dm @@ -356,7 +356,7 @@ fluid_type = params["fluid"] SEND_SIGNAL(src, COMSIG_AQUARIUM_FLUID_CHANGED, fluid_type) . = TRUE - if("reproduction_and_growth") + if("allow_breeding") reproduction_and_growth = !reproduction_and_growth . = TRUE if("feeding_interval") @@ -371,10 +371,10 @@ to_chat(user, span_notice("You take out [item] from [src].")) if("rename_fish") var/new_name = sanitize_name(params["chosen_name"]) - if(!new_name) - return var/atom/movable/fish = locate(params["fish_reference"]) in contents - fish.name = new_name + if(!fish || !new_name || new_name == fish.name) + return + fish.AddComponent(/datum/component/rename, new_name, fish.desc) /obj/structure/aquarium/ui_interact(mob/user, datum/tgui/ui) . = ..() diff --git a/code/modules/fishing/aquarium/fish_analyzer.dm b/code/modules/fishing/aquarium/fish_analyzer.dm index 905d3549128..617d8b600ba 100644 --- a/code/modules/fishing/aquarium/fish_analyzer.dm +++ b/code/modules/fishing/aquarium/fish_analyzer.dm @@ -119,12 +119,12 @@ data["fish_list"] += list(list( "fish_name" = fishie.name, - "fish_icon" = fishie::icon, - "fish_icon_state" = fishie::icon_state, + "fish_icon" = fishie.icon, + "fish_icon_state" = fishie.base_icon_state, "fish_health" = fishie.status == FISH_DEAD ? 0 : PERCENT(fishie.health/initial(fishie.health)), "fish_size" = fishie.size, "fish_weight" = fishie.weight, - "fish_food" = fishie.food::name, + "fish_food" = fishie.food.name, "fish_food_color" = fishie.food::color, "fish_min_temp" = fishie.required_temperature_min, "fish_max_temp" = fishie.required_temperature_max, diff --git a/code/modules/fishing/fish/types/station.dm b/code/modules/fishing/fish/types/station.dm index e811996d5af..96a7ca7e99f 100644 --- a/code/modules/fishing/fish/types/station.dm +++ b/code/modules/fishing/fish/types/station.dm @@ -170,6 +170,10 @@ ) return return_list +#define FISH_FRITTERISH "fritterish" +#define FISH_BERNARD "bernard" +#define FISH_MATTHEW "matthew" + /obj/item/fish/fryish/fritterish name = "fritterish" desc = "A deliciously extremophile alien fish. This one looks like a taiyaki." @@ -185,21 +189,45 @@ is_bait = FALSE next_type = /datum/fish_evolution/nessie growth_time = 8 MINUTES + ///fritterish can have different forms assigned to them on init. These are purely visual. + var/variant = FISH_FRITTERISH /obj/item/fish/fryish/fritterish/Initialize(mapload, apply_qualities = TRUE) . = ..() - base_icon_state = icon_state = pick("fritterish", "bernardfish", "matthewfish") - switch(icon_state) - if("bernardfish") + variant = pick(FISH_FRITTERISH, FISH_BERNARD, FISH_MATTHEW) + switch(variant) + if(FISH_BERNARD) name = "bernard-fish" desc = "A deliciously extremophile alien fish shaped like a dinosaur. Children love it." + base_icon_state = icon_state = "bernardfish" sprite_width = 4 sprite_height = 6 - if("matthewfish") - desc = "A deliciously extremophile alien fish shaped like a pterodactyl. Children love it." + if(FISH_MATTHEW) name = "matthew-fish" + desc = "A deliciously extremophile alien fish shaped like a pterodactyl. Children love it." + base_icon_state = icon_state = "matthewfish" sprite_width = 6 +/obj/item/fish/fryish/fritterish/update_name() + switch(variant) + if(FISH_BERNARD) + name = "bernard-fish" + if(FISH_MATTHEW) + name = "matthew-fish" + return ..() + +/obj/item/fish/fryish/fritterish/update_desc() + switch(variant) + if(FISH_BERNARD) + desc = "A deliciously extremophile alien fish shaped like a dinosaur. Children love it." + if(FISH_MATTHEW) + desc = "A deliciously extremophile alien fish shaped like a pterodactyl. Children love it." + return ..() + +#undef FISH_FRITTERISH +#undef FISH_BERNARD +#undef FISH_MATTHEW + /obj/item/fish/fryish/nessie name = "nessie-fish" desc = "A deliciously extremophile alien fish. This one is so big, you could write legends about it." diff --git a/code/modules/fishing/fish_movement.dm b/code/modules/fishing/fish_movement.dm index b288161b192..952db364d44 100644 --- a/code/modules/fishing/fish_movement.dm +++ b/code/modules/fishing/fish_movement.dm @@ -103,7 +103,31 @@ var/acceleration_mult = get_acceleration(seconds_per_tick) var/target_acceleration = distance * acceleration_mult * seconds_per_tick + if(fish_idle_velocity) + var/idle_velocity = fish_idle_velocity + var/abs_idle_vel = abs(idle_velocity) + //Make sure idle velocity doesn't manage to halt fish to a grind and getting them unable to move. + //First, check if the directions of the two forces are oppositve + if((idle_velocity / abs_idle_vel) != (target_acceleration / abs(target_acceleration))) + //Then, calculate the ratio between absolute idle velocity and halved acceleration multiplier. + var/halved_ratio = (acceleration_mult * 0.5) / abs_idle_vel + /** + * If the idle velocity is more than half the acceleration, + * proceed to use powers, for diminishing loss of acceleration per additional unit of idle velocity. + * This way you never reach 0 acceleration while allowing more extreme values to keep lowering it. + */ + if(halved_ratio < 1) + var/power = min(halved_ratio + 0.5, 1) + target_acceleration *= 1 - (halved_ratio^power) + /** + * Otherwise we add the idle velocity (which we know is of opposite sign and + * has an absolute value between 0.ε and 0.5) to the target velocity + */ + else + target_acceleration += idle_velocity + fish_velocity = fish_velocity * FISH_FRICTION_MULT + target_acceleration + else if(can_roll && prob(short_chance)) var/distance_from_top = FISHING_MINIGAME_AREA - master.fish_position - master.fish_height var/distance_from_bottom = master.fish_position @@ -115,7 +139,7 @@ target_position = clamp(master.fish_position + jump_length, 0, FISHING_MINIGAME_AREA - master.fish_height) current_velocity_limit = short_jump_velocity_limit - fish_velocity = clamp(fish_velocity + fish_idle_velocity, -current_velocity_limit, current_velocity_limit) + fish_velocity = clamp(fish_velocity, -current_velocity_limit, current_velocity_limit) set_fish_position(seconds_per_tick) ///Proc that returns the acceleration of the fish during the minigame. diff --git a/code/modules/fishing/sources/_fish_source.dm b/code/modules/fishing/sources/_fish_source.dm index c2db0a43fc9..9a02e0b270b 100644 --- a/code/modules/fishing/sources/_fish_source.dm +++ b/code/modules/fishing/sources/_fish_source.dm @@ -339,8 +339,8 @@ GLOBAL_LIST_INIT(specific_fish_icons, generate_specific_fish_icons()) if(HAS_TRAIT(fisherman, TRAIT_PROFOUND_FISHER) && !fisherman.client) final_table -= profound_fisher_blacklist for(var/result in final_table) - final_table[result] *= rod.hook?.get_hook_bonus_multiplicative(result) - final_table[result] += rod.hook?.get_hook_bonus_additive(result)//Decide on order here so it can be multiplicative + final_table[result] *= rod.hook.get_hook_bonus_multiplicative(result) + final_table[result] += rod.hook.get_hook_bonus_additive(result)//Decide on order here so it can be multiplicative if(ispath(result, /obj/item/fish)) if(bait) @@ -408,25 +408,47 @@ GLOBAL_LIST_INIT(specific_fish_icons, generate_specific_fish_icons()) var/list/known_fishes = list() var/obj/item/fishing_rod/rod = user.get_active_held_item() - if(!istype(rod)) + var/list/final_table + if(!istype(rod) || !rod.hook) rod = null + else + final_table = get_modified_fish_table(rod, user, location) + var/total_weight = 0 + var/list/rodless_weights = list() + var/total_rod_weight = 0 + var/list/rod_weights = list() for(var/reward in fish_table) + var/weight = fish_table[reward] + var/final_weight + if(rod) + total_weight += weight + final_weight = final_table[reward] + total_rod_weight += final_weight if(!ispath(reward, /obj/item/fish)) continue var/obj/item/fish/prototype = reward - if(initial(prototype.fish_flags) & FISH_FLAG_SHOW_IN_CATALOG) + if(!(initial(prototype.fish_flags) & FISH_FLAG_SHOW_IN_CATALOG)) + continue + if(rod) + rodless_weights[reward] = weight + rod_weights[reward] = final_weight + else + known_fishes += initial(prototype.name) + + if(rod) + for(var/reward in rodless_weights) + var/percent_weight = rodless_weights[reward] / total_weight + var/percent_rod_weight = rod_weights[reward] / total_rod_weight + var/obj/item/fish/prototype = reward var/init_name = initial(prototype.name) - if(rod) - var/init_weight = fish_table[reward] - var/weight = (rod.bait ? rod.bait.check_bait(prototype) : 1) - weight = get_fish_trait_catch_mods(weight, reward, rod, user, location) - if(weight > init_weight) - init_name = span_bold(init_name) - if(weight/init_weight >= 3.5) - init_name = "init_name" - else if(weight < init_weight) - init_name = span_small(init_name) + var/ratio = percent_weight/percent_rod_weight + if(ratio < 0.9) + init_name = span_bold(init_name) + if(ratio < 0.3) + init_name = "[init_name]" + else if(ratio > 1.1) + init_name = span_small(init_name) known_fishes += init_name if(!length(known_fishes)) @@ -436,7 +458,7 @@ GLOBAL_LIST_INIT(specific_fish_icons, generate_specific_fish_icons()) if(rod) info = span_tooltip("boldened are the fish you're more likely to catch with your current setup. The opposite is true for smaller names", info) - examine_text += span_info("[info]: [english_list(known_fishes)].") + examine_text += examine_block(span_info("[info]: [english_list(known_fishes)].")) /datum/fish_source/proc/spawn_reward_from_explosion(atom/location, severity) if(!explosive_malus) diff --git a/code/modules/reagents/reagent_containers/cups/drinkingglass.dm b/code/modules/reagents/reagent_containers/cups/drinkingglass.dm index fa3a53434bb..a4f902ff5f3 100644 --- a/code/modules/reagents/reagent_containers/cups/drinkingglass.dm +++ b/code/modules/reagents/reagent_containers/cups/drinkingglass.dm @@ -36,7 +36,8 @@ /obj/item/reagent_containers/cup/glass/drinkingglass/on_reagent_change(datum/reagents/holder, ...) . = ..() if(!length(reagents.reagent_list)) - REMOVE_TRAIT(src, TRAIT_WAS_RENAMED, RENAMING_TOOL_LABEL_TRAIT) //so new drinks can rename the glass + qdel(GetComponent(/datum/component/rename)) + REMOVE_TRAIT(src, TRAIT_WAS_RENAMED, SHAKER_LABEL_TRAIT) //so new drinks can rename the glass // Having our icon state change removes fill thresholds /obj/item/reagent_containers/cup/glass/drinkingglass/on_cup_change(datum/glass_style/style) @@ -58,8 +59,8 @@ if(!HAS_TRAIT(src, TRAIT_WAS_RENAMED)) return + qdel(GetComponent(/datum/component/rename)) REMOVE_TRAIT(src, TRAIT_WAS_RENAMED, SHAKER_LABEL_TRAIT) - REMOVE_TRAIT(src, TRAIT_WAS_RENAMED, RENAMING_TOOL_LABEL_TRAIT) name = initial(name) desc = initial(desc) update_appearance(UPDATE_NAME | UPDATE_DESC) diff --git a/code/modules/unit_tests/fish_unit_tests.dm b/code/modules/unit_tests/fish_unit_tests.dm index 1bda9875c26..8ed2b999e7f 100644 --- a/code/modules/unit_tests/fish_unit_tests.dm +++ b/code/modules/unit_tests/fish_unit_tests.dm @@ -360,7 +360,7 @@ /obj/structure/aquarium/crab/Initialize(mapload) . = ..() crabbie = new(src) - crabbie.name = "Crabbie" + crabbie.AddComponent(/datum/component/rename, "Crabbie", crabbie.desc) crabbie.last_feeding = world.time crabbie.AddComponent(/datum/component/fish_growth, crabbie.lob_type, 1 SECONDS) From d95c08954e57be15477f0e956be4a41d72e68a37 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 17:33:46 +0000 Subject: [PATCH 052/103] Automatic changelog for PR #87199 [ci skip] --- html/changelogs/AutoChangeLog-pr-87199.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87199.yml diff --git a/html/changelogs/AutoChangeLog-pr-87199.yml b/html/changelogs/AutoChangeLog-pr-87199.yml new file mode 100644 index 00000000000..0c40ab3efda --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87199.yml @@ -0,0 +1,5 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "Fixed gills not managing to breathe water vapor through internals." + - bugfix: "Fixed some inconsistencies with examining fishing spots with the appropriate level and fishing rod." \ No newline at end of file From af893f19864e692ceab1ba2add14abbf73e09905 Mon Sep 17 00:00:00 2001 From: hyperjll <105099113+hyperjll@users.noreply.github.com> Date: Tue, 15 Oct 2024 13:53:07 -0400 Subject: [PATCH 053/103] Updates the GLA Brand Mail Counterfeit Device's description to either be more readable or more descriptive. (#87157) ## About The Pull Request Hi. Whoever originally wrote the description for this item in the uplink likely isn't a native english speaker and must've used google translate to make it. Point is: This description is broken and nobody has fixed it (I'm assuming nobody wants to spend GBP trying to fix it.) ## Why It's Good For The Game I'd like to be able to read this item's description and not feel like i just had a stroke. Also, being descriptive as to WHAT THIS ITEM ACTUALLY DOES is super important before purchasing it, nobody wants to boot up the wiki and try to figure out what this does. ## Changelog :cl: qol: The GLA Brand Mail Counterfeit Device's description has been updated by a native english speaker and has been made more descriptive. /:cl: --- code/modules/uplink/uplink_items/job.dm | 5 ++++- code/modules/uplink/uplink_items/stealthy_tools.dm | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/code/modules/uplink/uplink_items/job.dm b/code/modules/uplink/uplink_items/job.dm index e786e7cd3a7..c9290ddd662 100644 --- a/code/modules/uplink/uplink_items/job.dm +++ b/code/modules/uplink/uplink_items/job.dm @@ -18,7 +18,10 @@ /datum/uplink_item/role_restricted/mail_counterfeit_kit name = "GLA Brand Mail Counterfeit Kit" - desc = "A box of five (5) counterfeit devices. Each single-use device can hold one normal sized object, and impersonate an ordinary postal envelope addressed to whoever you choose. Optionally, can be rigged to activate held items - great for if you want to surprise someone with a primed grenade!" + desc = "A box containing five devices capable of counterfeiting NT's mail. Can be used to store items within as an easy means of smuggling contraband. \ + Additionally, you may choose to \"arm\" the item inside, causing the item to be used the moment the mail is opened as if the person had just used it in hand. \ + The most common usage of this feature is with grenades, as it forces the grenade to prime. Bonus points if the grenade is set to instantly detonate. \ + Comes with an integrated micro-computer for configuration purposes." item = /obj/item/storage/box/syndie_kit/mail_counterfeit cost = 2 uplink_item_flags = SYNDIE_TRIPS_CONTRABAND diff --git a/code/modules/uplink/uplink_items/stealthy_tools.dm b/code/modules/uplink/uplink_items/stealthy_tools.dm index 40e5df8febd..e3402ec3c72 100644 --- a/code/modules/uplink/uplink_items/stealthy_tools.dm +++ b/code/modules/uplink/uplink_items/stealthy_tools.dm @@ -95,7 +95,10 @@ /datum/uplink_item/stealthy_tools/mail_counterfeit name = "GLA Brand Mail Counterfeit Device" - desc = "Device that actually able to counterfeit NT's mail. This device also able to place a trap inside of mail for malicious actions. Trap will \"activate\" any item inside of mail. Also it might be used for contraband purposes. Integrated micro-computer will give you great configuration optionality for your needs." + desc = "A device capable of counterfeiting NT's mail. Can be used to store items within as an easy means of smuggling contraband. \ + Additionally, you may choose to \"arm\" the item inside, causing the item to be used the moment the mail is opened as if the person had just used it in hand. \ + The most common usage of this feature is with grenades, as it forces the grenade to prime. Bonus points if the grenade is set to instantly detonate. \ + Comes with an integrated micro-computer for configuration purposes." item = /obj/item/storage/mail_counterfeit_device cost = 1 surplus = 30 From 28a352df2ec61d206d044a4dbbe11896b24c51e4 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 17:53:28 +0000 Subject: [PATCH 054/103] Automatic changelog for PR #87157 [ci skip] --- html/changelogs/AutoChangeLog-pr-87157.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87157.yml diff --git a/html/changelogs/AutoChangeLog-pr-87157.yml b/html/changelogs/AutoChangeLog-pr-87157.yml new file mode 100644 index 00000000000..bad3d118fd4 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87157.yml @@ -0,0 +1,4 @@ +author: "hyperjll" +delete-after: True +changes: + - qol: "The GLA Brand Mail Counterfeit Device's description has been updated by a native english speaker and has been made more descriptive." \ No newline at end of file From 8fea19a8140b62ba51a5f293ccd6b05e4e0ec023 Mon Sep 17 00:00:00 2001 From: junkgle <133079191+junkgle01@users.noreply.github.com> Date: Tue, 15 Oct 2024 12:56:39 -0500 Subject: [PATCH 055/103] resprites clown mask styles and adds one (#87159) ![Screenshot_108](https://github.com/user-attachments/assets/c0c40aca-ec80-4849-8d24-b6a45df8ed7d) ## About The Pull Request resprites the existing clown mask styles and adds a new clown mask style: The Dealer. the old madman mask has been made into an optional craft: the gamer's wig and mask. does not resprite already existing default clown mask ![Screenshot_109](https://github.com/user-attachments/assets/99b6fdb9-5e19-4b27-a41c-5902a5b92d27) ## Why It's Good For The Game resprites are good! and more variety is good too ## Changelog :cl: add: the Honkmother has decided to bless Her children with a new form! image: resprited the optional clown mask styles /:cl: --- code/datums/components/crafting/tailoring.dm | 10 ++++++++++ code/modules/clothing/masks/gasmask.dm | 14 +++++++++++++- icons/mob/clothing/mask.dmi | Bin 49232 -> 53601 bytes icons/obj/clothing/masks.dmi | Bin 31227 -> 32303 bytes 4 files changed, 23 insertions(+), 1 deletion(-) diff --git a/code/datums/components/crafting/tailoring.dm b/code/datums/components/crafting/tailoring.dm index 0bd31948133..2196a88325a 100644 --- a/code/datums/components/crafting/tailoring.dm +++ b/code/datums/components/crafting/tailoring.dm @@ -643,3 +643,13 @@ /obj/item/clothing/head/fedora/beige = 1, ) category = CAT_CLOTHING + +/datum/crafting_recipe/jonkler + name = "gamer's wig and mask" + result = /obj/item/clothing/mask/gas/jonkler + time = 10 SECONDS + tool_paths = list(/obj/item/toy/crayon/green) + reqs = list( + /obj/item/clothing/mask/gas/clown_hat = 1, + ) + category = CAT_CLOTHING diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 82b6fb1b90d..f76d5d6a394 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -5,6 +5,7 @@ GLOBAL_LIST_INIT(clown_mask_options, list( "The Madman" = "joker", "The Rainbow Color" = "rainbow", "The Jester" = "chaos", + "The Dealer" = "cards" )) /obj/item/clothing/mask/gas @@ -306,7 +307,8 @@ GLOBAL_LIST_INIT(clown_mask_options, list( "The Coquette" = image(icon = src.icon, icon_state = "sexyclown"), "The Jester" = image(icon = src.icon, icon_state = "chaos"), "The Madman" = image(icon = src.icon, icon_state = "joker"), - "The Rainbow Color" = image(icon = src.icon, icon_state = "rainbow") + "The Rainbow Color" = image(icon = src.icon, icon_state = "rainbow"), + "The Dealer" = image(icon = src.icon, icon_state = "cards"), ) //AddElement(/datum/element/swabable, CELL_LINE_TABLE_CLOWN, CELL_VIRUS_TABLE_GENERIC, rand(2,3), 0) //NOVA EDIT REMOVAL @@ -338,6 +340,16 @@ GLOBAL_LIST_INIT(clown_mask_options, list( resistance_flags = FLAMMABLE fishing_modifier = 0 +/obj/item/clothing/mask/gas/jonkler + name = "gamer's wig and mask" + desc = "But I am a gamer, and no man; A reproach of men, and despised by the people." + clothing_flags = MASKINTERNALS + icon_state = "jonkler" + inhand_icon_state = null + flags_cover = MASKCOVERSEYES + resistance_flags = FLAMMABLE + has_fov = FALSE + /obj/item/clothing/mask/gas/mime name = "mime mask" desc = "The traditional mime's mask. It has an eerie facial posture." diff --git a/icons/mob/clothing/mask.dmi b/icons/mob/clothing/mask.dmi index 117511dd8741e5f3a4f3709764e6fe12bf31408c..89e01e574afb29a3bfabcd8222b85212faa1920b 100644 GIT binary patch literal 53601 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 Hmv8?U*|@JK literal 49232 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 E08{$k`v3p{ diff --git a/icons/obj/clothing/masks.dmi b/icons/obj/clothing/masks.dmi index 595893177355b17e59cdd41d4076d9bc051c3a75..62c1fa687406bdada410d76abefe715cceb35e8b 100644 GIT binary patch literal 32303 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